แนะนำ, 2024

ตัวเลือกของบรรณาธิการ

ความแตกต่างระหว่างคีย์หลักและคีย์เฉพาะ

เราได้ศึกษาคีย์ชนิดต่าง ๆ ที่ใช้ในฐานข้อมูลและสคีมาแล้วในบทความก่อนหน้านี้คือความแตกต่างระหว่างคีย์หลักและคีย์ต่างประเทศ ในบทความนี้เรากำลังแยกคีย์หลักและคีย์ไม่ซ้ำกัน ทั้งคีย์หลักและคีย์ที่ไม่ซ้ำกันจะใช้ในการระบุทูเปิลที่ไม่ซ้ำกันและบังคับให้มีเอกลักษณ์ในคอลัมน์หรือการรวมกันของคอลัมน์

ความแตกต่างที่สำคัญระหว่างคีย์หลักและคีย์เฉพาะคือคีย์หลักไม่ยอมรับค่า NULL ในขณะที่ค่า NULL ได้รับอนุญาตภายในข้อ จำกัด ของคีย์ที่ไม่ซ้ำกัน

แผนภูมิเปรียบเทียบ

พื้นฐานสำหรับการเปรียบเทียบคีย์หลักกุญแจที่ไม่ซ้ำ
ขั้นพื้นฐานมันถูกใช้เพื่อทำหน้าที่เป็นตัวระบุที่ไม่ซ้ำกันสำหรับแต่ละแถวในตารางนอกจากนี้ยังกำหนดแถวที่ไม่ซ้ำกันซึ่งไม่ได้กำหนดเป็นคีย์หลัก
การยอมรับค่า NULLคีย์หลักจะไม่ยอมรับค่า NULLUnique จะยอมรับค่า NULL
จำนวนของคีย์ที่สามารถกำหนดได้ในตารางคีย์หลักเดียวเท่านั้นมากกว่าหนึ่ง
ดัชนีสร้างดัชนีคลัสเตอร์สร้างดัชนีที่ไม่ใช่คลัสเตอร์

คำจำกัดความของคีย์หลัก

คอลัมน์สามารถเรียกได้ว่าเป็น คีย์หลัก ของตารางหากระบุแต่ละ tuple (แถว) ในตารางนั้นโดยไม่ซ้ำกัน มันบังคับใช้ข้อ จำกัด ความสมบูรณ์ของตาราง อนุญาตให้ใช้คีย์หลักเดียวเท่านั้นในตาราง คีย์หลักไม่ยอมรับค่าซ้ำและค่า NULL คีย์หลักจะถูกเลือกด้วยความระมัดระวังซึ่งการเปลี่ยนแปลงสามารถเกิดขึ้นได้ในลักษณะที่ไม่ค่อยจะหมายความว่าคีย์หลักในตารางมีการเปลี่ยนแปลงน้อยมาก

มาทำความเข้าใจความคิดของคีย์หลักด้วยความช่วยเหลือของตาราง ที่นี่เรากำลังสร้างตารางชื่อเป็นตารางนักเรียนซึ่งมีคุณลักษณะเช่น Roll_number, ชื่อ, แบทช์, Phone_number, Citizen_ID

ในตัวอย่างที่กำหนดหมายเลขการม้วนคุณลักษณะจะไม่มีวันเหมือนกันและมีค่า NULL เนื่องจากนักเรียนทุกคนลงทะเบียนเรียนในมหาวิทยาลัยที่มี Roll_number ที่ไม่ซ้ำกัน ไม่มีนักเรียนสองคนที่สามารถมี Roll_number เหมือนกันและแต่ละแถวในตารางจะถูกระบุด้วยหมายเลขม้วนของนักเรียน ดังนั้นเราสามารถสร้างแอตทริบิวต์ Roll_number เป็นคีย์หลักในกรณีนี้

คีย์หลักสามารถอ้างอิงได้โดย foreign key มันจะสร้าง ดัชนีคลัสเตอร์ที่ ไม่ซ้ำกันบนโต๊ะ ในดัชนีกลุ่มแถวข้อมูลจะถูกจัดเรียงและเก็บไว้ในตารางหรือมุมมองตามค่าคีย์ สามารถมีดัชนีคลัสเตอร์เดียวในตารางได้เหตุผลหลังนี้คือแถวข้อมูลในตารางสามารถเรียงลำดับได้เพียงหนึ่งคำสั่งเท่านั้น

คำจำกัดความของคีย์เฉพาะ

เช่นเดียวกับคีย์ หลัก ข้อ จำกัด ของ คีย์ที่ไม่ซ้ำกัน ยังระบุ tuple แต่ละรายการโดยเฉพาะในความสัมพันธ์ แต่มีความแตกต่างบางอย่างระหว่างพวกเขา ตารางสามารถมีคีย์เฉพาะได้มากกว่าหนึ่งคีย์ ข้อ จำกัด คีย์ที่ไม่ซ้ำกันสามารถยอมรับค่า NULL เพียงค่าเดียวสำหรับคอลัมน์

มาทำความเข้าใจกับตัวอย่างที่คล้ายกันโดยที่เรามีตารางนักเรียนที่มีแอตทริบิวต์ Roll_number, ชื่อ, แบทช์, Phone_number และ Citizen_ID แอตทริบิวต์หมายเลขม้วนถูกกำหนดด้วยคีย์หลัก

ที่นี่ Citizen_ID สามารถกำหนดด้วยข้อ จำกัด ที่ไม่ซ้ำกันซึ่งแต่ละรายการในคอลัมน์ Citizen_ID ควรไม่ซ้ำกันไม่ซ้ำกันเพราะพลเมืองของแต่ละประเทศต้องมีหมายเลขประจำตัวที่ไม่ซ้ำกัน แต่ถ้านักเรียนย้ายจากประเทศอื่นในกรณีนั้นเขาหรือเธอจะไม่มี Citizen_ID และรายการอาจมีค่า NULL เนื่องจากอนุญาต NULL เดียวในข้อ จำกัด เฉพาะ

ข้อ จำกัด ที่ไม่ซ้ำกันนั้นถูกอ้างอิงโดย foreign key สามารถใช้เมื่อมีคนต้องการบังคับใช้ข้อ จำกัด ในคอลัมน์และกลุ่มของคอลัมน์ซึ่งไม่ใช่คีย์หลัก ไม่เหมือนกับคีย์หลักมันสร้าง ดัชนีที่ไม่ทำคลัสเตอร์ ดัชนีที่ไม่ใช่คลัสเตอร์มีโครงสร้างที่แตกต่างจากแถวข้อมูล แต่ละรายการคีย์ - ค่าในนั้นชี้ไปที่แถวข้อมูลที่มีค่าคีย์ดังนั้นมันจะใช้ตัวชี้

ความแตกต่างของคีย์ระหว่างคีย์หลักและคีย์เฉพาะ

  1. เมื่อแอตทริบิวต์ถูกประกาศเป็นคีย์หลักมันจะไม่ยอมรับค่า NULL ในทางกลับกันเมื่อแอททริบิวต์ที่ประกาศว่าไม่ซ้ำใครสามารถยอมรับค่า NULL ได้หนึ่งค่า
  2. ตารางสามารถมีคีย์หลักเท่านั้นในขณะที่สามารถมีข้อ จำกัด ที่ไม่ซ้ำกันหลายรายการบนตาราง
  3. ดัชนีแบบคลัสเตอร์จะถูกสร้างขึ้นโดยอัตโนมัติเมื่อมีการกำหนดคีย์หลัก ในทางตรงกันข้ามคีย์ที่ไม่ซ้ำสร้างดัชนีที่ไม่ได้ทำคลัสเตอร์

ข้อสรุป

คีย์หลักและคีย์ที่ไม่ซ้ำมีไว้เพื่อวัตถุประสงค์ของตัวระบุที่ไม่ซ้ำกันสำหรับแถวของตารางที่มีค่าไม่ซ้ำกันในคอลัมน์หรือกลุ่มของคอลัมน์ ข้อ จำกัด ของคีย์เหล่านี้มีความแตกต่างอย่างมีนัยสำคัญโดยที่ทุกตารางสามารถมีได้อย่างน้อยหนึ่งคีย์หลักในขณะที่ตารางสามารถมีคีย์ที่ไม่ซ้ำกันหลายคีย์ที่ไม่ใช่คีย์หลัก

Top