ฐานข้อมูลเชิงสัมพันธ์ (Relational Database) เป็นรูปแบบของฐานข้อมูลที่นิยมใช้ในปัจจุบัน
โดยถูกคิดค้นและพัฒนาโดย E.F. Codd เป็นรูปแบบที่เข้าใจง่ายสำหรับผู้ใช้
ไม่ซับซ้อนมีเครื่องมือที่ช่วยในการเรียกดูข้อมูล โดยใช้คำสั่งง่าย เช่น SQL
โมเดลนี้ใช้ relation หรือตาราง 2 มิติ แทน entity
ศัพท์ที่เกี่ยวข้อง
Relation
= Table
Tuple =
Row or Record
Attribute = Column or Field
Cardinality = Number of Rows
Primary
= Unique Identifier
Domain = ขอบข่ายของค่าข้อมูล
เช่น วันที่เริ่มทำงาน
ให้แต่ละ column ของตารางแทน attribute ให้แต่ละ row แทนค่าจริงของ 1
record (เรียก tuple)ฐานข้อมูลเชิงสัมพันธ์
เป็นการจัดเก็บรวบรวมข้อมูลเป็นแถวและคอลัมน์ในลักษณะตารางสองมิติ ที่ประกอบด้วย attribute ที่แสดงคุณสมบัติที่แสดงคุณสมบัติของ Relationship โดยผ่านกระบวนการทำให้เป็นบรรทัดฐาน
(Normalized) ในระหว่างการออกแบบ เพื่อลดความซ้ำซ้อน
และการจัดฐานข้อมูลอย่างมีประสิทธิภาพ
เป็นฐานข้อมูลซึ่งให้ภาพของข้อมูล
ทั้งในระดับภายนอก(External Level) และ
ระดับแนวคิด (Conceptual Level) แก่ผู้ใช้ฐานข้อมูลได้เป็นอย่างดี
คุณลักษณะในการจัดเก็บข้อมูล
ในแต่ละ Relation ประกอบด้วยข้อมูลของ Attribyte ต่างๆที่จัดเก็บในรูปตาราง 2 มิติ คือ Row,
Column
ข้อมูลในแต่ละแถวจะไม่ซ้ำกัน
การจัดเรียงลำดับของข้อมูลในแต่ละแถวไม่เป็นสาระสำคัญ
การจัดเรียงลำดับของ Attribute จะเรียงลำดับก่อนหลังอย่างไรก็ได้
ค่าของข้อมูลในแต่ละ Attribute ของ Tuple หนึ่งๆ
จะบรรจุได้เพียงค่าเดียว
ค่าของข้อมูลในแต่ละ Attribute จะบรรจุค่าของข้อมูลประเภทเดียวกัน
กฎที่เกี่ยวข้องกับคีย์ในฐานข้อมูลเชิงสัมพันธ์
1. กฎความบูรณภาพของเอนทิตี้
(The Entity Intergrity Rule) กฎนี้ระบุไว้ว่าแอททริบิวต์ใดที่เป็นคีย์หลัก
ข้อมูลในแอททริบิวต์นั้นจะเป็นค่าว่าง(Null) ไม่ได้
ความหมายของการเป็นค่าว่างไม่ได้(Not Null) หมายความถึง
ข้อมูลของแอททริบิวต์ที่เป็นคีย์หลักจะไม่ทราบค่าที่แน่นอนหรือไม่มีค่าไม่ได้
2. กฎความบูรณภาพของการอ้างอิง
(The Referential IntegrityRule) การอ้างอิงข้อมูลระหว่างรีเลชั่นในฐานข้อมูลเชิงสัมพันธ์จะใช้คีย์นอกของรีเลชั่นหนึ่งไปตรวจสอบกับค่าของแอททริบิวต์ที่เป็นคีย์หลักของอีกรีเลชั่นหนึ่งเพื่อเรียกดูข้อมูลอื่นๆที่เกี่ยวข้องหรือค่าของคีย์นอกจะต้องอ้างอิงให้ตรงกับค่าของคีย์หลักได้จึงจะสามารถเชื่อมโยงข้อมูลระหว่างสองรีเลชั่นได้สำหรับคีย์นอกจะมีค่าว่างได้หรือไม่ขึ้นอยู่กับกฎเกณฑ์การออกแบบฐานข้อมูล
เช่น ในกรณีที่รีเลชั่นพนักงานมี Depnoเป็นคีย์นอกอาจจะถูกระบุว่าต้องทราบค่าแต่ในกรณีพนักงานทดลองงานอาจยังไม่มีค่า Depno เพราะยังไม่ได้ถูกบรรจุในกรณีที่มีการลบหรือแก้ใขข้อมูลของแอททริบิวต์ที่เป็นคีย์หลักซึ่งมีคีย์นอก
จากอีกรีเลชั่นหนึ่งอ้างอิงถึง จะทำการลบหรือแก้ใขข้อมูลได้หรือไม่
ขึ้นอยู่กับการออกแบบฐานข้อมูล ว่าได้ระบุให้แอททริบิวต์มีคุณสมบัติอย่างไร
ซึ่งมีโอกาสเป็นไปได้ 4 ทางเลือก
- การลบหรือแก้ใขข้อมูลแบบมีข้อจำกัด
(Restrict) การลบหรือแก้ไขข้อมูลจะกระทำได้
เมื่อข้อมูลของคีย์หลักในรีเลชั่นหนึ่งไม่มีข้อมูลที่ถูกอ้างอิง
โดยคีย์นอกของอีกรีเลชั่นหนึ่งเช่น รหัสแผนก Depno ในรีเลชั่นDepจะถูกแก้ใขหรือลบทิ้งต่อเมื่อไม่มีพนักงานคนใดสังกัดอยู่ในแผนกนั้น
-
การลบหรือแก้ไขข้อมูลแบบต่อเรียง (Cascade) การลบหรือการแก้ใขข้อมูล
จะทำแบบเป็นลูกโซ่ คือ
หากมีการแก้ไขหรือลบข้อมูลของคีย์หลักในรีเลชั่นหนึ่งระบบจะทำการลบหรือแก้ใขข้อมูลของคีย์นอกในอีกรีเลชั่นหนึ่งที่อ้างอิงถึงข้อมูลของคีย์หลักที่ถูกลบให้ด้วย
เช่น ในกรณีที่ยกเลิกแผนก 9 ในEntityแผนก
ข้อมูลของพนักงานที่อยู่แผนก 10ในEntityพนักงานจะถูกลบออกไปด้วย
-
การลบหรือแก้ไขข้อมูลโดยเปลี่ยนเป็นค่าว่าง (Nullify) การลบหรือแก้ใขข้อมูลจะทำได้เมื่อมีการเปลี่ยนค่าของคีย์นอกในข้อมูลที่ถูกอ้างอิงให้เป็นค่าว่างเสียก่อน
เช่น พนักงานที่อยู่ในแผนกที่ 9 จะถูกเปลี่ยนค่าเป็นค่าว่างก่อนหลังจากนั้น
การลบข้อมูลของแผนกที่มีรหัส 9 จะถูกลบทิ้งหรือแก้ไขทันที
ภายใน Entity แผนก
-
การลบหรือแก้ไขข้อมูลแบบใช้ค่าโดยปริยาย ( Default) การลบหรือแก้ไขข้อมูลของคีย์หลัก
สามารถทำได้โดยถ้าหากมีคีย์นอกที่อ้างอิงถึงคีย์หลักที่ถูกลบหรือแก้ไข
ก็จะทำการปรับค่าของคีย์นอกนั้นโดยปริยาย (Default Value) ที่ถูกกำหนดขึ้นเช่น
ในกรณีที่ยกเลิกแผนก 9 ในEntity แผนก
ข้อมูลของพนักงานที่อยู่แผนก 9 ใน Entity พนักงานจะถูกเปลี่ยนค่าเป็น 00 ซึ่งเป็นค่าโดยปริยาย
ที่หมายความว่า ไม่ได้สังกัดแผนกใด