Blockdit Logo
Blockdit Logo (Mobile)
สำรวจ
ลงทุน
คำถาม
เข้าสู่ระบบ
มีบัญชีอยู่แล้ว?
เข้าสู่ระบบ
หรือ
ลงทะเบียน
Shoper Gamer
•
ติดตาม
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
>>
https://shopergamer.vercel.app/
✓
Primary Keys คืออะไร 👇
>>
https://www.blockdit.com/posts/68cbaaae9ffcd7713c37ec98
✓
Super Key คืออะไร 👇
>>
https://www.blockdit.com/posts/68cf89f6a869680804343930
✓
Alternate Key คืออะไร 👇
>>
https://www.blockdit.com/posts/68d8c7ea09165580e331ec62
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
data
เทคโนโลยี
ข่าวรอบโลก
บันทึก
2
2
ดูเพิ่มเติมในซีรีส์
Data
2
2
โฆษณา
ดาวน์โหลดแอปพลิเคชัน
© 2025 Blockdit
เกี่ยวกับ
ช่วยเหลือ
คำถามที่พบบ่อย
นโยบายการโฆษณาและบูสต์โพสต์
นโยบายความเป็นส่วนตัว
แนวทางการใช้แบรนด์ Blockdit
Blockdit เพื่อธุรกิจ
ไทย