คีย์ DBMS: ประเภทคีย์ Candidate, Super, Primary, Foreign พร้อมตัวอย่าง
คีย์ใน DBMS คืออะไร
คีย์ใน DBMS เป็นคุณลักษณะหรือชุดคุณลักษณะที่ช่วยให้คุณระบุแถว (tuple) ในความสัมพันธ์ (ตาราง) ช่วยให้คุณสามารถค้นหาความสัมพันธ์ระหว่างสองตารางได้ คีย์ช่วยให้คุณระบุแถวในตารางโดยไม่ซ้ำกันด้วยการรวมคอลัมน์ตั้งแต่หนึ่งคอลัมน์ขึ้นไปในตารางนั้น คีย์ยังมีประโยชน์ในการค้นหาเรกคอร์ดหรือแถวที่ไม่ซ้ำจากตารางอีกด้วย คีย์ฐานข้อมูลยังมีประโยชน์ในการค้นหาระเบียนหรือแถวที่ไม่ซ้ำจากตารางอีกด้วย
ตัวอย่าง:
รหัสพนักงาน | ชื่อจริง | นามสกุล |
---|---|---|
11 | แอนดรู | จอห์นสัน |
22 | ทอม | ไม้ |
33 | อเล็กซ์ | มีกำลังวังชา |
ในตัวอย่างข้างต้น ID พนักงานเป็นคีย์หลักเนื่องจากระบุเรกคอร์ดพนักงานโดยไม่ซ้ำกัน ในตารางนี้ พนักงานคนอื่นไม่สามารถมีรหัสพนักงานเดียวกันได้
ทำไมเราต้องมีกุญแจ?
ต่อไปนี้เป็นเหตุผลบางประการสำหรับการใช้คีย์ sql ในระบบ DBMS
- คีย์ช่วยให้คุณระบุแถวข้อมูลในตารางได้ ในแอปพลิเคชันในโลกแห่งความเป็นจริง ตารางอาจมีบันทึกหลายพันรายการ นอกจากนี้ บันทึกยังสามารถทำซ้ำได้ คีย์ใน RDBMS ช่วยให้มั่นใจได้ว่าคุณสามารถระบุบันทึกตารางได้โดยไม่ซ้ำกันแม้จะมีความท้าทายเหล่านี้ก็ตาม
- ช่วยให้คุณสร้างความสัมพันธ์ระหว่างและระบุความสัมพันธ์ระหว่างตาราง
- ช่วยให้คุณบังคับใช้อัตลักษณ์และความซื่อสัตย์ในความสัมพันธ์
ประเภทของคีย์ใน DBMS (ระบบจัดการฐานข้อมูล)
ส่วนใหญ่มีคีย์ที่แตกต่างกันแปดประเภทใน DBMS และแต่ละคีย์มีฟังก์ชันการทำงานที่แตกต่างกัน:
- ซุปเปอร์คีย์
- คีย์หลัก
- คีย์ผู้สมัคร
- คีย์สำรอง
- ต่างประเทศที่สำคัญ
- คีย์ผสม
- คีย์ผสม
- กุญแจสำรอง
ลองดูที่แต่ละคีย์ใน 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 |
คีย์ต่างประเทศคืออะไร?
คีย์ต่างประเทศ เป็นคอลัมน์ที่สร้างความสัมพันธ์ระหว่างสองตาราง วัตถุประสงค์ของ 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 หลายค่า