รีเลชันประกอบด้วยคีย์ประเภทต่างๆ อะไรบ้าง จงอธิบายพร้อมยกตัวอย่างประกอบประเภทคีย์ดังกล่าว

คีย์ หมายถึง แอตทริบิวต์ (attribute : ข้อมูลมีลักษณะเฉพาะที่ใช้แบ่งหมวดหมู่ของข้อมูล หรือที่เราคุ้นเคยกันในคำว่า field หรือ column นั่นเอง) หรือกลุ่มของแอตทริบิวต์ ที่สามารถใช้ในการบ่งบอกความแตกต่างของแต่ละทัปเพิล (tupple: กลุ่มของ attribute ที่รวมกันเป็นหนึ่งแถว หรือที่เราคุ้นเคยกันในชื่อว่า record หรือ row)  ในรีเลชัน (relation: กลุ่มของข้อมูลที่มีความสัมพันธ์กันหรือที่เราคุ้นเคยกันในชื่อว่า table หรือ file) ได้  แอตทริบิวต์ที่เป็นส่วนหนึ่งของคีย์เรียกว่า  คีย์แอตทริบิวต์ (Key Attribute) และคีย์แอตทริบิวต์ที่เกิดจากการนำเอาหลายแอตทริบิวต์มารวมกันเรียกว่าคอมโพสิตคีย์ (Composite Key)  คีย์ต่าง ๆ ที่ใช้ในฐานข้อมูลมีด้วยกันหลายชนิด  ดังต่อไปนี้

 ซูเปอร์คีย์ (Superkey)

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

 แคนดิเดตคีย์ (Candidate Key)

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

คีย์หลัก (Primary Key)

คีย์หลัก   คือแคนดิเดตคีย์ที่ถูกเลือกเพื่อใช้บอกความแตกต่างของแต่ละทัปเพิลในรีเลชัน  และต้องไม่มีค่าเป็นค่าว่าง (Null)

 คีย์รอง (Secondary Key)

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

คีย์นอก (Foreign Key)

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

อินทิกริตี (Integrity)

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

 เอนทิตีอินทิกริตี (Entity Integrity)

เอนทิตี (Entity: หมายถึงสิ่งต่าง ๆ ที่ใช้เป็นตัวแทนของข้อมูลซึ่งเป็นทั้งรูปธรรมและนามธรรม  เช่น นักศึกษา พนักงาน  รถยนต์ แผนก การทำงานฯลฯ  เช่น entity นักศึกษา มีความสัมพันธ์กับ entity การลงทะเบียนเรียน)

เอนทิตีอินทิกริตี  เป็นการกำหนดว่า  แต่ละเอนทิตีในแต่ละรีเลชันจะต้องมีค่าไม่ซ้ำกัน

เรเฟอเรนเชียลอินทิกริตี (Referential Integrity)

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

จะประกอบไปด้วยหลายๆฟิลด์จะมีข้อมูลหลากหลายอยู่ในฟิลด์ เช่น ชื่อ ที่อยู่ เบอร์โทรศัพท์ อาชีพ เงินเดือน

Table จะเป็นการรวมหลายๆเรคคอร์ด ไว้ในฐานข้อมูลเชิงสัมพันธ์ จะเก็บตารางที่มีความสัมพันธ์กันไว้หลายๆ ตาราง
        - ตารางจะต้องมีชื่อไม่ซ้ำกัน
        - แต่ละฟิลด์จะบรรจุประเภทข้อมูลเพียงชนิดเดียวเท่านั้น
        - ข้อมูลในแต่ละเรคอร์ดจะต้องไม่ซ้ำกัน
คีย์หลัก(Primary key) หรือเรียกว่า PK หมายถึงฟิลด์ที่มีข้อมูลไม่ซ้ำกัน เพราะเป็นเรื่องสำคัญมากในระบบฐานข้อมูล เช่นฟิลด์รหัสลูกค้าจะต้องไม่ซ้ำกันซึ่งจะเป็นข้อมูลประเภท Number ใน 1 ตาราง ควรจะมีคีย์หลักได้เพียง 1 คีย์เท่านั้น และในคีย์หลักต้องไม่เป็นค่าว่าง
คีย์นอก(Foreign Key) หรือเรียกว่า FK หมายถึงฟิลด์หรือคอมบิเนชั่น ของตารางหนึ่ง ซึ่งมีความสัมพันธ์กับฟิลด์ในตารางอื่น (ที่เป็นคีย์หลัก PK ) สามารถเชื่อโยงข้อมูลระหว่างกันได้

คีย์ผสม (Composite Key) คือ การนำฟิลด์ตั้งแต่ 2 ฟิลด์ขึ้นไปมารวมกัน เพื่อให้มีคุณสมบัติเป็น Primary Keyเนื่องจากหากใช้ฟิลด์ใดฟิลด์หนึ่งเป็น PK จะส่งผลให้ข้อมูลในแต่ละเรคอร์ดซ้ำซ้อนได้

คีย์คู่แข่ง (Candidates key) คือ ในแต่ละ Relation อาจมี Attribute ที่ทำหน้าที่เป็นคีน์หลักมากกว่าหนึ่ง Attribute โดยเรียก Attribute เหล่านี้ว่า คีย์คู่แข่ง (Candidates key)

2. คุณสมบัติในการจัดเก็บข้อมูลของรีเลชั่นมีอะไรบ้าง

ตอบ       1) ข้อมูลในแต่ละแถวไม่ซ้ำกัน

                2) การเรียงลำดับของข้อมูลในแต่ละแถวไม่เป็นสาระสำคัญ

            3) การเรียงลำดับของ Attribute จะเรียงลำดับก่อนหลังอย่างไรก็ได้

            4) ค่าของข้อมูลในแต่ละ Attribute ของ Tuple หนึ่งๆ จะบรรจุข้อมูลได้เพียงค่าเดียว (Single Value )

            5) ค่าของข้อมูลในแต่ละ Attribute จะบรรจุค่าของข้อมูลประเภทเดียวกัน

3. รีเลชั่นประกอบด้วยคีย์ประเภทต่างๆ อะไรบ้าง จงอธิบายพร้อยยกตัวอย่างประกอบประเภทคีย์ดังกล่าว

ตอบ       1) คีย์หลัก (Primary Key ) เป็น Attribute ที่มีคุณสมบัติของข้อมูลที่มีค่าเป็นเอกลักษณ์หรือไม่มีค่าซ้ำกัน โดยคุณสมบัตินั้นจะสามารถระบุว่าข้อมูลนั้นเป็นของ Tuple ใด ตัวอย่างคีย์หลัก (Primary Key ) รหัสนักศึกษา รหัสสินค้า

      2) คีย์ผสม (Composite Key )  การนำฟิลด์ตั้งแต่ 2 ฟิลด์ขึ้นไปมารวมกัน  เพื่อให้มีคุณสมบัติเป็น Primary Key  เนื่องจากหากใช้ฟิลด์ใดฟิลด์หนึ่งเป็น PK จะส่งผลให้ข้อมูลในแต่ละเรคอร์ดซ้ำซ้อนได้  ตัวอย่างคีย์ผสม ( Composite Key) รีเลชั่นใบส่งของ (Invoice) มีคีย์ คือ แอททริบิวต์เลขที่ใบส่งของ (InvNo) และแอททริบิวต์รหัสสินค้า (ProdNo) เพราะใบส่งของแต่ละใบจะมีรายการสินค้าบรรจุในใบส่งของได้มากกว่า 1 รายการ  ดังนั้นถ้าใช้แอททริบิวต์เลขที่ใบส่งของเพียงตัวเดียวจะไม่สามารถแยกความแตกต่างแต่ละ Tuple ได้


                3) คีย์คู่แข่ง ( Candidates Key ) ในแต่ละ Relation อาจมี Attribute ที่ทำหน้าที่เป็นคีย์หลักได้มากกว่าหนึ่ง Attribute  โดยเรียก Attribute  เหล่านี้ว่า คีย์คู่แข่ง ( Candidates Key ) ตัวอย่าง คีย์คู่แข่ง( Candidates Key ) นักศึกษาแต่ละคน มีรหัสนักศึกษา รหัสประจำตัวประชาชน 

                โดยเราจะเรียก Candidate Key ที่ถูกเลือกมาใช้เป็นคีย์หลักในตารางว่า Primary Key และเรียก Candidate Key ที่ไม่ถูกเลือกเป็นคีย์หลักว่า คีย์สำรอง ( Alternate Key )

              4) คีย์นอก ( Foreign Key ) คือ คีย์ซึ่งประกอบด้วยแอทริบิวต์หรือกลุ่มของแอทริบิวต์ในรีเลชั่นหนึ่งซึ่งมีคุณสมบัติเป็นคีย์หลัก และไปปรากฏอีกรีเลชั่นหนึ่ง เพื่อประโยชน์ในการเชื่อมโยงข้อมูลซึ่งกันและกัน         ตัวอย่างคีย์นอก ( Foreign Key ) ถ้าเรามีตาราง สองตารางของลูกค้า อันหนึ่งแสดงข้อมูลของลูกค้า อีกอันแสดงสิ่งที่ลูกค้าสั่งซื้อ   สิ่งที่จะโยงถึงกันก็คือ สินค้าที่ลูกค้าสั่งนั้นจะต้องเกี่ยวโยงกับข้อมูลของลูกค้าที่ปรากฏแล้วในตาราง แบบนี้เราสามารถใช้ foreign key ในข้อมูลของสิ่งของที่ลูกค้าสั่ง แล้วโยงถึง primary key คือข้อมูลของลูกค้า  เช่น primary key จะเป็น ชื่อ นามสกุล วัน เดือน ปี หรือเลขหมายที่ลูกค้าสั่งของ แล้ว foreign key เป็น SID (security identifier) ของลูกค้า

4. Null หมายถึงอะไรใน Relational Database

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

5. เหตุใดจึงต้องมีการนำ Integrity rule  มาใช้ในฐานข้อมูล

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

6. ความสัมพันธ์ระหว่างรีเลชั่นมีกี่ประเภท อะไรบ้าง จงยกตัวอย่างประกอบ

ตอบ      

1.ความสัมพันธ์แบบหนึ่งต่อหนึ่ง (One to One Relationship)

-เป็นความสัมพันธ์ที่เข้าใจง่ายที่สุด

-เป็นความสัมพันธ์ของข้อมูลใน 1 เรคอร์ดในตารางหนึ่งมีความสัมพันธ์กับข้อมูลมากกว่าหนึ่งข้อมูลกับอีกเรคอร์ดในอีกตารางหนึ่งเท่านั้นในลักษณะที่เป็นหนึ่งต่อหนึ่ง

รีเลชั่นประกอบด้วยคีย์ประเภทต่าง ๆ อะไรบ้าง

1. คีย์หลัก (Primary key) คีย์หลัก คือ Key หลักที่ใช้ในการอ้างถึง Entity ในฐานข้อมูล การเลือกคีย์หลักสามารถเลือกได้จากRecord ใดๆ ก็ได้ที่ไม่มีโอกาสซ้ำซ้อนกันบนฐานข้อมูลนั้น ... .
2. คีย์รอง (Secondary Key) ... .
3. คีย์นอก (Foreign key) ... .
4. ซุปเปอร์คีย์ (Superkey).
5. คีย์แข่งขัน (Candidate key).

คีย์ชนิดใดที่ใช้ประโยชน์ในการเชื่อมโยงระหว่างรีเลชัน

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

คีย์ (Key) มีกี่ประเภท อะไรบ้าง

2.3 คีย์.
1. ซูเปอร์คีย์.
2. คีย์คู่แข่ง.
3. คีย์หลัก.
4. คีย์นอก.
ภาพที่ 2.2 แสดงความสัมพันธ์ระหว่างคีย์หลักและคีย์นอก.

คีย์ผสม หมายถึงอะไร

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