1. โครงสร้างข้อมูลเชิงสัมพันธ์ประกอบด้วยอะไรบ้าง จงอธิบาย
ตอบ ระบบฐานข้อมูลเชิงสัมพันธ์จะมีส่วนประกอบต่าง ๆ เพื่อใช้ในการทำงานดังนี้
1. Field จะเก็บรายละเอียดต่าง ๆ ของข้อมูลที่ใช้งาน เช่น ฟิลด์ Name เป็นข้อมูลประเภท Text ในกำหนดประเภทข้องข้อมูลต้องคำนึงถึงว่าจะใช้ในการคำนวณด้วยหรือไม่
2. Record จะประกอบไปด้วยหลาย ๆ ฟิลด์จะมีข้อมูลหลากหลายอยู่ในฟิลด์ เช่น ชื่อ ที่อยู่ เบอร์โทรศัพท์ อาชีพ เงินเดือน
3. Table จะเป็นการรวมหลาย ๆ เรคคอร์ด ไว้ในฐานข้อมูลเชิงสัมพันธ์ จะเก็บตารางที่มีความสัมพันธ์กันไว้หลาย ๆ ตาราง
ตารางจะต้องมีชื่อไม่ซ้ำกัน
แต่ละฟิลด์จะบรรจุประเภทข้อมูลเพียงชนิดเดียวเท่านั้น
ข้อมูลในแต่ละเรคอร์ดจะต้องไม่ซ้ำกัน
4. คีย์หลัก(Primary key) คีหลัก หรือเรียกว่า PK หมายถึง ฟิลด์ที่มีข้อมูลไม่ซ้ำกัน เพราะเป็นเรื่องสำคัญมากในระบบฐานข้อมูล เช่น ฟิลด์รหัสลูกค้าจะต้องไม่ซ้ำกันซึ่งจะเป็นข้อมูลประเภท Number ใน 1 ตาราง ควรจะมีคีย์หลักได้เพียง 1 คีย์เท่านั้น และในคีย์หลักต้องไม่เป็นค่าว่าง
5. คีย์นอก(Foreign Key) คีนอก หรือเรียกว่า FK หมายถึง ฟิลด์หรือคอมบิเนชั่นของตารางหนึ่ง ซึ่งมีความสัมพันธ์กับฟิลด์ในตารางอื่น(ที่เป็นคีย์หลัก PK ) สามารถเชื่อมโยงข้อมูลระหว่างกันได้
2. คุณสมบัติในการจัดเก็บข้อมูลของรีเลชั่นมีอะไรบ้าง
ตอบ ในแต่ละ Relation ประกอบด้วยข้อมูลของ Attribyte ต่าง ๆ ที่จัดเก็บในรูปตาราง 2 มิติ คือ Row, Column
1. ข้อมูลในแต่ละแถวจะไม่ซ้ำกัน
2. การจัดเรียงลำดับของข้อมูลในแต่ละแถวไม่เป็นสาระสำคัญ
3. การจัดเรียงลำดับของ Attribute จะเรียงลำดับก่อนหลังอย่างไรก็ได้
4. ค่าของข้อมูลในแต่ละ Attribute ของ Tuple หนึ่ง ๆ จะบรรจุได้เพียงค่าเดียว
5. ค่าของข้อมูลในแต่ละ Attribute จะบรรจุค่าของข้อมูลประเภทเดียวกัน
3. รีเลชั่นประกอบด้วยคีย์ประเภทต่าง ๆ อะไรบ้าง จงอธิบายพร้อมยกตัวอย่างประกอบประเภทคีย์ดังกล่าว
ตอบ 1. คีย์หลัก (Primary Key)
เป็น Attribute ที่มีคุณสมบัติของข้อมูลที่มีค่าเป็นเอกลักษณ์ หรือไม่มีค่าซ้ำกัน โดยคุณสมบัตินั้นจะสามารถระบุว่าข้อมูลนั้นเป็นของ Tuple ใด
2. คีย์ผสม (Composite Key)
· การนำฟิลด์ตั้งแต่ 2 ฟิลด์ขึ้นไปมารวมกัน
· เพื่อให้คุณสมบัติเป็น Primary Key
· เนื่องจากใช้ฟิลด์ใดฟิลด์หนึ่งเป็น PK จะส่งผลให้ข้อมูลในแต่ละเสคอร์ดซ้ำซ้อนได้
3. คีย์คู่แข่ง (Candidates Key)
ในแต่ละ Relation อาจมี Attribute ที่ทำหน้าที่เป็นคีย์หลักได้มากกว่าหนึ่ง Attribute โดยเรียก Attribute เหล่านี้ว่า คีย์คู่แข่งขัน (Candidates Key) เช่น
· นักศึกษาแต่ละคนมี
-- รหัสประจำตัวนักศึกษา
-- รหัสประจำตัวบัตรประชาชน
· โดยปกติแล้วจะเลือก Candidates Key ที่สั้นที่สุดเป็น Primary Key
โดยเราจะเรียก Candidates Key ที่ถูกเลือกมาใช้เป็นคีย์หลักในตารางว่า “Primary Key” และเรียก Candidates Key ที่ไม่ถูกเลือกเป็นคีย์หลักว่า “คีย์สำรอง Alternate Key”
4. คีย์นอก (Foreign Key)
· เป็นคีย์ที่ใช้ในการเชื่อมโยงข้อมูลระหว่างตารางเข้าด้วยกัน
· เช่น ฐานข้อมูลของธนาคารแห่งหนึ่งประกอบด้วย 2 ตาราง คือ
- ตารางบัญชีที่ลูกค้าเปิด (เลขประจำตัวลูกค้า, ชื่อ-นามสกุล และประเภทของบัญชี)
- ตารางลูกค้า (เลขประจำตัวลูกค้า, ชื่อ-นามสกุลและที่อยู่)
หากต้องการทราบว่าลูกค้ารายหนึ่งเปิดบัญชีใดบ้าง ก็เชื่อมโยงข้อมูล 2 ตารางเข้าด้วยกัน โดยใช้เลขประจำตัวลูกค้าเป็น Foreign Key
4. Null หมายถึงอะไรใน Relational Database
ตอบ Null ใน Relational Database หมายถึง ไม่ทราบค่าข้อมูลที่รู้แน่ชัด เราสามารถกำหนดให้ค่าของคอลัมน์ใด ๆ เป็น Null ได้ (ถ้าเป็นไปได้ควรใส่ให้ครบจะดีที่สุด) ยกเว้นคอลัมน์ที่เป็น Primary Key เพราะจะไม่สามารถนำ Primary Key มาใช้เข้าถึงข้อมูลในแต่ละแถวได้
5. เหตุใดจึงต้องมีการนำ Integrity rule มาใช้ในฐานข้อมูล
ตอบ เนื่องจากฐานข้อมูลไม่สามารถรู้ได้เองว่าข้อมูลที่เก็บอยู่นั้นสอดคล้องกับความเป็นจริงหรือไม่ เราจึงต้องบอกให้ฐานข้อมูลรู้ด้วยสิ่งที่เรียกว่ากฎการควบคุมความถูกต้องของข้อมูล หรือ Data Integrity
6. ความสัมพันธ์ระหว่างรีเลชั่นมีกี่ประเภท อะไรบ้าง จงยกตัวอย่างประกอบ (ห้ามยกตัวอย่างซ้ำกับสไลด์ประกอบการเรียน)
ตอบ ความสัมพันธ์ระหว่างรีเลชั่นมี 3 ประเภท คือ
1. ความสัมพันธ์แบบหนึ่งต่อหนึ่ง One to One Relationship (1-1)
· เป็นความสัมพันธ์ที่เข้าใจง่ายที่สุด
· เป็นความสัมพันธ์ของข้อมูลใน 1 เรคอร์ดในตารางหนึ่งมีความสัมพันธ์กับข้อมูลอย่างมากหนึ่งข้อมูลกับอีกเรคอร์ดในอีกตารางหนึ่งเท่านั้นในลักษณะที่เป็นหนึ่งต่อหนึ่ง เช่น ความสัมพันธ์ระหว่าง Entity ลูกค้า กับ Passport
o ลูกค้า 1 คน สามารถมี Passport ได้ 1 ฉบับเท่านั้น
o เขียนแทนด้วย 1:1
2. ความสัมพันธ์แบบหนึ่งต่อกลุ่ม One to Many Relationship (1-M)
· เป็นความสัมพันธ์ที่พบบ่อยที่สุดในฐานข้อมูล
· เป็นความสัมพันธ์ของข้อมูลใน 1 เรคอร์ดในตารางหนึ่งมีความสัมพันธ์กับข้อมูลมากกว่าหนึ่งข้อมูลกับอีกเรคอร์ดในอีกตารางหนึ่งเท่านั้นในลักษษณะที่เป็นหนึ่งต่อกลุ่ม เช่น ความสัมพันธ์ระหว่าง Entity ลูกค้า กับ ใบเสร็จ
o ลูกค้า 1 คน อาจมีใบเสร็จได้หลายใบ
o เขียนแทนด้วย 1: M
3. ความสัมพันธ์แบบกลุ่มต่อกลุ่ม Many to Many Relationship (M-M)
· เป็นความสัมพันธ์ที่พบไม่บ่อยนัก
· เป็นความสัมพันธ์ของข้อมูลในเรคอร์ดใด ๆ ของตารางหนึ่ง มีค่าตรงกับข้อมูลของหลาย ๆ เรคอร์ดในตารางอื่น ๆ เช่น ความสัมพันธ์ระหว่าง Entity อาจารย์ กับ ชั้นเรียน
o อาจารย์ 1 คน สอนได้หลายชั้นเรียน
o และ 1 ชั้นเรียนถูกสอนโดยอาจารย์หลายคน
o เขียนแทนด้วย M:N