คีย์ประเภทต่างๆ ใน 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, Subject_Number}
คีย์หลักในตาราง
คีย์หลักในตาราง
คีย์หลักในตาราง <ลงทะเบียน> คือ {Student_Number, Subject_Number}
คีย์ผสมในตาราง <ลงทะเบียน> คือ {Student_Number, Subject_Number}
คีย์รองในตาราง
คีย์รองในตาราง
{Subject_Number} คือคีย์ต่างประเทศของตาราง