การบ้านบทที่ 4 ประจำวันที่ 24 พฤศจิกายน 2553
1. โครงสร้างข้อมูลเชิงสัมพันธ์ประกอบด้วยอะไรบ้าง
ตอบ : ฐานข้อมูลเชิงสัมพันธ์ ฐานข้อมูลแบบนี้แสดง การจัดเก็บข้อมูลในรูปแบบของตาราง ที่มีลักษณะเป็นสองมิติ คือ แถว (Row) และคอลัมน์ (Column) ซึ่งในการเชื่อมโยงกันระหว่างข้อมูลในตาราง 2 ตาราง หรือมากกว่า จะเชื่อมโยงโดยใช้แอททริบิวต์(Attribute)ที่มีอยู่ในตารางที่ต้องการเชื่อมโยงข้อมูลกัน โดยที่แอททริบิวต์(Attribute)จะแสดงคุณสมบัติของรีเลชั่นต่าง ๆ ซึ่งรีเลชั่นต่าง ๆ ได้ผ่านกระบวนการทำรีเลชั่น(Relation)ให้เป็นบรรทัดฐาน (Normalized) ในระหว่าง การออกแบบเพื่อละความซ้ำซ้อน เพื่อให้การจัดการฐานข้อมูลเป็นไปอย่างมีประสิทธิภาพ ประกอบด้วย
1. ตารางเรคคอร์ดและฟิลด์ ข้อมูลต่างๆ ในฐานข้อมูลจะถูกจัดเก็บและนำเสนอในรูปแบบของตาราง โดยในตารางหนึ่งๆ จะจัดเก็บรวบรวมข้อมูลประเภทเดียวกันเข้าไว้ด้วยกัน ในแต่ละแถวและคอลัมน์ ซึ่งในศัพท์ของฐานข้อมูลจะเรียกฟิลด์ ในแต่ละแถวของตารางก็ คือ ข้อมูลหนึ่งชุดหรือข้อมูล 1 เรคคอร์ดในแต่ละแถวหรือเรคคอร์ดจะประกอบด้วยฟิลด์หรือคอลัมน์ที่เป็นส่วนย่อยที่แสดงแอททริบิวต์ของข้อมูลในแต่ละเรคคอร์ด 2. ดรรชนี ถ้าตารางข้อมูลมีนักศึกษาเก็บอยู่จำนวนมากการที่จะค้นหาข้อมูลที่ต้องการของนักศึกษาคนใดคนหนึ่งจะต้องเสียเวลาอย่างมาก เพราะจะต้องทำการค้นทีละเรคคอร์ด ในตารางไปจนกว่าจะครบ ข้อมูลของนักศึกษาที่ต้องการ เพื่อช่วยให้การค้นหาข้อมูลที่ต้องการทำได้รวดเร็วขึ้นฐานข้อมูลทั่วไปจึงมีโครงสร้างอีกชนิดหนึ่ง เรียกว่า ดรรชนีเพื่อสนับสนุนการค้นหาให้รวดเร็วขึ้น โดยปกติแล้วในแต่ละตารางจะมีฟิลด์หรือหลายฟิลด์ประกอบกันที่จะสามารถบอกถึงความแตกต่างของข้อมูลในแต่ละแถวได้ ฟิลด์หรือคอลัมน์ดังกล่าวเรียกว่าเป็นดรรชนีหลัก ของตาราง
3. ความสัมพันธ์ของตารางฐาน ข้อมูลแบบตารางสัมพันธ์ส่วนใหญ่แล้ว จะประกอบไปด้วยตารางข้อมูลต่างๆ หลายตาราง แต่ละตารางจะมีความสัมพันธ์กันในลักษณะใดลักษณะหนึ่ง
2. คุณสมบัติในการจัดเก็บข้อมูลของรีเลชั่น (Relacion) มีอะไรบ้าง
ตอบ : ในแต่ละ Relation ประกอบด้วยข้อมูลของ Attribute ต่างๆที่จัดเก็บในรูปตาราง 2 มิติ คือ Row, Column1. ข้อมูลในแต่ละแถวจะไม่ซ้ำกัน
2. การจัดเรียงลำดับของข้อมูลในแต่ละแถวไม่เป็นสาระสำคัญ ซึ่งไม่ต้องมีการเรียงลำดับของข้อมูล เพราะ การเรียกข้อมูลขึ้นอยู่กับความต้องการของผู้ใช้งาน
3. การจัดเรียงลำดับของ Attribute จะเรียงลำดับก่อนหลังอย่างไรก็ได้ เพื่อความง่ายต่อการดึงข้อมูล โดยส่วนใหญ่นิยมใช้คีย์หลักก่อน
4. ค่าของข้อมูลในแต่ละ Attribute ของ Tuple หนึ่งๆ จะบรรจุได้เพียงค่าเดียว (Single Value) ข้อมูลไม่สามารถบรรจุข้อมูลได้มากว่าหนึ่ง และซ้ำกันไม่ได้
5. ค่าของข้อมูลในแต่ละ Attribute จะบรรจุค่าของข้อมูลประเภทเดียวกัน เช่น ถ้าข้อมูลเป็นตัวเลขก็ต้องเป็นตัวเลขทั้งหมด หรือ ถ้าเป็นตัวอักษรก็ต้องเป็นตัวแกษรทั้งหมดใน Attribute นั้น
3. รีเลชั่น (Relation) ประกอบด้วยคีย์ประเภทต่างๆ อะไรบ้าง จงอธิบายพร้อมยกตัวอย่างประกอบประเภทคีย์ดังกล่าว
ตอบ : - คีย์หลัก (Primary Key) เป็น Attribute ที่มีคุณสมบัติของข้อมูลที่มีค่าเป็นเอกลักษณ์ หรือ ไม่มีค่าที่ซ้ำกัน โดยคุณสมบัตินั้นสามารถระบุว่าข้อมูลนั้นเป็น Tuple ใด
ตัวอย่างเช่น รหัสของพนักงาน , รหัสประจำตัวบัตรประชาชน, รหัสหนังสือ ฯลฯ
- คีย์ผสม (Composite Key) เป็นการนำฟิลด์ตั้งแต่ 2 ฟิลด์ขึ้นไปมารวมกันเพื่อให้มีคุณสมบัติเป็น Primary Key เนื่องจากหากใช้ฟิลด์ใดฟิลด์หนึ่งเป็น PK จะส่งผลให้ข้อมูลในแต่ละเรคคอร์ดซ้ำซ้อนกันได้ต้องมีสองตารางควบคู่กันไป เพื่อให้สามารถแยกความแตกต่างระหว่าง 2 Tuple ได้
ตัวอย่างเช่น รหัสของหน่วยงาน กับ ชื่อของพนักงาน ที่ส่งผลให้เป็นคีย์หลักของรหัสพนักงานทั้งหมดในบริษัท
- คีย์คู่แข่ง (Candidates Key) ในแต่ละ Relation อาจมี Attribute ที่ทำหน้าที่เป็นคีย์หลักได้มากกว่าหนึ่ง Attribute โดยเรียก Attribute เหล่านี้ว่าคีย์คู่แข่ง (Candidates Key)
ตัวอย่างเช่น รหัสจังหวัดเป็นคีย์หลัก ส่วนชื่อจังหวัดก็ไม่ซ้ำเช่นกัน แต่ไม่ได้เป็นคีย์หลักจึงเป็นคีย์คู่แข่งแทน โดยปกติแล้วแต่จะเลือก Candidates Key ที่สั้นที่สุดเป็น Primary Key และคีย์ที่ไม่ถูกเลือกก็เป็นคีย์สำรอง (Alternate Key)
- คีย์นอก (Foreign Key) เป็นคีย์ซึ่งประกอบด้วย Attribute หรือกลุ่มของ Attribute ใน Relation หนึ่งซึ่งมีคุณสมบัติเป็นคีย์หลัก และไม่ปรากฏอีก Relation หนึ่ง เพื่อประโยชน์ในการเชื่อมโยงข้อมูลซึ่งกันและกัน
ตัวอย่างเช่น ฐานข้อมูลของบริษัทประกันภัยแห่งหนึ่ง จะประกอบด้วย 2 ตาราง คือ
- ตารางสมัครประกันภัยที่ลูกค้าเปิด (เลขกรมธรรม์ประกันของลูกค้า, ชื่อ – นามสกุล, ประเภทของประกันภัยที่สมัคร)
- ตารางลูกค้า (เลขกรมธรรม์ประกันของลูกค้า, ชื่อ – นามสกุล, ที่อยู่)
หากต้องการทราบว่า ประเภทของประกันภัยของลูกค้ารายหนึ่งว่าเลือกประเภทใด ก็เชื่อมโยงข้อมูล 2ตารางเข้าด้วยกัน โดยใช้ เลขกรมธรรม์ประกันของลูกค้า
4. Null หมายถึงอะไรใน Relation Database
ตอบ : Null เป็นศัพท์เฉพาะใน Relation Database ยังไม่ทราบค่าข้อมูลที่รู้แน่ชัด เราสามารถกำหนดให้ค่าของคอลัมน์ใด ๆ เป็น Null ได้ (ถ้าเป็นไปได้ควรใส่ให้ครบจะดีที่สุด) ยกเว้นคอลัมน์ที่เป็น Primary Key เพราะไม่สามารถนำ Primary Key มาใช้เข้าถึงข้อมูลในแต่ละแถวได้
5. เหตุใดจึงต้องมีการนำ Integrity rule มาใช้ในฐานข้อมูล
ตอบ : โครงสร้างฐานข้อมูลเชิงสัมพันธ์ประกอบด้วยหลายๆ Relation จำเป็นต้องมีการควบคุมข้อมูลให้มีความถูกต้อง เป็นจริง และสามารถนำมาใช้เชื่อมโยงกันได้
6. ความสัมพันธ์ระหว่างรีเลชั่นมีกี่ประเภท อะไรบ้าง จงยกตัวอย่างประกอบ
ตอบ : ความสัมพันธ์ระหว่าง รีเลชั่น แบ่งออกเป็น 3 ประเภทคือ
1. ความสัมพันธ์แบบหนึ่งต่อหนึ่ง เช่น นักศึกษาหนึ่งคนสามารถมีรหัสนักศึกษาได้เพียงรหัสเดียวเท่านั้น ในระบบฝ่ายทะเบียนของมหาวิทยาลัย แต่ในขณะเดียวกันในระบบก็สามารถมีรหัสนักศึกษาได้แค่หนึ่งรหัสต่อนักศึกษาหนึ่งคน
2. ความสัมพันธ์แบบหนึ่งต่อกลุ่ม เช่น ในหนึ่งบริษัทสามารถมีพนักงานได้หลายคน แต่ในขณะเดียวกันพนักงานแต่ละคนจะต้องมีบริษัทที่ทำงานได้เพียงบริษัทเดียวเท่านั้น
3. ความสัมพันธ์แบบกลุ่มต่อกลุ่ม เช่น ในร้านสะดวกซื้อสามารถมีสินค้าที่ขายได้หลากหลายชนิด แต่ในขณะเดียวกันสินค้าหลากหลายชนิดนั้นก็สามารถวางขายในร้านสะดวกซื้อได้หลายร้านเช่นกัน
1. ความสัมพันธ์แบบหนึ่งต่อหนึ่ง เช่น นักศึกษาหนึ่งคนสามารถมีรหัสนักศึกษาได้เพียงรหัสเดียวเท่านั้น ในระบบฝ่ายทะเบียนของมหาวิทยาลัย แต่ในขณะเดียวกันในระบบก็สามารถมีรหัสนักศึกษาได้แค่หนึ่งรหัสต่อนักศึกษาหนึ่งคน
2. ความสัมพันธ์แบบหนึ่งต่อกลุ่ม เช่น ในหนึ่งบริษัทสามารถมีพนักงานได้หลายคน แต่ในขณะเดียวกันพนักงานแต่ละคนจะต้องมีบริษัทที่ทำงานได้เพียงบริษัทเดียวเท่านั้น
3. ความสัมพันธ์แบบกลุ่มต่อกลุ่ม เช่น ในร้านสะดวกซื้อสามารถมีสินค้าที่ขายได้หลากหลายชนิด แต่ในขณะเดียวกันสินค้าหลากหลายชนิดนั้นก็สามารถวางขายในร้านสะดวกซื้อได้หลายร้านเช่นกัน