ระบุ key ด้วย SELECT COUNT DISTINCT
มีวิธีง่าย ๆ ในการค้นหาว่าอะไรคือ key ในตารางที่มีข้อมูลอยู่แล้ว:
นับจำนวนเรคคอร์ดที่ไม่ซ้ำกันสำหรับการรวมกันของคอลัมน์ทุกแบบที่เป็นไปได้ ถ้าตัวเลข
xที่ได้เท่ากับจำนวนแถวทั้งหมดในตาราง แสดงว่าพบ superkey แล้วจากนั้นลองตัดคอลัมน์ออกทีละคอลัมน์ จนกว่าจะตัดต่อไปไม่ได้โดยที่ตัวเลข
xไม่ลดลง ถ้าถึงจุดนั้น แสดงว่าพบ (candidate) key แล้ว
ตาราง professors มี 551 แถว และมี candidate key ที่เป็นไปได้เพียงหนึ่งอย่าง ซึ่งเป็นการรวมกันของแอตทริบิวต์สองตัว ลองทดสอบการรวมกันต่าง ๆ โดยใช้ปุ่ม "รันโค้ด" เมื่อพบคำตอบแล้ว ให้กด ส่งคำตอบ
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
SQL เบื้องต้น: ฐานข้อมูลเชิงสัมพันธ์
คำแนะนำการฝึกหัด
ใช้ขั้นตอนข้างต้นเพื่อระบุ candidate key โดยลองการรวมกันของคอลัมน์ต่าง ๆ ดู
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
-- Try out different combinations
___ COUNT(___(___))
FROM professors;