ความแตกต่างระหว่าง Super Key กับ Candidate Key
เนื้อหา
คีย์เป็นองค์ประกอบสำคัญของฐานข้อมูลเชิงสัมพันธ์ มันระบุแต่ละ tuple ในความสัมพันธ์ที่ไม่ซ้ำกัน คีย์ยังใช้เพื่อสร้างความสัมพันธ์ระหว่างตารางในสคีมา ในบทความนี้เราจะพูดถึงสองคีย์พื้นฐานของฐานข้อมูลใด ๆ ที่เป็นซุปเปอร์คีย์และคีย์ผู้สมัคร รหัสผู้สมัครทุกคนเป็นกุญแจสำคัญ แต่ทุก ๆ กุญแจอาจจะใช่หรือไม่ใช่รหัสผู้สมัคร มีปัจจัยที่แตกต่างอื่น ๆ อีกมากมายระหว่างซุปเปอร์คีย์และคีย์ผู้สมัครซึ่งฉันได้กล่าวสั้น ๆ ในแผนภูมิเปรียบเทียบด้านล่าง
- แผนภูมิเปรียบเทียบ
- คำนิยาม
- ความแตกต่างที่สำคัญ
- ข้อสรุป
แผนภูมิเปรียบเทียบ
พื้นฐานสำหรับการเปรียบเทียบ | ซุปเปอร์คีย์ | รหัสผู้สมัคร |
---|---|---|
ขั้นพื้นฐาน | แอตทริบิวต์เดียวหรือชุดของคุณลักษณะที่ระบุคุณลักษณะทั้งหมดในความสัมพันธ์โดยเฉพาะคือกุญแจสำคัญ | เซ็ตย่อยที่เหมาะสมของซุปเปอร์คีย์ซึ่งเป็นซุปเปอร์คีย์คือคีย์ตัวเลือก |
หนึ่งในอื่น ๆ | ไม่บังคับว่าซุปเปอร์คีย์ทั้งหมดจะเป็นคีย์ตัวเลือก | ปุ่มตัวเลือกทั้งหมดเป็นซุปเปอร์คีย์ |
การเลือก | ชุดของปุ่มพิเศษจะเป็นพื้นฐานสำหรับการเลือกปุ่มตัวเลือก | ชุดของคีย์ตัวเลือกจะสร้างฐานสำหรับการเลือกคีย์หลักเดียว |
นับ | มีความสัมพันธ์กันมากขึ้น | มีคีย์ผู้สมัครที่ค่อนข้างน้อยกว่าในความสัมพันธ์ |
ความหมายของปุ่ม Super
กุญแจสำคัญ คือ ขั้นพื้นฐาน กุญแจของความสัมพันธ์ใด ๆ มันถูกกำหนดให้เป็น สำคัญ ที่สามารถระบุคุณลักษณะอื่น ๆ ทั้งหมดในความสัมพันธ์. ปุ่มพิเศษอาจเป็นแอตทริบิวต์เดียวหรือชุดของแอตทริบิวต์ เอนทิตีที่สองไม่มีค่าเดียวกันสำหรับแอตทริบิวต์ที่เขียนคีย์พิเศษ มีอย่างน้อยหนึ่งคีย์ขึ้นไปที่สัมพันธ์กัน
คีย์พิเศษขั้นต่ำสุดจะเรียกว่าคีย์ตัวเลือก ดังนั้นเราจึงสามารถบอกได้ว่าซุปเปอร์คีย์บางตัวได้รับการยืนยันว่าเป็นคีย์ตัวเลือก เราจะดูในภายหลังว่ามีการตรวจสอบซูเปอร์คีย์เพื่อเป็นคีย์ตัวเลือกอย่างไร
ให้เรารับความสัมพันธ์ R (A, B, C, D, E, F); เราได้ติดตามการอ้างอิงสำหรับความสัมพันธ์ R และเราได้ตรวจสอบแต่ละรายการว่าเป็นซุปเปอร์คีย์
ใช้กุญแจ AB เราสามารถระบุคุณลักษณะส่วนที่เหลือของตารางได้เช่น CDEF. ในทำนองเดียวกันการใช้กุญแจ ซีดี, ABD, DF, และ DEF เราสามารถระบุคุณลักษณะที่เหลืออยู่ของตาราง R ดังนั้นทั้งหมดนี้คือปุ่มพิเศษแต่การใช้กุญแจ CB เราสามารถหาค่าสำหรับแอตทริบิวต์เท่านั้น D และ Fเราไม่สามารถหาค่าสำหรับแอตทริบิวต์ และ E. ดังนั้น CB ไม่ใช่กุญแจสำคัญ เป็นกรณีเดียวกันกับคีย์ D เราไม่สามารถหาค่าของคุณลักษณะทั้งหมดในตารางโดยใช้คีย์ D ดังนั้น D ไม่ใช่คีย์พิเศษ
คำจำกัดความของรหัสผู้สมัคร
กุญแจสำคัญ นั่นคือเซตย่อยที่เหมาะสมของซุปเปอร์คีย์อื่นของความสัมพันธ์เดียวกันเรียกว่า กุญแจสำคัญน้อยที่สุด. ปุ่มลัดขั้นต่ำสุดถูกเรียกว่า รหัสผู้สมัคร. เช่นเดียวกับซุปเปอร์คีย์คีย์ตัวเลือกจะระบุแต่ละ tuple ในตารางโดยไม่ซ้ำกัน แอตทริบิวต์ของรหัสผู้สมัครสามารถยอมรับได้ โมฆะ ราคา.
หนึ่งในคีย์ผู้สมัครถูกเลือกเป็นคีย์หลักโดย DBA. โดยมีเงื่อนไขว่าค่าแอตทริบิวต์คีย์ต้องไม่ซ้ำกันและไม่มี NULL คุณลักษณะของคีย์ผู้สมัครถูกเรียก คุณสมบัติที่สำคัญ.
ในตัวอย่างด้านบนเราได้พบกุญแจ Super สำหรับความสัมพันธ์ R ตอนนี้ให้เราตรวจสอบซุปเปอร์คีย์ทั้งหมดสำหรับการเป็นผู้สมัครกุญแจ
กุญแจสำคัญ AB เป็นชุดย่อยที่เหมาะสมของซุปเปอร์คีย์ ABD. ดังนั้นเมื่อคีย์ซุปเปอร์น้อยที่สุด AB เพียงอย่างเดียวมีความสามารถในการระบุคุณลักษณะทั้งหมดในตารางจากนั้นเราไม่จำเป็นต้องมีคีย์ที่ใหญ่กว่า ABD. ดังนั้นกุญแจสำคัญ AB เป็นคีย์ตัวเลือกในขณะที่ ABD จะเป็นซุปเปอร์คีย์เท่านั้น
ในทำนองเดียวกันซุปเปอร์คีย์ DF ยังเป็นชุดย่อยที่เหมาะสมของซุปเปอร์คีย์ DEF. ดังนั้นเมื่อ DF มีความสามารถเพียงอย่างเดียวในการระบุคุณลักษณะทั้งหมดในความสัมพันธ์ว่าทำไมเราต้องการ DEF. ดังนั้นกุญแจสำคัญ DF กลายเป็นรหัสผู้สมัครในขณะที่ DEF เป็นเพียงกุญแจสำคัญ
ซุปเปอร์คีย์ ซีดี ไม่ใช่ชุดย่อยที่เหมาะสมของซุปเปอร์คีย์อื่น ๆ ดังนั้นเราสามารถพูดได้ ซีดี เป็นคีย์ที่น้อยที่สุดที่ระบุคุณลักษณะทั้งหมดในความสัมพันธ์ ดังนั้น ซีดี เป็นคีย์ตัวเลือก
ในขณะที่สำคัญ CB และ D ไม่ใช่ซุปเปอร์คีย์ดังนั้นจึงไม่สามารถเป็นคีย์ตัวเลือกได้ การดูตารางด้านบนคุณสามารถสรุปได้ว่าคีย์ตัวเลือกแต่ละตัวเป็นซุปเปอร์คีย์ แต่ค่าผกผันนั้นไม่เป็นความจริง
- แอตทริบิวต์เดียวหรือชุดของคุณลักษณะที่สามารถระบุคุณลักษณะทั้งหมดของความสัมพันธ์เฉพาะเรียกว่า Super key ในทางตรงกันข้ามซุปเปอร์คีย์ที่เป็นเซ็ตย่อยที่เหมาะสมของซุปเปอร์คีย์อื่นนั้นเรียกว่าคีย์ตัวเลือก
- คีย์ตัวเลือกทั้งหมดเป็นซุปเปอร์คีย์ แต่ค่าอินเวอร์สไม่เป็นจริง
- ชุดของปุ่มพิเศษจะได้รับการตรวจสอบเพื่อค้นหาคีย์ตัวเลือกในขณะที่ชุดของปุ่มตัวเลือกจะได้รับการตรวจสอบเพื่อเลือกคีย์หลักเดียว
- Super keys มีจำนวนมากกว่าผู้สมัคร
สรุป:
Super key เป็นกุญแจสำคัญพื้นฐานของความสัมพันธ์ใด ๆ พวกเขาจะต้องพล็อตก่อนที่จะรับรู้คีย์อื่น ๆ สำหรับความสัมพันธ์ที่พวกเขาเป็นฐานสำหรับคีย์อื่น ๆ คีย์ผู้สมัครมีความสำคัญเนื่องจากช่วยในการรับรู้คีย์ที่สำคัญที่สุดของความสัมพันธ์ใด ๆ ที่เป็นคีย์หลัก