Back to Home

DataBase System

Lesson1345679101112131415

Lesson 2 : Relational Data Model



Lesson Plan
Section No.
Section 1
Section 2
Section 3
Section 4
Test
PDF file
PPT File

<<Prev pageCourse MapNext page>>

Print content of this page
Save content of this page

 

คีย์

คุณสมบัติหนึ่งที่สำคัญของความสัมพันธ์ก็คือ ความเป็นเอกลักษณ์ (Uniqueness property) สิ่งที่ใช้กำหนดความเป็นเอกลักษณ์ของแถวในความสัมพันธ์ เรียกว่า คีย์ (key)

ฐานข้อมูลหนึ่งๆ จะมีข้อมูลอยู่มากมาย ยิ่งฐานข้อมูลมีขนาดใหญ่ขึ้นก็จะมีข้อมูลจำนวนมากขึ้นเป็นเงาตามตัวข้อมูลเหล่านี้อาจมีค่าแตกต่างกัน คล้ายกัน หรือแม้กระทั่งเหมือนกัน ทำให้การแยกแยะโดยอาศัยเพียงตัวข้อมูลอย่างเดียวทำได้อย่างยากลำบาก ดังนั้นจึงมีการกำหนดค่า Keys ประจำข้อมูลเพื่อทำให้การแยกแยะข้อมูลในฐานข้อมูลเป็นไปอย่างถูกต้อง

คีย์มีหลายประเภท ได้แก่ คีย์หลัก, Secondary key, Foreign key, Candidate key, Super key ดังจะได้กล่าวในรายละเอียดต่อไป

1. คีย์หลัก (Primary key)

คีย์หลัก คือ Key หลักที่ใช้ในการอ้างถึง Entity ในฐานข้อมูล การเลือกคีย์หลักสามารถเลือกได้จากRecord ใดๆ ก็ได้ที่ไม่มีโอกาสซ้ำซ้อนกันบนฐานข้อมูลนั้น

เลขประจำตัวประชาชน

ชื่อ

นามสกุล

อายุ

3501552150054

สมชาย

แซ่ตั้ง

25

3210077565107

สมศรี

แซ่อึ้ง

42

4110597520235

สมชาย

แซ่ตั้ง

25

2156800512473

สมปอง

แซ่แต้

16

7812350453784

สมชัย

แซ่เล้ง

50

ตารางที่ 2-3 ข้อมูลทั่วไปของประชาชน

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

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

ชื่อ

นามสกุล

อายุ

เพศ

สมชาย

แซ่ตั้ง

25

ชาย

สมศรี

แซ่อึ้ง

42

หญิง

สมชาย

แซ่ตั้ง

25

ชาย

สมปอง

แซ่แต้

16

ชาย

สมชัย

แซ่เล้ง

50

ชาย

ตารางที่ 2-4 ข้อมูลทั่วไปของพนักงานบริษัท

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

ID

ชื่อ

นามสกุล

อายุ

เพศ

1

สมชาย

แซ่ตั้ง

25

ชาย

2

สมศรี

แซ่อึ้ง

42

หญิง

3

สมชาย

แซ่ตั้ง

25

ชาย

4

สมปอง

แซ่แต้

16

ชาย

5

สมชัย

แซ่เล้ง

50

ชาย

ตารางที่ 2-5 ข้อมูลทั่วไปของพนักงานบริษัทหลังจากเพิ่ม คีย์หลัก แล้ว

 หลังจากเพิ่ม Field พิเศษคือ ID เข้าไปในตารางที่ 2 เพื่อใช้เป็นคีย์หลักโดยเฉพาะ จะสามารถทำให้การอ้างถึงข้อมูลในฐานข้อมูลเป็นไปได้สะดวกและมีประสิทธิภาพมากขึ้น

โครงสร้างของคีย์ 

รูป 2-6 โครงสร้างของคีย์

2. คีย์รอง (Secondary Key)

คีย์สำรอง คือ คีย์เดี่ยวหรือคีย์ผสม (Single or Composite key) ซึ่งเมื่อใช้ในการค้นหาข้อมูลจากความสัมพันธ์จะได้มากกว่าหนึ่งเรคคอร์ด ต่างจากคีย์หลักที่ทำให้ข้อมูลในตารางไม่ซ้ำกัน ดังนั้นคีย์รองจึงไม่จำเป็นจะต้องเป็นเอกลักษณ์

3. คีย์นอก (Foreign key)

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

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

4. ซุปเปอร์คีย์ (Superkey)

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

5. คีย์แข่งขัน (Candidate key)

คีย์แข่งขัน ก็คือ ซุปเปอร์คีย์ และไม่มีกลุ่มย่อยของคีย์ใดในคีย์แข่งขันที่จะสามารถเป็นซุปเปอร์คีย์ได้อีก

 

 

Last Updated: 12/13/2001 11:23:11 AM
© โครงการเครือข่ายสารสนเทศเพื่อพัฒนาการศึกษา ทบวงมหาวิทยาลัย