ความรู้ทั่วไปเกี่ยวกับฐานข้อมูล
คีย์ (KEY)
คีย์ (KEY)
ในการอ้างอิง การค้นหา การแก้ไขเปลี่ยนแปลงข้อมูล หรือการกำหนดความสัมพันธ์ระหว่างข้อมูลจะเกิดขึ้นอย่างมีประสิทธิภาพ จะต้องกำหนดคีย์ (KEY) ให้กับ Table ก่อน นอกจากนี้การกำหนดคีย์จะทำให้การอ้างอิงและการประมวลผลข้อมูลได้สะดวกขึ้นและยังช่วยประหยัดเนื้อที่ใช้ในการจัดเก็บคีย์ที่ใช้ในระบบฐานข้อมูลแบ่งออกได้หลายประเภท ดังต่อไปนี้
Primary Key
หมายถึง คีย์หลักที่กำหนดจากฟิลด์ที่ไม่มีข้อมูลซ้ำซ้อน (unique) ใน Table เดียวกันโดยเด็ดขาด
และจะต้องมีค่าเสมอจะเป็นค่าว่าง (Null) ไม่ได้ สามารถนำมาจัดเรียงลำดับและแยกแยะข้อมูลแต่ละรายการออกจากกันได้อย่างดี ตัวอย่างของข้อมูลที่นำมากำหนดเป็นคีย์หลัก ได้แก่ รหัสนักเรียน รหัสสินค้า หมายเลขห้องพัก รหัสวิชา ฯลฯ
รูปที่ 1.7 แสดงตัวอย่างการกำหนดคีย์หลัก (Primary Key)
Secondary Key
หมายถึง คีย์รอง โดยโปรแกรม Access จะเรียกคีย์ชนิดนี้ว่า Index (ดัชนี) ซึ่งเป็นคุณสมบัติหนึ่งในการกำหนดคีย์หลัก (Primary Key) และยังใช้ Index ในการค้นหา และจัดเรียงรายการข้อมูลที่มีจำนวนมากได้อย่างรวดเร็ว ตัวอย่างเช่น ถ้าต้องการค้นหาฟิลด์ชื่อพนักงาน ถ้าฟิลด์ดังกล่าวไม่ได้กำหนด Index ไว้ โปรแกรมจะเริ่มค้นตั้งแต่รายการแรกไปเรื่อย ๆ จนกระทั่งพบ ดังนั้นถ้าชื่อพนักงานที่ต้องการค้นหาอยู่รายการท้าย ๆ จะเสียเวลาในการสืบค้น โดยเฉพาะข้อมูลที่มีจำนวนมาก ๆ ถ้ากำหนด Index ให้กับฟิลด์ดังกล่าว ฟิลด์ชื่อพนักงานจะถูกเก็บในแฟ้ม Index ของ DBMS และจะจัดเรียงชื่อตามลำดับตัวอักษร เมื่อมีการสืบค้นก็จะค้นหาที่แฟ้ม Index เพื่อทราบตำแหน่งรายการ ที่ต้องการและเข้าถึงข้อมูลดังกล่าวได้อย่างรวดเร็ว ฟิลด์ที่กำหนดเป็น Index จะยอมให้ข้อมูลซ้ำกันได้ (Duplicate)
Foreign Key
หมายถึง คีย์นอก เป็นที่เชื่อม Table ที่เกี่ยวข้องหรือมีความสัมพันธ์กัน เช่น ใน Table หลักสูตร กำหนดให้รหัสวิชาเป็น Primary Key และทำการเชื่อมไปยัง Table ลงทะเบียน เพื่อต้องการทราบชื่อวิชาและหน่วยกิตที่นักเรียนลงทะเบียน โดยกำหนดฟิลด์รหัสวิชาใน Table ลงทะเบียน เป็น Foreign Key ในลักษณะความสัมพันธ์ one to many หมายความว่า รหัสวิชา 1 วิชา สามารถให้นักเรียนลงทะเบียนได้ มากกว่า 1 คน ดังนั้นจึงมีรหัสซ้ำได้ใน Table ลงทะเบียน
รูปที่ 1.8 แสดงตัวอย่างการกำหนดคีย์นอก (Foreign Key)
Candidate Key
หมายถึง คีย์ที่มีคุณสมบัติใกล้เคียงกับคีย์หลัก (Primary Key) หรือสามารถนำมาแทนคีย์หลักได้ เช่น ในตารางพนักงาน กำหนดให้พนักงานเป็นคีย์หลักซึ่งมีค่าไม่ซ้ำกัน แต่พบว่าหมายเลขบัตรประชาชนของพนักงานก็มีค่าไม่ซ้ำกัน ดังนั้นหมายเลขบัตรประชาชนมีลักษณะเป็น Candidate Key ซึ่งสามารถนำมาเป็นคีย์สำรองแทนคีย์หลักได้
รหัสพนักงาน | ชื่อ-สกุล | หมายเลขบัตรประชาชน | การศึกษา |
001 002 003 | สมชาย มีสกุล สิริวิมล ชาญฉลาด สมควร ชนะชาติ | 1-1299-00123-25-8 1-3205-12001-32-4 3-2022-15444-779 | ปวส. ปริญญาตรี ปวช. |
รูปที่ 1.9 แสดงตัวอย่างการกำหนดคีย์สำรองเป็นคีย์หลัก (Candidate Key)
Compound Key
หมายถึง คีย์ที่เกิดจากการรวมข้อมูลหลายฟิลด์ ให้มีคุณสมบัติเหมือนคีย์หลัก (มีค่าไม่ซ้ำกันและไม่มีค่าว่าง หรือ null value) เช่น การนำฟิลด์ชื่อพนักงานมารวมกับฟิลด์สกุลของพนักงาน ทำให้เกิดเป็นฟิลด์ข้อมูลที่มีค่าไม่ซ้ำซ้อนกันเราเรียกคีย์ที่เกิดจากการรวมชื่อพนักงาน และสกุลว่า Compound Key หรือคีย์รวม
รูปที่ 1.10 แสดงตัวอย่างการกำหนดคีย์รวม (Compound Key)