29 ก.ย. เวลา 09:00 • การศึกษา
Data By Shoper Gamer

Candidate Key คืออะไร

โดย
ในการออกแบบฐานข้อมูลเชิงสัมพันธ์ Candidate Key (คีย์ตัวเลือก) เป็นแนวคิดพื้นฐานที่สำคัญซึ่งเป็นรากฐานของการเลือก Primary Key ที่เหมาะสม บทความนี้จะพาคุณเจาะลึกไปกับ Candidate Key ตั้งแต่แนวคิดพื้นฐานไปจนถึงการนำไปใช้งานจริง
  • ​Candidate Key คืออะไร
Candidate Key คือ ชุดของคุณลักษณะที่สามารถใช้ระบุแต่ละแถวในตารางได้อย่างไม่ซ้ำกัน และ มีขนาดเล็กที่สุด (Minimal) โดยมีคุณสมบัติสำคัญคือ
○ Unique ระบุแต่ละแถวได้ไม่ซ้ำกัน
○ Irreducible (ลดทอนไม่ได้) ไม่สามารถลบคุณลักษณะใดออกได้โดยยังคงความเป็น Unique
○ Not Null ไม่มีคุณลักษณะในคีย์ที่เป็นค่าว่าง
  • ​Candidate Key ทำงานอย่างไร
1) การระบุคุณลักษณะ ที่มีค่าไม่ซ้ำกัน
2) การตรวจสอบความเล็กที่สุดของชุดคุณลักษณะ
3) การเลือก Candidate Keys ที่เป็นไปได้ทั้งหมด
4) การเลือก Primary Key จาก Candidate Keys
  • ​วิธีหา Candidate Key
○ เริ่มต้นจาก Super Keys ทั้งหมด
○ กำจัดคุณลักษณะที่ซ้ำซ้อนออก
○ จะได้ Candidate Keys ที่มีขนาดเล็กที่สุด
  • ​ประเภทของ Candidate Keys
1) Simple Candidate Key
○ ประกอบด้วยคุณลักษณะเดียว
○ ตัวอย่าง StudentID, EmployeeCode
○ ข้อดี ใช้ง่าย มีประสิทธิภาพ
2) Composite Candidate Key
○ ประกอบด้วยหลายคุณลักษณะ
○ ตัวอย่าง (CourseID, StudentID), (OrderID, ProductID)
○ ข้อดี สะท้อนความสัมพันธ์ที่แท้จริง
  • ​ประโยชน์
✅ เป็นพื้นฐานในการเลือก Primary Key
✅ ช่วยรักษาความถูกต้องของข้อมูล
✅ สนับสนุนกระบวนการ Normalization
✅ เพิ่มประสิทธิภาพการค้นหา
✅ ลดข้อมูลซ้ำซ้อน
  • ​ตัวอย่างการใช้งาน Candidate Key
☆ ตัวอย่าง 1 ตาราง Students
```sql
CREATE TABLE Students (
StudentID INT,
CitizenID CHAR(13),
Email VARCHAR(100),
FirstName VARCHAR(50),
LastName VARCHAR(50)
);
```
💡 Candidate Keys ที่เป็นไปได้ {StudentID}, {CitizenID}, {Email}
☆ ตัวอย่าง 2 ตาราง Orders
```sql
CREATE TABLE Orders (
OrderID INT,
OrderNumber VARCHAR(20),
CustomerID INT,
OrderDate DATE
);
```
💡 Candidate Keys {OrderID}, {OrderNumber}
☆ ตัวอย่าง 3 ตาราง Enrollments
```sql
CREATE TABLE Enrollments (
StudentID INT,
CourseID INT,
EnrollmentDate DATE,
Grade CHAR(2)
);
```
💡 Candidate Key {StudentID, CourseID} (Composite Candidate Key)
  • ​วิธีการหา Candidate Key อย่างเป็นระบบ
1) ระบุคุณลักษณะทั้งหมด
2) หาความสัมพันธ์เชิงฟังก์ชัน (Functional Dependencies)
3) หา Super Keys ทั้งหมด
4) กำจัดคุณลักษณะที่ซ้ำซ้อน
5) จะได้ Candidate Keys
1
  • ​ตัวอย่าง
จากตาราง Employees
○ ความสัมพันธ์ EmployeeID สามารถระบุ
✅️ (FirstName, LastName, Department) ได้,
✅️ Email สามารถระบุ (EmployeeID, FirstName, LastName, Department) ได้
✅️ และ (FirstName, LastName, Phone) อาจระบุ (EmployeeID, Email, Department) ได้
ดังนั้น Candidate Keys จะมี {EmployeeID}, {Email}, และ {FirstName, LastName, Phone} (หากไม่ซ้ำกัน)
  • ​การเลือก Primary Key จาก Candidate Keys
🏁 เกณฑ์การเลือก
✅️ ความเสถียร (Stable) ไม่เปลี่ยนแปลงบ่อย
✅️ ความเรียบง่าย (Simple) ใช้ง่าย
✅️ ประสิทธิภาพ (Efficient) มีประสิทธิภาพ
✅️ ความคุ้นเคย (Familiar) คุ้นเคยในธุรกิจ
  • ​ตัวอย่างการเลือก
จาก Candidate Keys {StudentID}, {CitizenID}, {Email}
○ เลือก StudentID เป็น Primary Key (ง่าย และ มีประสิทธิภาพ)
○ เก็บ CitizenID และ Email เป็น Alternate Keys
✏️ Shoper Gamer
  • ​Primary Keys คืออะไร 👇
  • ​Super Key คืออะไร 👇
  • ​Alternate Key คืออะไร 👇
Credit :
👇
  • ​https://www.simplilearn.com/candidate-key-in-dbms-article
  • ​https://cst.tsu.ac.th/courseonline/course/computer_it/database/key.html
  • ​https://herovired.com/learning-hub/blogs/candidate-key/
  • ​https://www.tutorialspoint.com/candidate-key-in-dbms

ดูเพิ่มเติมในซีรีส์

โฆษณา