คำว่า เค้าร่างตารางความสัมพันธ์ (Relation Schema) ใช้สัญลักษณ์ R(A1 ,A2,....An) ประกอบด้วย ๒ สิ่ง คือ ชื่อของตารางความสัมพันธ์ ซึ่งก็คือ R และกลุ่มของคุณสมบัติของตารางความสัมพันธ์ ซึ่งก็คือ A1,A2,....An ส่วนคำว่า ระดับของความสัมพันธ์ (degree of a relation) คือ จำนวนคุณสมบัติทั้งหมดในตารางความสัมพันธ์ =n ตัวอย่างของเค้าร่างความสัมพันธ์ ได้แก่ นักศึกษา (รหัสประจำตัว,ชื่อ,นามสกุล,ที่อยู่,เบอร์ โทรศัพท์, วันเกิด, ชั้นปี, เกรดเฉลี่ยสะสม) ซึ่งมีชื่อตารางความสัมพันธ์ว่า นักศึกษา มีคุณสมบัติทั้งหมด ๘ ชนิดด้วยกัน และระดับความสัมพันธ์ของนักศึกษาคือ ๘
ส่วนคำว่า ข้อมูลจริงของตารางความสัมพันธ์ (Relation instance หรือ Relation) หมายถึง กลุ่มข้อมูลจำนวน m ทูเปิล โดยที่แต่ละทูเปิล t = <V1,V2,....,Vn> แต่ละ Vi, 1 < i < n, เป็น สมาชิกในโดเมนของ Ai หรือเป็นค่าพิเศษที่เรียก กันว่า ค่าว่าง (NULL) ซึ่งหมายถึง ไม่มีค่า หรือ มีค่า แต่ยังหาค่ามาใส่ไว้ไม่ได้ มักจะนิยมเรียก เค้าร่างตารางความสัมพันธ์ว่า อินเทนชัน (Intension) และเรียกข้อมูลจริงว่า เอกซ์เทนชัน (Extension) ตัวอย่างต่อไปนี้แสดงทูเปิล รายละเอียดต่างๆ ของ ตารางความสัมพันธ์ "นักศึกษา"
ลักษณะของตารางความสัมพันธ์
การเรียงลำดับของทูเปิลในตารางความสัมพันธ์หนึ่งๆ :
ตารางความสัมพันธ์ตามนิยาม คือ เซตของทูเปิล ซึ่งความหมายของเซต ในทางคณิตศาสตร์นั้น จะไม่มีการเรียงลำดับของสมาชิก ดังนั้น ทูเปิล ในตารางความสัมพันธ์ ก็ไม่มีการเรียงลำดับเช่นเดียวกัน แต่เนื่องจากการเก็บข้อมูล ในหน่วยความจำจะต้องกำหนดลำดับของข้อมูล แต่ละทูเปิลแน่นอนลงไป ดังนั้น เมื่อแสดงชุด ของทูเปิล จึงมีลำดับปรากฏมาด้วย
การเรียงลำดับของค่าต่างๆ ในแต่ละทูเปิล :
ในทางปฏิบัติ ข้อมูลจริงของตารางความสัมพันธ์หนึ่งๆ แต่ละค่า ในทูเปิลหนึ่งๆ ต้องมีการเรียงลำดับ แต่ในระดับทฤษฎีนั้น การเรียงลำดับไม่จำเป็นเลย สามารถทำได้ โดยการกำหนดนิยามของทูเปิลใหม่ ให้เป็นเซตของคู่ลำดับ (<คุณสมบัติ (attribute)>,<ค่าของข้อมูล (value)>) แทน
ค่าในทูเปิล :
ค่าของทูเปิลจะต้องเป็นค่า ไม่สามารถแบ่งแยกได้อีก ดังนั้น คุณสมบัติแบบประกอบ (composite attribute) และคุณสมบัติแบบหลายค่า (multivalued attribute) จึงไม่อนุญาตให้เก็บในแบบจำลองนี้ สำหรับคุณสมบัติแบบประกอบคือ คุณสมบัติที่ประกอบด้วยคุณสมบัติย่อยอื่นๆ เช่น คุณสมบัติ "ที่อยู่" อาจประกอบไปด้วยคุณสมบัติย่อย บ้านเลขที่ หมู่ที่ ตำบล อำเภอ จังหวัด เป็นต้น ส่วนคุณสมบัติแบบหลายค่าคือ คุณสมบัติที่สามารถ มีได้หลายๆ ค่าสำหรับทูเปิลหนึ่ง เช่น คุณสมบัติ สีของรถยนต์ รถแต่ละคันอาจจะมีสีได้หลายๆ สี บางคันสีดำสลับขาว บางคันสีแดงล้วน เป็นต้น ตัวอย่างของคุณสมบัติแบบแบ่งแยกไม่ได้ เช่น เลข ประจำตัวประชาชน , อายุ เป็นต้น
การแปลความหมายของตารางความสัมพันธ์ :
ตารางความสัมพันธ์หนึ่งๆ อาจจะแทนเอนทิตี หรือแทนความสัมพันธ์ระหว่างเอนทิตีก็ได้ เป็นหน้าที่ของผู้ใช้ ที่จะต้องพิจารณา และแยกเอง ซึ่งจุดนี้ เป็นข้อด้อยของแบบจำลองข้อมูล เชิงสัมพันธ์
ข้อบังคับแบบจำลองข้อมูลเชิงสัมพันธ์
๑. ข้อบังคับโดเมน (Domain Constraint) กำหนดว่า ค่าของแต่คุณสมบัติต้องเป็นค่าที่แบ่งแยกไม่ได้ (Atomic Value) อีกแล้ว
๒. ข้อบังคับกุญแจ (Key Constraint) กำหนดว่า ทูเปิลทั้งหมดของตารางความสัมพันธ์หนึ่งๆ จะต้องมีค่าไม่ซ้ำกันเลย ซึ่งหมายความว่า ไม่มีทูเปิลคู่ใด ที่จะมีค่าของคุณสมบัติทั้งหมดเหมือนกัน
๓. ข้อบังคับบูรณภาพเอนทิตี (Entity inte- grity constraint) กำหนดว่า ค่าของกุญแจหลัก (primary key) เป็นค่าว่าง (NULL) ไม่ได้โดยเด็ดขาด เพราะถ้าเป็นค่าว่างได้ กุญแจหลักจะไม่สามารถเป็นตัวระบุถึงทูเปิล ที่กำลังกล่าวถึงได้เลย
๔. ข้อบังคับบูรณภาพอ้างถึง (Referential integrity constraint) กำหนดว่า ทูเปิลในตารางความสัมพันธ์หนึ่ง ซึ่งอ้างถึงตารางความสัมพันธ์อีกตารางหนึ่งนั้น จะต้องอ้างถึงข้อมูลที่มีอยู่ในตารางนั้น ข้อบังคับนี้มีขึ้น เพื่อรักษาความถูกต้องของข้อมูลระหว่าง ๒ ตารางความสัมพันธ์ ซึ่งการกำหนดข้อบังคับนี้ได้นั้น ต้องใช้หลักการของกุญแจเทศ (foreign key) เข้ามากำกับ
กุญแจหลัก คือ กลุ่มของคุณสมบัติ ที่สามารถใช้ระบุทูเปิลในตารางความสัมพันธ์หนึ่งๆ ได้ นั่นคือ ค่าของกลุ่มคุณสมบัติในทุกๆ ทูเปิลของตารางนั้น จะต้องไม่ซ้ำกันเลย ส่วนกุญแจเทศ คือ กลุ่มของคุณสมบัติ FK ในตารางความสัมพันธ์ R ที่มีคุณสมบัติว่า ๑. คุณสมบัติ FK มีโดเมน เหมือนกับโดเมนของกุญแจหลัก PK ของตาราง ความสัมพันธ์ S ๒. ค่าของ FK ในทูเปิล r ของ R นั้นจะต้องปรากฏเป็นค่าของ PK ในทูเปิล s ของ S หรือเป็นค่าว่าง กุญแจทั้งสองชนิดนี้ มีความ สำคัญในแบบจำลองนี้เป็นอย่างยิ่งสำหรับการ จัดการกับข้อมูลในฐานข้อมูล
ภาษาสอบถามเชิงโครงสร้าง (Structured Query Language)
คนทั่วไปมักจะเรียกกันว่า ภาษาเอสคิวแอล (SQL) แต่เดิมเรียกว่า ซีเควล (Structured English Query Language : SEQUEL) เป็นภาษาที่ใช้ในการสอบถามข้อมูล จากฐานข้อมูล สำหรับแบบจำลองข้อมูลเชิงสัมพันธ์ที่ได้รับความนิยมสูงสุด เนื่องจากมีความสามารถ ในการสอบถามข้อมูลเทียบเท่าพีชคณิตเชิงสัมพันธ์ (Relational Algebra) หรือมากกว่าในบางคำสั่ง ภาษานี้เป็นผลงานการ วิจัยของไอบีเอ็ม (IBM Research) โดยพัฒนาขึ้น ครั้งแรก เพื่อเป็นเครื่องมือในการติดต่อ สำหรับ ระบบฐานข้อมูลเชิงสัมพันธ์ที่เรียกว่า ซิสเทมอาร์ (System R) และปัจจุบันนำมาใช้ในระบบจัดการฐานข้อมูลดีบีทู (DB2) ของบริษัทไอบีเอ็ม และระบบจัดการฐานข้อมูลเชิงสัมพันธ์อีกมากมาย
ภาษาเอสคิวแอลมีหลายแบบแตกต่างกันไป ตามผู้ผลิตระบบจัดการฐานข้อมูลแต่ละราย แบบที่ค่อนข้างได้รับความนิยมให้ใช้เป็นมาตรฐาน คือ เอสคิวแอลที่กำหนดขึ้น โดยสถาบันมาตรฐานแห่งชาติของสหรัฐอเมริกา หรือ แอนซี (American National Standards Institute : ANSI) เรียกกันว่า เอสคิวแอล ๑ (SQL 1) กำหนด ขึ้นเมื่อปี พ.ศ. ๒๕๒๙ ต่อมาได้มีการปรับปรุง แก้ไข และขยายมาตรฐานอีก เมื่อปี พ.ศ. ๒๕๓๕ เรียกว่า เอสคิวแอล ๒ (SQL 2 หรือ SQL-92) ขณะนี้กำลังมีการร่างมาตรฐานสำหรับเอสคิวแอล ๓ ซึ่งคาดว่า จะรวมแนวคิดในเรื่องการโปรแกรม เชิงวัตถุเข้าไว้ด้วย
ภาษาเอสคิวแอล เป็นภาษาที่กระชับ มีชุดคำสั่ง ที่ใช้ในการกำหนดโครงสร้างข้อมูล การสอบถามข้อมูล และการปรับปรุงข้อมูลด้วย ดังนั้น ภาษานี้จึงจัดเป็นทั้งภาษากำหนดโครงสร้างข้อมูล (DDL) และภาษาจัดดำเนินการข้อมูล (DML) นอกจากนี้ ยังมีคำสั่ง สำหรับสร้างและยกเลิกดัชนี (Index) ของแฟ้มข้อมูล และคำสั่งสำหรับนำเอสคิวแอลไปใช้ร่วมกับภาษาโปรแกรมคอมพิวเตอร์อื่นๆ ได้อีกด้วย เช่น ภาษาซี ภาษาปาสกาล เป็นต้น
คำสั่งสำหรับการสอบถามข้อมูลด้วยเอสคิวแอล มีชุดคำสั่งซึ่งประกอบไปด้วย
SELECT ระบุ รายการคุณสมบัติของข้อมูลที่ต้องการดู
FROM ระบุ รายการตารางความสัมพันธ์ที่เกี่ยวข้อง
WHERE ระบุ รายการเงื่อนไขของข้อมูล
GROUP BY ระบุ คุณสมบัติที่ใช้ในการจัดกลุ่มข้อมูล
HAVING ระบุ เงื่อนไขของการจัดกลุ่มข้อมูล
ORDER BY ระบุ คุณสมบัติที่ใช้ในการเรียงลำดับข้อมูล
ชุดคำสั่ง SELECT-FROM-WHERE เป็น ชุดคำสั่งที่มักจะใช้โดยทั่วไป ข้อมูลที่ต้องการสอบถาม สามารถนำมาจากหลายๆ ตารางได้ (ด้วยการใส่ชื่อตารางหลังคำสั่ง FROM) และเงื่อนไขของการนำเสนอข้อมูล จะถูกระบุไว้หลังคำสั่ง WHERE โดยคุณสมบัติที่ต้องการได้ ในรายงานจะระบุไว้ในคำสั่ง SELECT ตัวอย่างของการเขียนภาษาเอสคิวแอล เช่น ถ้าต้องการสอบถามเบอร์โทรศัพท์ของนักศึกษาที่ชื่อ "สมชาย รักไทย" จากตารางความสัมพันธ์ "นักศึกษา" จะเขียนด้วยเอสคิวแอลได้ว่า
SELECT เบอร์โทรศัพท์ FROM นักศึกษา WHERE ชื่อ = "สมชาย" AND นามสกุล = "รักไทย" ;
ระบบจัดการฐานข้อมูลก็จะค้นหาข้อมูลเบอร์ โทรศัพท์จากตารางนักศึกษา โดยดูว่า ระเบียนข้อมูลใดบ้าง ที่มีคุณสมบัติ "ชื่อ" เท่ากับ สมชาย และมีคุณสมบัติ "นามสกุล" เท่ากับ รักไทย ผลลัพธ์ที่ได้จากตัวอย่างนี้ จะเป็นตารางความสัมพันธ์ใหม่ ที่มีคุณสมบัติ ๑ คุณสมบัติเท่านั้นคือ เบอร์โทรศัพท์ และจำนวนระเบียนจะขึ้นอยู่กับว่ามี ข้อมูลที่มีชื่อและนามสกุลนั้นเป็นจำนวนเท่าไร หรือเป็น ๐ ระเบียน (ถ้าไม่มีข้อมูลใดสอดคล้อง กับเงื่อนไขที่ระบุเลย) สำหรับตัวอย่างที่ ๒ เป็นการสอบถามรายละเอียดเกรดเฉลี่ยสะสม (average : AVG) ของนักศึกษาในแต่ละชั้นปี โดยขอดูเฉพาะชั้นปีที่มีเกรดเฉลี่ยสะสมของนักศึกษาสูงกว่า ๒.๐ โดยให้ผลลัพธ์ที่ออกมา มีการเรียงลำดับของระเบียน จากมากไปหาน้อย (descending : DESC) ของชั้นปี ซึ่งเขียนเป็นภาษาเอสคิวแอลได้ดังนี้
SELECT ชั้นปี, AVG (เกรดเฉลี่ยสะสม)
FROM นักศึกษา
GROUP BY ชั้นปี
HAVING AVG (เกรดเฉลี่ยสะสม) 2.0
ORDER BY ชั้นปี DESC
ในระบบจัดการฐานข้อมูลเชิงสัมพันธ์ทั่วไป จำเป็นจะต้องมีส่วนสำหรับทำการค้นหาวิธีการที่ดีที่สุด ในการหาคำตอบ (Query Optimization) ให้แต่ละการสอบถามด้วยภาษาเอสคิวแอล เนื่องจากการสอบถามด้วยเอสคิวแอลแต่ละอัน จะมีวิธีการประมวลผลได้หลายวิธี ซึ่งแต่ละวิธี จะใช้ทรัพยากรต่างๆ กันไป ซึ่งระบบจัดการฐาน ข้อมูลโดยทั่วไปจะเตรียมส่วนนี้ไว้ให้ โดยที่ผู้ใช้ ไม่ต้องเป็นผู้หาวิธีการทำงานที่ดีที่สุดสำหรับ การสอบถามด้วยเอสคิวแอลแต่ละอันด้วยตัวเอง ตัวอย่างเทคนิคที่ใช้ในการค้นหาวิธีการที่ดีที่สุด ในการหาคำตอบของการสอบถาม ได้แก่ กฎ แบบศึกษาสำนึก (Heuristic Rules) และการ ประเมินราคา (Cost Estimation) เป็นต้น