ความรู้เบื้องต้นเกี่ยวกับความสัมพันธ์ของฐานข้อมูล

สารบัญ:

ความรู้เบื้องต้นเกี่ยวกับความสัมพันธ์ของฐานข้อมูล
ความรู้เบื้องต้นเกี่ยวกับความสัมพันธ์ของฐานข้อมูล
Anonim

เงื่อนไขฐานข้อมูลเชิงสัมพันธ์และความสัมพันธ์อธิบายวิธีที่ข้อมูลในตารางเชื่อมต่อกัน ฐานข้อมูลเชิงสัมพันธ์ประกอบด้วยชุดของตารางตั้งแต่สองตารางขึ้นไปที่เชื่อมโยงด้วยคีย์เฉพาะ ฐานข้อมูลเชิงสัมพันธ์แตกต่างจากฐานข้อมูลที่ไม่มีโครงสร้าง ซึ่งพบได้ทั่วไปในการริเริ่มข้อมูลขนาดใหญ่ ฐานข้อมูลเชิงสัมพันธ์มักจะต้องการกฎเกณฑ์ที่เข้มงวดเกี่ยวกับวิธีการกำหนดตารางและสิ่งที่ถือเป็นความสัมพันธ์ที่ถูกต้องระหว่างตาราง

Image
Image

ประเภทของความสัมพันธ์ฐานข้อมูล

Relationships ช่วยให้คุณสามารถอธิบายการเชื่อมต่อระหว่างตารางฐานข้อมูลได้อย่างมีประสิทธิภาพ ความสัมพันธ์เหล่านี้สามารถใช้เพื่อดำเนินการสืบค้นข้อมูลข้ามตารางที่มีประสิทธิภาพ ซึ่งเรียกว่า JOIN

ความสัมพันธ์ของฐานข้อมูลมีสามประเภท แต่ละประเภทตั้งชื่อตามจำนวนแถวของตารางที่เกี่ยวข้องในความสัมพันธ์ ความสัมพันธ์ทั้งสามประเภทนี้แต่ละประเภทมีอยู่ระหว่างสองตาราง

  • ความสัมพันธ์แบบตัวต่อตัว เกิดขึ้นเมื่อแต่ละรายการในตารางแรกมีคู่กันเพียงตัวเดียวในตารางที่สอง ความสัมพันธ์แบบหนึ่งต่อหนึ่งไม่ค่อยได้ใช้ เนื่องจากมักจะมีประสิทธิภาพมากกว่าในการใส่ข้อมูลทั้งหมดลงในตารางเดียว ผู้ออกแบบฐานข้อมูลบางคนใช้ประโยชน์จากความสัมพันธ์นี้โดยการสร้างตารางที่มีชุดย่อยของข้อมูลจากตารางอื่น
  • ความสัมพันธ์แบบหนึ่งต่อกลุ่ม เป็นประเภทความสัมพันธ์ของฐานข้อมูลที่พบบ่อยที่สุด เกิดขึ้นเมื่อแต่ละระเบียนในตาราง A สอดคล้องกับอย่างน้อยหนึ่งระเบียนในตาราง B แต่แต่ละระเบียนในตาราง B สอดคล้องกับระเบียนเดียวในตาราง A ตัวอย่างเช่น ความสัมพันธ์ระหว่างตารางครูกับตารางนักเรียนในโรงเรียนประถมศึกษา ฐานข้อมูลน่าจะเป็นความสัมพันธ์แบบหนึ่งต่อกลุ่มเพราะนักเรียนแต่ละคนมีครูเพียงคนเดียว แต่ครูแต่ละคนมีนักเรียนหลายคนการออกแบบแบบหนึ่งต่อหลายนี้ช่วยขจัดข้อมูลที่ซ้ำกัน
  • ความสัมพันธ์แบบกลุ่มต่อกลุ่ม เกิดขึ้นเมื่อแต่ละระเบียนในตาราง A สอดคล้องกับหนึ่งระเบียนขึ้นไปในตาราง B และแต่ละระเบียนในตาราง B สอดคล้องกับหนึ่งระเบียนขึ้นไป ในตาราง A ตัวอย่างเช่น ความสัมพันธ์ระหว่างตารางครูและตารางรายวิชาน่าจะเป็นแบบกลุ่มต่อกลุ่ม เนื่องจากครูแต่ละคนอาจสอนมากกว่าหนึ่งหลักสูตร และแต่ละหลักสูตรอาจมีผู้สอนมากกว่าหนึ่งราย

บรรทัดล่าง

ความสัมพันธ์แบบอ้างอิงตนเองเกิดขึ้นเมื่อมีตารางที่เกี่ยวข้องเพียงตารางเดียว ตัวอย่างทั่วไปอย่างหนึ่งคือตารางพนักงานที่มีข้อมูลเกี่ยวกับหัวหน้างานของพนักงานแต่ละคน ผู้บังคับบัญชาแต่ละคนก็เป็นพนักงานและมีหัวหน้างานด้วย ในกรณีนี้ มีความสัมพันธ์แบบหนึ่งต่อหลายคนในการอ้างอิงตนเอง เนื่องจากพนักงานแต่ละคนมีหัวหน้างานหนึ่งคน แต่หัวหน้างานแต่ละคนอาจมีพนักงานได้มากกว่าหนึ่งคน

สร้างสัมพันธ์กับกุญแจต่างประเทศ

คุณสร้างความสัมพันธ์ระหว่างตารางโดยระบุคีย์ต่างประเทศ คีย์นี้จะบอกฐานข้อมูลเชิงสัมพันธ์ว่าตารางมีความสัมพันธ์กันอย่างไร ในหลายกรณี คอลัมน์ในตาราง A มีคีย์หลักที่อ้างอิงจากตาราง B

พิจารณาตัวอย่างตารางครูและนักเรียน ตารางครูประกอบด้วย ID ชื่อ และคอลัมน์หลักสูตร:

รหัสผู้สอน Teacher_Name หลักสูตร
001 จอห์น โด ภาษาอังกฤษ
002 เจน ชโม คณิตศาสตร์

ตารางนักเรียนประกอบด้วย ID ชื่อและคอลัมน์คีย์ต่างประเทศ:

รหัสนักศึกษา Student_Name Teacher_FK
0200 โลเวลล์ สมิธ 001
0201 ไบรอันชอร์ต 001
0202 คอร์กี้ เมนเดซ 002
0203 โมนิกา โจนส์ 001

คอลัมน์ Teacher_FK ในตารางนักเรียนอ้างอิงค่าคีย์หลักของผู้สอนในตารางครู บ่อยครั้ง ผู้ออกแบบฐานข้อมูลใช้ PK หรือ FK ในชื่อคอลัมน์เพื่อระบุคีย์หลักหรือคอลัมน์คีย์ภายนอก

สองตารางนี้แสดงให้เห็นถึงความสัมพันธ์แบบหนึ่งต่อกลุ่มระหว่างครูและนักเรียน

ความสัมพันธ์และความซื่อสัตย์ในการอ้างอิง

หลังจากเพิ่มคีย์นอกลงในตารางแล้ว ให้สร้างข้อจำกัดของฐานข้อมูลที่บังคับใช้ Referential Integrity ระหว่างสองตาราง ขั้นตอนนี้ช่วยให้แน่ใจว่าความสัมพันธ์ระหว่างตารางยังคงสอดคล้องกัน เมื่อตารางหนึ่งมีคีย์นอกไปยังตารางอื่น Referential Integrity กำหนดให้ค่าคีย์นอกในตาราง B ต้องอ้างอิงถึงเร็กคอร์ดที่มีอยู่ในตาราง A

สร้างความสัมพันธ์

คุณจะใช้ความสัมพันธ์ระหว่างตารางด้วยวิธีต่างๆ กันทั้งนี้ขึ้นอยู่กับฐานข้อมูลของคุณ Microsoft Access มีวิซาร์ดที่ให้คุณเชื่อมโยงตารางและบังคับใช้ความสมบูรณ์ของการอ้างอิง

ถ้าคุณกำลังเขียน SQL โดยตรง ขั้นแรกให้สร้างตาราง คุณครู โดยประกาศคอลัมน์ ID ให้เป็นคีย์หลัก:

สร้างตาราง ครู (รหัสผู้สอน INT AUTO_INCREMENT คีย์หลัก, Teacher_Name VARCHAR(100), หลักสูตร VARCHAR(100));

เมื่อคุณสร้างตารางนักเรียน คุณประกาศให้คอลัมน์ Teacher_FK เป็นคีย์ต่างประเทศที่อ้างอิงคอลัมน์ InstructorID ในตารางของครู:

สร้างตาราง นักเรียน (StudentID INT AUTO_INCREMENT PRIMARY KEY, Student_Name VARCHAR(100), Teacher_FK INT, FOREIGN KEY (Teacher_FK) ข้อมูลอ้างอิง ครู(InstructorID)));

การใช้ความสัมพันธ์เพื่อเข้าร่วมตาราง

หลังจากสร้างความสัมพันธ์ตั้งแต่หนึ่งความสัมพันธ์ขึ้นไปในฐานข้อมูลของคุณแล้ว ให้ใช้ประโยชน์จากพลังของความสัมพันธ์โดยใช้คำสั่ง SQL JOIN เพื่อรวมข้อมูลจากหลายตาราง การเข้าร่วมประเภทที่พบบ่อยที่สุดคือ SQL INNER JOIN ซึ่งเป็นการรวมแบบง่าย การรวมประเภทนี้จะส่งกลับระเบียนทั้งหมดที่ตรงตามเงื่อนไขการรวมจากตารางอย่างน้อยหนึ่งตาราง

ตัวอย่างเช่น เงื่อนไข JOIN นี้ส่งคืน Student_Name, Teacher_Name และ Course โดยที่คีย์ต่างประเทศในตาราง Students ตรงกับคีย์หลักในตาราง Teachers:

เลือกนักเรียน. Student_Name, Teachers. Teacher_Name, Teachers. Course

FROM Students

INNER JOIN TeachersON Students. Teacher_FK=Teachers. InstructorID;

คำสั่งนี้สร้างตารางดังนี้:

Student_Name Teacher_Name หลักสูตร
โลเวลล์ สมิธ จอห์น โด ภาษาอังกฤษ
ไบรอันชอร์ต จอห์น โด ภาษาอังกฤษ
คอร์กี้ เมนเดซ เจน ชโม คณิตศาสตร์
โมนิกา โจนส์ จอห์น โด ภาษาอังกฤษ