Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> SQL

คีย์ประเภทต่างๆ ใน ​​DBMS


คีย์ประเภทต่างๆ ใน ​​DBMS ได้แก่ −

  • รหัสผู้สมัคร - คีย์ตัวเลือกในตารางถูกกำหนดให้เป็นชุดของคีย์ที่น้อยที่สุดและสามารถระบุแถวข้อมูลใดๆ ในตารางได้โดยไม่ซ้ำกัน
  • คีย์หลัก - คีย์หลักถูกเลือกจากคีย์ตัวเลือกตัวใดตัวหนึ่ง และกลายเป็นคีย์ระบุของตาราง โดยจะระบุแถวข้อมูลของตารางได้โดยไม่ซ้ำกัน
  • ซุปเปอร์คีย์ - Super Key คือ superset ของคีย์หลัก ซูเปอร์คีย์ประกอบด้วยชุดของแอตทริบิวต์ ซึ่งรวมถึงคีย์หลัก ซึ่งสามารถระบุแถวข้อมูลในตารางได้โดยไม่ซ้ำกัน
  • คีย์คอมโพสิต - หากแอตทริบิวต์เดียวของตารางไม่สามารถเป็นคีย์ได้ เช่น ไม่สามารถระบุแถวที่ไม่ซ้ำได้ เราจะรวมแอตทริบิวต์สองรายการขึ้นไปเพื่อสร้างคีย์ ซึ่งเรียกว่าคีย์ผสม
  • คีย์รอง - มีเพียงคีย์ตัวเลือกเดียวเท่านั้นที่ถูกเลือกเป็นคีย์หลัก ที่เหลือเรียกว่าคีย์รอง
  • กุญแจต่างประเทศ - คีย์ภายนอกคือค่าแอตทริบิวต์ในตารางที่ทำหน้าที่เป็นคีย์หลักในตารางอื่น ดังนั้น foreign key จึงมีประโยชน์ในการเชื่อมโยงสองตารางเข้าด้วยกัน ควรป้อนข้อมูลในคอลัมน์ Foreign Key ด้วยความระมัดระวัง เนื่องจากข้อมูลที่ป้อนผิดอาจทำให้ความสัมพันธ์ระหว่างสองตารางเป็นโมฆะได้

ตัวอย่างเพื่ออธิบายคีย์ต่างๆ คือ −

Student_Number Student_Name Student_Phone Subject_Number
1 แอนดรูว์ 6615927284 10
2 ซาร่า 6583654865 20
3 แฮร์รี่ 4647567463 10

Subject_Number Subject_Name Subject_Instructor
10 DBMS Korth
20 อัลกอริทึม คอร์เมน
30 อัลกอริทึม Leiserson

Student_Number Subject_Number
1 10
2 20
3 10

ซุปเปอร์คีย์ใน ตารางคือ −

{Student_Number}
{Student_Phone}
{Student_Number,Student_Name}
{Student_Number,Student_Phone}
{Student_Number,Subject_Number}
{Student_Phone,Student_Name}
{Student_Phone,Subject_Number}
{Student_Number,Student_Name,Student_Phone}
{Student_Number,Student_Phone,Subject_Number}
{Student_Number,Student_Name,Subject_Number}
{Student_Phone,Student_Name,Subject_Number}

ซุปเปอร์คีย์ใน ตารางคือ −

{Subject_Number}
{Subject_Number,Subject_Name}
{Subject_Number,Subject_Instructor}
{Subject_Number,Subject_Name,Subject_Instructor}
{Subject_Name,Subject_Instructor}

ซุปเปอร์คีย์ใน ตารางคือ −

{Student_Number,Subject_Number}

รหัสผู้สมัครในตาราง คือ {Student_Number} หรือ {Student_Phone}

รหัสผู้สมัครในตาราง คือ {Subject_Number} หรือ {Subject_Name,Subject_Instructor}

รหัสผู้สมัครในตาราง <นักเรียน> คือ {Student_Number, Subject_Number}

คีย์หลักในตาราง คือ {Student_Number}

คีย์หลักในตาราง คือ {Subject_Number}

คีย์หลักในตาราง <ลงทะเบียน> คือ {Student_Number, Subject_Number}

คีย์ผสมในตาราง <ลงทะเบียน> คือ {Student_Number, Subject_Number}

คีย์รองในตาราง คือ {Student_Phone}

คีย์รองในตาราง คือ {Subject_Name,Subject_Instructor}

{Subject_Number} คือคีย์ต่างประเทศของตาราง และคีย์หลักของตาราง