ความแตกต่างที่สำคัญระหว่างคีย์หลักและคีย์เฉพาะคือคีย์หลักไม่ยอมรับค่า NULL ในขณะที่ค่า NULL ได้รับอนุญาตภายในข้อ จำกัด ของคีย์ที่ไม่ซ้ำกัน
แผนภูมิเปรียบเทียบ
พื้นฐานสำหรับการเปรียบเทียบ | คีย์หลัก | กุญแจที่ไม่ซ้ำ |
---|---|---|
ขั้นพื้นฐาน | มันถูกใช้เพื่อทำหน้าที่เป็นตัวระบุที่ไม่ซ้ำกันสำหรับแต่ละแถวในตาราง | นอกจากนี้ยังกำหนดแถวที่ไม่ซ้ำกันซึ่งไม่ได้กำหนดเป็นคีย์หลัก |
การยอมรับค่า NULL | คีย์หลักจะไม่ยอมรับค่า NULL | Unique จะยอมรับค่า NULL |
จำนวนของคีย์ที่สามารถกำหนดได้ในตาราง | คีย์หลักเดียวเท่านั้น | มากกว่าหนึ่ง |
ดัชนี | สร้างดัชนีคลัสเตอร์ | สร้างดัชนีที่ไม่ใช่คลัสเตอร์ |
คำจำกัดความของคีย์หลัก
คอลัมน์สามารถเรียกได้ว่าเป็น คีย์หลัก ของตารางหากระบุแต่ละ tuple (แถว) ในตารางนั้นโดยไม่ซ้ำกัน มันบังคับใช้ข้อ จำกัด ความสมบูรณ์ของตาราง อนุญาตให้ใช้คีย์หลักเดียวเท่านั้นในตาราง คีย์หลักไม่ยอมรับค่าซ้ำและค่า NULL คีย์หลักจะถูกเลือกด้วยความระมัดระวังซึ่งการเปลี่ยนแปลงสามารถเกิดขึ้นได้ในลักษณะที่ไม่ค่อยจะหมายความว่าคีย์หลักในตารางมีการเปลี่ยนแปลงน้อยมาก
มาทำความเข้าใจความคิดของคีย์หลักด้วยความช่วยเหลือของตาราง ที่นี่เรากำลังสร้างตารางชื่อเป็นตารางนักเรียนซึ่งมีคุณลักษณะเช่น Roll_number, ชื่อ, แบทช์, Phone_number, Citizen_ID
คีย์หลักสามารถอ้างอิงได้โดย foreign key มันจะสร้าง ดัชนีคลัสเตอร์ที่ ไม่ซ้ำกันบนโต๊ะ ในดัชนีกลุ่มแถวข้อมูลจะถูกจัดเรียงและเก็บไว้ในตารางหรือมุมมองตามค่าคีย์ สามารถมีดัชนีคลัสเตอร์เดียวในตารางได้เหตุผลหลังนี้คือแถวข้อมูลในตารางสามารถเรียงลำดับได้เพียงหนึ่งคำสั่งเท่านั้น
คำจำกัดความของคีย์เฉพาะ
เช่นเดียวกับคีย์ หลัก ข้อ จำกัด ของ คีย์ที่ไม่ซ้ำกัน ยังระบุ tuple แต่ละรายการโดยเฉพาะในความสัมพันธ์ แต่มีความแตกต่างบางอย่างระหว่างพวกเขา ตารางสามารถมีคีย์เฉพาะได้มากกว่าหนึ่งคีย์ ข้อ จำกัด คีย์ที่ไม่ซ้ำกันสามารถยอมรับค่า NULL เพียงค่าเดียวสำหรับคอลัมน์
มาทำความเข้าใจกับตัวอย่างที่คล้ายกันโดยที่เรามีตารางนักเรียนที่มีแอตทริบิวต์ Roll_number, ชื่อ, แบทช์, Phone_number และ Citizen_ID แอตทริบิวต์หมายเลขม้วนถูกกำหนดด้วยคีย์หลัก
ข้อ จำกัด ที่ไม่ซ้ำกันนั้นถูกอ้างอิงโดย foreign key สามารถใช้เมื่อมีคนต้องการบังคับใช้ข้อ จำกัด ในคอลัมน์และกลุ่มของคอลัมน์ซึ่งไม่ใช่คีย์หลัก ไม่เหมือนกับคีย์หลักมันสร้าง ดัชนีที่ไม่ทำคลัสเตอร์ ดัชนีที่ไม่ใช่คลัสเตอร์มีโครงสร้างที่แตกต่างจากแถวข้อมูล แต่ละรายการคีย์ - ค่าในนั้นชี้ไปที่แถวข้อมูลที่มีค่าคีย์ดังนั้นมันจะใช้ตัวชี้
ความแตกต่างของคีย์ระหว่างคีย์หลักและคีย์เฉพาะ
- เมื่อแอตทริบิวต์ถูกประกาศเป็นคีย์หลักมันจะไม่ยอมรับค่า NULL ในทางกลับกันเมื่อแอททริบิวต์ที่ประกาศว่าไม่ซ้ำใครสามารถยอมรับค่า NULL ได้หนึ่งค่า
- ตารางสามารถมีคีย์หลักเท่านั้นในขณะที่สามารถมีข้อ จำกัด ที่ไม่ซ้ำกันหลายรายการบนตาราง
- ดัชนีแบบคลัสเตอร์จะถูกสร้างขึ้นโดยอัตโนมัติเมื่อมีการกำหนดคีย์หลัก ในทางตรงกันข้ามคีย์ที่ไม่ซ้ำสร้างดัชนีที่ไม่ได้ทำคลัสเตอร์
ข้อสรุป
คีย์หลักและคีย์ที่ไม่ซ้ำมีไว้เพื่อวัตถุประสงค์ของตัวระบุที่ไม่ซ้ำกันสำหรับแถวของตารางที่มีค่าไม่ซ้ำกันในคอลัมน์หรือกลุ่มของคอลัมน์ ข้อ จำกัด ของคีย์เหล่านี้มีความแตกต่างอย่างมีนัยสำคัญโดยที่ทุกตารางสามารถมีได้อย่างน้อยหนึ่งคีย์หลักในขณะที่ตารางสามารถมีคีย์ที่ไม่ซ้ำกันหลายคีย์ที่ไม่ใช่คีย์หลัก