คำว่า "relational" หรือ "relationship" ในฐานข้อมูลอธิบายถึงวิธีการเชื่อมต่อข้อมูลในตาราง
ผู้ที่มาใหม่ในโลกของฐานข้อมูลมักมีช่วงเวลาที่ยากลำบากในการมองเห็นความแตกต่างระหว่างฐานข้อมูลและสเปรดชีต พวกเขาเห็นตารางข้อมูลและยอมรับว่าฐานข้อมูลช่วยให้คุณสามารถจัดระเบียบและ สืบค้นข้อมูลด้วย วิธีการใหม่ ๆ แต่ไม่เข้าใจถึงความสำคัญของ ความสัมพันธ์ระหว่างข้อมูล ที่ให้ชื่อเทคโนโลยีฐานข้อมูลเชิงสัมพันธ์
ความสัมพันธ์ช่วยให้คุณสามารถอธิบายการเชื่อมต่อระหว่างตารางฐานข้อมูลต่างๆได้อย่างมีประสิทธิภาพ ความสัมพันธ์เหล่านี้จะสามารถใช้ประโยชน์ได้เพื่อดำเนินการแบบสอบถามข้ามตารางที่มีประสิทธิภาพซึ่งเรียกว่าการเข้าร่วม
ประเภทของความสัมพันธ์ฐานข้อมูล
มีความสัมพันธ์ของฐานข้อมูลสามชนิดแต่ละชนิดมีชื่อตามจำนวนแถวของตารางที่อาจเกี่ยวข้องกับความสัมพันธ์ แต่ละประเภทความสัมพันธ์ทั้งสามมีอยู่ระหว่างสองตาราง
- ความสัมพันธ์แบบ ตัวต่อตัวเกิดขึ้นเมื่อแต่ละรายการในตารางแรกมีหนึ่งและมีเพียงคู่เดียวในตารางที่สอง ความสัมพันธ์แบบตัวต่อตัวจะไม่ค่อยใช้เนื่องจากมักจะมีประสิทธิภาพมากกว่าในการใส่ข้อมูลทั้งหมดลงในตารางเดียว นักออกแบบฐานข้อมูลบางรายใช้ประโยชน์จากความสัมพันธ์นี้โดยสร้างตารางที่ประกอบด้วยเซตย่อยของข้อมูลจากตารางอื่น
- ความสัมพันธ์แบบหนึ่ง - ต่อ - หลาย เป็นความสัมพันธ์ฐานข้อมูลที่พบมากที่สุด เกิดขึ้นเมื่อแต่ละระเบียนในตาราง A สอดคล้องกับระเบียนหนึ่งหรือหลายรายการในตาราง B แต่แต่ละระเบียนในตาราง B สอดคล้องกับระเบียนเดียวในตารางที่ A. ตัวอย่างเช่นความสัมพันธ์ระหว่างตารางครูกับตารางนักเรียนในโรงเรียนประถมศึกษา ฐานข้อมูลอาจเป็นความสัมพันธ์แบบหนึ่งต่อหลายเนื่องจากนักเรียนแต่ละคนมีครูเพียงคนเดียว แต่ครูแต่ละคนมีนักเรียนหลายคน การออกแบบแบบหนึ่งต่อหลายนี้ช่วยขจัดข้อมูลที่ซ้ำซ้อน
- ความสัมพันธ์แบบหลายต่อหลายรายการ เกิดขึ้นเมื่อแต่ละระเบียนในตาราง A สอดคล้องกับระเบียนอย่างน้อยหนึ่งรายการในตาราง B และแต่ละระเบียนในตาราง B สอดคล้องกับระเบียนหนึ่งหรือหลายรายการในตารางที่ A ตัวอย่างเช่นความสัมพันธ์ระหว่างครูและหลักสูตร ตารางอาจจะมากไปหลายเพราะแต่ละครูอาจสั่งมากกว่าหนึ่งหลักสูตรและแต่ละหลักสูตรอาจมีมากกว่าหนึ่งอาจารย์ผู้สอน
ความสัมพันธ์ที่อ้างถึงตนเอง: กรณีพิเศษ
ความสัมพันธ์อ้างอิงด้วยตนเองเกิดขึ้นเมื่อมีเพียงตารางเดียวเท่านั้นที่เกี่ยวข้อง ตัวอย่างหนึ่งคือตารางพนักงานที่มีข้อมูลเกี่ยวกับผู้บังคับบัญชาของพนักงานแต่ละคน หัวหน้างานแต่ละคนยังเป็นพนักงานและมีผู้บังคับบัญชาของตนเอง ในกรณีนี้มีความสัมพันธ์แบบอ้างอิงตัวต่อตัวเป็นส่วน ๆ เนื่องจากพนักงานแต่ละคนมีผู้บังคับบัญชาคนหนึ่งคน แต่หัวหน้างานแต่ละคนอาจมีพนักงานมากกว่าหนึ่งคน
การสร้างความสัมพันธ์กับคีย์ต่างประเทศ
คุณสร้างความสัมพันธ์ระหว่างตารางโดยการ ระบุคีย์ต่างประเทศคีย์ นี้บอกฐานข้อมูลเชิงสัมพันธ์ว่าตารางเกี่ยวข้องกันอย่างไร ในหลาย ๆ กรณีคอลัมน์ในตาราง A มีคีย์หลักที่อ้างอิงจากตาราง B
พิจารณาตัวอย่างของตารางครูและนักเรียนอีกครั้ง ตาราง Teachers มีเพียง ID, ชื่อและคอลัมน์ของหลักสูตร:
InstructorID | TEACHER_NAME | หลักสูตร |
---|---|---|
001 | John Doe | อังกฤษ |
002 | Jane Schmoe | คณิตศาสตร์ |
ตารางนักเรียนประกอบด้วย ID ชื่อและคอลัมน์คีย์ต่างประเทศ:
รหัสนักศึกษา | ชื่อนักเรียน | Teacher_FK |
---|---|---|
0200 | Lowell Smith | 001 |
0201 | ไบรอันสั้น | 001 |
0202 | Corky Mendez | 002 |
0203 | โมนิกาโจนส์ | 001 |
คอลัมน์ Teacher_FK ในตารางนักเรียนจะอ้างอิงถึง ค่าคีย์หลัก ของผู้สอนในตารางครู
บ่อยๆนักออกแบบฐานข้อมูลจะใช้ "PK" หรือ "FK" ในชื่อคอลัมน์เพื่อระบุคีย์หลักหรือคอลัมน์คีย์ต่างประเทศได้อย่างง่ายดาย
โปรดทราบว่าตารางทั้งสองนี้แสดงให้เห็นถึงความสัมพันธ์แบบหนึ่งต่อหลายระหว่างครูกับนักเรียน
ความสัมพันธ์และความสอดคล้อง
เมื่อคุณเพิ่มคีย์ต่างประเทศลงในตารางแล้วคุณสามารถสร้างข้อ จำกัด ของฐานข้อมูลที่บังคับใช้การ อ้างอิงแบบ referential ระหว่างตารางทั้งสองได้ เพื่อให้แน่ใจว่าความสัมพันธ์ระหว่างตารางจะคงที่ เมื่อตารางหนึ่งมีคีย์ต่างประเทศไปยังตารางอื่นแนวคิดของความสมบูรณ์แบบอ้างอิงจะระบุว่าค่าคีย์ต่างประเทศในตาราง B ต้องอ้างถึงระเบียนที่มีอยู่ในตาราง A
การใช้ความสัมพันธ์
คุณใช้ความสัมพันธ์ระหว่างตารางในรูปแบบต่างๆขึ้นอยู่กับฐานข้อมูลของคุณ Microsoft Access มีวิซาร์ดที่ช่วยให้คุณสามารถเชื่อมโยงตารางและบังคับใช้ความสมบูรณ์แบบอ้างอิงได้อย่างง่ายดาย
ถ้าคุณกำลังเขียน SQL โดยตรงคุณจะต้องสร้างตารางครูประกาศคอลัมน์ ID เป็นคีย์หลัก:
ครู CREATE TABLE (
INT AUTO_INCREMENT หลักของ InstructorID INTEL,
Teacher_Name VARCHAR (100),
เรียน VARCHAR (100)
);
เมื่อคุณสร้างตารางนักเรียนคุณจะประกาศให้คอลัมน์ Teacher_FK เป็นคีย์ต่างประเทศที่อ้างอิงถึงคอลัมน์ InstructorID ในตาราง Teachers ':
สร้างนักเรียนตาราง (
นิสิตนักศึกษา INT AUTO_INCREMENT PRIMARY KEY,
เรียนรู้ VARCHAR (100), Teacher_FK INT,
ครูต่างประเทศ (Teacher_FK) อ้างอิงครู (InstructorID))
);
การใช้ความสัมพันธ์เพื่อเข้าร่วมตาราง
เมื่อคุณสร้างความสัมพันธ์อย่างน้อยหนึ่งรายการในฐานข้อมูลของคุณแล้วคุณสามารถใช้ประโยชน์ได้โดยใช้แบบสอบถาม SQL JOIN เพื่อรวมข้อมูลจากหลายตาราง ชนิดที่ใช้ร่วมกันที่สุดคือ SQL INNER JOIN หรือเข้าร่วมง่ายๆ ชนิดของการเข้าร่วมนี้จะส่งกลับระเบียนทั้งหมดที่ตรงกับเงื่อนไขการเข้าร่วมจากหลายตาราง ตัวอย่างเช่นเงื่อนไข JOIN นี้จะส่งคืน Student_Name, Teacher_Name และหลักสูตรที่คีย์ foreign ในตาราง Students ตรงกับคีย์หลักในตาราง Teachers:
SELECT Students.Student_Name, Teachers.Teacher_Name, Teachers.Course
FROM Students
INNER JOIN ครู
ON Students.Teacher_FK = Teachers.InstructorID;
คำสั่งนี้สร้างตารางบางอย่างเช่นนี้
ตารางที่คืนจากคำชี้แจงการเข้าร่วมของ SQL
เรียนภาษาอังกฤษ DoeEnglish