คีย์ DBMS: ประเภทคีย์ Candidate, Super, Primary, Foreign พร้อมตัวอย่าง

คีย์ใน DBMS คืออะไร

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

ตัวอย่าง:

รหัสพนักงาน ชื่อจริง นามสกุล
11 แอนดรู จอห์นสัน
22 ทอม ไม้
33 อเล็กซ์ มีกำลังวังชา

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

ทำไมเราต้องมีกุญแจ?

ต่อไปนี้เป็นเหตุผลบางประการสำหรับการใช้คีย์ sql ในระบบ DBMS

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

ประเภทของคีย์ใน DBMS (ระบบจัดการฐานข้อมูล)

ส่วนใหญ่มีคีย์ที่แตกต่างกันแปดประเภทใน DBMS และแต่ละคีย์มีฟังก์ชันการทำงานที่แตกต่างกัน:

  1. ซุปเปอร์คีย์
  2. คีย์หลัก
  3. คีย์ผู้สมัคร
  4. คีย์สำรอง
  5. ต่างประเทศที่สำคัญ
  6. คีย์ผสม
  7. คีย์ผสม
  8. กุญแจสำรอง

ลองดูที่แต่ละคีย์ใน DBMS ด้วยตัวอย่าง:

  • ซุปเปอร์คีย์ – ซุปเปอร์คีย์คือกลุ่มของคีย์เดียวหรือหลายคีย์ซึ่งระบุแถวในตาราง
  • คีย์หลัก – คือคอลัมน์หรือกลุ่มของคอลัมน์ในตารางที่ระบุทุกแถวในตารางนั้นโดยไม่ซ้ำกัน
  • รหัสผู้สมัคร – คือชุดของคุณลักษณะที่ระบุสิ่งอันดับในตารางโดยไม่ซ้ำกัน Candidate Key เป็นซุปเปอร์คีย์ที่ไม่มีแอตทริบิวต์ซ้ำ
  • กุญแจสำรอง – คือคอลัมน์หรือกลุ่มของคอลัมน์ในตารางที่ระบุทุกแถวในตารางนั้นโดยไม่ซ้ำกัน
  • คีย์ต่างประเทศ – เป็นคอลัมน์ที่สร้างความสัมพันธ์ระหว่างสองตาราง วัตถุประสงค์ของ Foreign Key คือเพื่อรักษาความสมบูรณ์ของข้อมูลและช่วยให้สามารถนำทางระหว่างสองอินสแตนซ์ที่แตกต่างกันของเอนทิตีได้
  • คีย์ผสม – มีคุณลักษณะตั้งแต่ 2 รายการขึ้นไปที่ช่วยให้คุณสามารถจดจำบันทึกเฉพาะได้โดยไม่ซ้ำกัน เป็นไปได้ว่าแต่ละคอลัมน์อาจไม่ซ้ำกันในฐานข้อมูล
  • คีย์คอมโพสิต – คือการรวมกันของสองคอลัมน์ขึ้นไปที่ระบุแถวในตารางโดยไม่ซ้ำกัน การรวมกันของคอลัมน์รับประกันความเป็นเอกลักษณ์ แม้ว่าจะไม่รับประกันความเป็นเอกลักษณ์ของแต่ละบุคคลก็ตาม
  • คีย์ตัวแทน – คีย์เทียมซึ่งมีจุดมุ่งหมายเพื่อระบุแต่ละระเบียนโดยไม่ซ้ำกันเรียกว่าคีย์ตัวแทน คีย์ประเภทนี้มีเอกลักษณ์เฉพาะตัวเนื่องจากสร้างขึ้นเมื่อคุณไม่มีคีย์หลักที่เป็นธรรมชาติ

ซุปเปอร์คีย์คืออะไร?

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

ตัวอย่าง:

EmpSSN EmpNum นาม
9812345098 AB05 แสดงให้เห็นว่า
9876512345 AB06 โรสลิน
199937890 AB07 เจมส์

ในตัวอย่างข้างต้น ชื่อ EmpSSN และ EmpNum เป็นซุปเปอร์คีย์

คีย์หลักคืออะไร?

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

กฎสำหรับการกำหนดคีย์หลัก:

  • สองแถวไม่สามารถมีค่าคีย์หลักเดียวกันได้
  • ทุกแถวจะต้องมีค่าคีย์หลัก
  • ฟิลด์คีย์หลักไม่สามารถเป็นค่าว่างได้
  • ค่าในคอลัมน์คีย์หลักไม่สามารถแก้ไขหรืออัปเดตได้ หากคีย์ภายนอกใดๆ อ้างถึงคีย์หลักนั้น

ตัวอย่าง:

ในตัวอย่างต่อไปนี้ StudID เป็นคีย์หลัก

สตั๊ดไอดี ม้วนไม่มี ชื่อ นามสกุล อีเมล
1 11 ทอม ราคา abc@gmail.com
2 12 Nick ไรท์ xyz@gmail.com
3 13 Dana Natan mno@yahoo.com

กุญแจสำรองคืออะไร?

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

ตัวอย่าง:

ในตารางนี้ StudID, Roll No, Email มีคุณสมบัติที่จะเป็นคีย์หลักได้ แต่เนื่องจาก StudID เป็นคีย์หลัก Roll No, Email จึงกลายมาเป็นคีย์สำรอง

สตั๊ดไอดี ม้วนไม่มี ชื่อ นามสกุล อีเมล
1 11 ทอม ราคา abc@gmail.com
2 12 Nick ไรท์ xyz@gmail.com
3 13 Dana Natan mno@yahoo.com

รหัสผู้สมัครคืออะไร?

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

คุณสมบัติของรหัสผู้สมัคร:

  • จะต้องมีค่าที่ไม่ซ้ำ
  • Candidate key ใน SQL อาจมีหลายแอตทริบิวต์
  • ต้องไม่มีค่าว่าง
  • ควรมีฟิลด์ขั้นต่ำเพื่อให้แน่ใจว่าไม่ซ้ำกัน
  • ระบุแต่ละระเบียนในตารางโดยไม่ซ้ำกัน

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

สตั๊ดไอดี ม้วนไม่มี ชื่อ นามสกุล อีเมล
1 11 ทอม ราคา abc@gmail.com
2 12 Nick ไรท์ xyz@gmail.com
3 13 Dana Natan mno@yahoo.com

คีย์ผู้สมัคร
รหัสผู้สมัครใน DBMS

คีย์ต่างประเทศคืออะไร?

คีย์ต่างประเทศ เป็นคอลัมน์ที่สร้างความสัมพันธ์ระหว่างสองตาราง วัตถุประสงค์ของ Foreign Key คือเพื่อรักษาความสมบูรณ์ของข้อมูลและช่วยให้สามารถนำทางระหว่างสองอินสแตนซ์ที่แตกต่างกันของเอนทิตีได้ มันทำหน้าที่เป็นตัวอ้างอิงโยงระหว่างสองตารางโดยอ้างอิงคีย์หลักของตารางอื่น

ตัวอย่าง:

รหัสแผนก ชื่อแผนก
001 วิทยาศาสตร์
002 ภาษาอังกฤษ
005 คอมพิวเตอร์
บัตรประจำตัวครู ชื่อ ชื่อ
B002 เดวิด วอร์เนอร์
B017 ซาร่า โจเซฟ
B009 ไมค์ บรันตัน

ในคีย์นี้ในตัวอย่าง dbms เรามีสองตาราง การสอน และแผนกในโรงเรียน อย่างไรก็ตาม ไม่มีทางที่จะดูว่าการค้นหาใดทำงานในแผนกใด

ในตารางนี้ การเพิ่มคีย์ต่างประเทศใน Deptcode ให้กับชื่อ Teacher เราสามารถสร้างความสัมพันธ์ระหว่างทั้งสองตารางได้

บัตรประจำตัวครู รหัสแผนก ชื่อ ชื่อ
B002 002 เดวิด วอร์เนอร์
B017 002 ซาร่า โจเซฟ
B009 001 ไมค์ บรันตัน

แนวคิดนี้เรียกอีกอย่างว่าการอ้างอิง Integrity.

คีย์ผสมคืออะไร?

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

ตัวอย่าง:

หมายเลขคำสั่งซื้อ PorductID ชื่อผลิตภัณฑ์ จำนวน
B005 ญี่ปุ่น 102459 เม้าส์ 5
B005 ดีเคที321573 USB 10
B005 โอ้พระเจ้า446789 จอแอลซีดี 20
B004 ดีเคที321573 USB 15
B002 โอ้พระเจ้า446789 เลเซอร์ปริ้นเตอร์ 3

ในตัวอย่างนี้ OrderNo และ ProductID ไม่สามารถเป็นคีย์หลักได้ เนื่องจากไม่ได้ระบุเรกคอร์ดโดยไม่ซ้ำกัน อย่างไรก็ตาม สามารถใช้คีย์ผสมของรหัสคำสั่งซื้อและรหัสผลิตภัณฑ์ได้เนื่องจากระบุแต่ละระเบียนโดยไม่ซ้ำกัน

คีย์คอมโพสิตคืออะไร?

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

ความแตกต่างระหว่างคีย์ผสมและคีย์ผสมก็คือ ส่วนใดๆ ของคีย์ผสมสามารถเป็นคีย์ต่างประเทศได้ แต่คีย์ผสมอาจเป็นหรือไม่ใช่ส่วนหนึ่งของคีย์ต่างประเทศก็ได้

คีย์ตัวแทนคืออะไร?

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

ชื่อ นามสกุล เวลาเริ่มต้น เวลาสิ้นสุด
แอนน์ Smith 09:00 18:00
ช่องเสียบ ฟรานซิส 08:00 17:00
แอนนา McLean 11:00 20:00
แสดงให้เห็นว่า วิลลาม 14:00 23:00

ตัวอย่างด้านบนแสดงเวลาการทำงานกะของพนักงานแต่ละคน ในตัวอย่างนี้ จำเป็นต้องใช้คีย์สำรองเพื่อระบุพนักงานแต่ละคนโดยเฉพาะ

กุญแจตัวแทนเข้ามา SQL ได้รับอนุญาตเมื่อ

  • ไม่มีคุณสมบัติที่มีพารามิเตอร์ของคีย์หลัก
  • ในตารางเมื่อคีย์หลักมีขนาดใหญ่หรือซับซ้อนเกินไป

ความแตกต่างระหว่างคีย์หลักและคีย์ต่างประเทศ

ต่อไปนี้เป็นความแตกต่างหลักระหว่างคีย์หลักและคีย์ต่างประเทศ:

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

สรุป

  • คีย์ใน DBMS คืออะไร: คีย์ใน DBMS คือคุณลักษณะหรือชุดคุณลักษณะที่ช่วยให้คุณระบุแถว (tuple) ในความสัมพันธ์ (ตาราง)
  • กุญแจเข้า อาร์ดีบีเอ็มเอส ช่วยให้คุณสร้างความสัมพันธ์ระหว่างและระบุความสัมพันธ์ระหว่างตาราง
  • คีย์แปดประเภทใน DBMS ได้แก่ Super, Primary, Candidate, Alternate, Foreign, Compound, Composite และ Surrogate Key
  • ซุปเปอร์คีย์คือกลุ่มของคีย์เดียวหรือหลายคีย์ซึ่งระบุแถวในตาราง
  • คอลัมน์หรือกลุ่มของคอลัมน์ในตารางที่ช่วยให้เราสามารถระบุทุกแถวในตารางนั้นโดยไม่ซ้ำกันเรียกว่าคีย์หลัก
  • คีย์ที่แตกต่างกันทั้งหมดใน DBMS ที่ไม่ใช่คีย์หลักจะเรียกว่าคีย์สำรอง
  • ซูเปอร์คีย์ที่ไม่มีแอตทริบิวต์ซ้ำเรียกว่าคีย์ตัวเลือก
  • คีย์ผสมคือคีย์ที่มีหลายฟิลด์ซึ่งช่วยให้คุณจดจำบันทึกเฉพาะได้โดยไม่ซ้ำกัน
  • คีย์ที่มีแอตทริบิวต์หลายรายการเพื่อระบุแถวในตารางโดยไม่ซ้ำกันเรียกว่าคีย์ผสม
  • คีย์เทียมซึ่งมีจุดมุ่งหมายเพื่อระบุแต่ละระเบียนโดยไม่ซ้ำกันเรียกว่าคีย์ตัวแทน
  • คีย์หลักไม่ยอมรับค่า Null ในขณะที่คีย์นอกอาจยอมรับค่า Null หลายค่า