วิชา ฐานข้อมูลเบื้องต้น
การบ้านบทที่ 4 ประจำวันที่ 24 พฤศจิกายน 2553
การบ้านบทที่ 4 ประจำวันที่ 24 พฤศจิกายน 2553
1. โครงสร้างข้อมูลเชิงสัมพันธ์ประกอบด้วยอะไรบ้าง จงอธิบาย
ตอบ ผู้ใช้ฐานข้อมูลเชิงสัมพันธ์นี้ จะรับรู้ในลักษณะที่ว่าข้อมูลในฐานข้อมูล จะอยู่ในรูปตาราง (Tables) ต่างๆ
Relation - ตาราง 2 มิติ ประกอบด้วย Row และ Column
Attribute - คุณสมบัติหรือรายละเอียดของ Relation
Domain - เป็นการกำหนดขอบเขต ค่าข้อมูล และชนิดของข้อมูล เช่น Salary - มีค่าไม่เกิน 7
digits ,เพศ - 1 = ชาย/2 = หญิง
Tople - คือแถวแต่ละแถวใน Relation
Degree - คือจำนวน Attribute ที่บรรจุอยู่ใน Relation
Cardinality - คือจำนวน Tuple หนึ่งที่บรรจุอยู่ใน Relation หนึ่งที่ไปมีความสัมพันธ์ใน Tuple
ของอีก Relation หนึ่ง
2. คุณสมบัติในการจัดเก็บข้อมูลของรีเลชั่นมีอะไรบ้าง
ตอบ 1. ต้องไม่มี Tuple หรือแถวใดซ้ำกันกับแถวอื่น (There are no duplicate tuples) เนื่องจากรีเลชั่นเกิดจากการเอา Domain มาคูณกัน นอกจากนั้นข้อมูลในคีย์หลัก (Primary Key) จะต้องไม่ซ้ำ เช่น รหัสลูกค้าชื่อสมชาย ถึงแม้จะมี 3 คน แต่จะได้รหัสไม่ซ้ำกันเพราะเป็นคนละคนกัน
2. แต่ละแถวไม่จำเป็นต้องเรียงลำดับจากบนลงล่าง (Tuples are unordered, top to bottom) กล่าวคือ ไม่มีความแตกต่างของการเรียงแถวหรือไม่เรียงแถว
2. แต่ละแถวไม่จำเป็นต้องเรียงลำดับจากบนลงล่าง (Tuples are unordered, top to bottom) กล่าวคือ ไม่มีความแตกต่างของการเรียงแถวหรือไม่เรียงแถว
3. รีเลชั่นประกอบด้วยคีย์ประเภทต่าง ๆ อะไรบ้าง จงอธิบายพร้อมยกตัวอย่างประกอบประเภทคีย์ดังกล่าว
ตอบ 1. คีย์หลัก (Primary Key) เป็น Attribute ที่มีคุณสมบัติของข้อมูลที่มีค่าเป็นเอกลักษณ์ หรือไม่มีค่าซ้ำกัน โดยคุณสมบัตินั้นจะสามารถระบุว่าข้อมูลนั้นเป็นของ Tuple ใด เช่น รหัสนักศึกษา หรือเลขที่บัตรประชาชน ซึ่งจะต้องเลือกอย่างใดอย่างหนึ่งเป็นคีย์หลักขึ้นมา
2. คีย์ผสม (Composite Key) เป็นการนำฟิลด์ตั้งแต่ 2 ฟิลด์ขึ้นไปมารวมกัน เพื่อให้มีคุณสมบัติเป็น Primary Key เนื่องจากหากใช้ฟิลด์ใดฟิลด์หนึ่งเป็น PK จะส่งผลให้ข้อมูลในแต่ล่ะเรคอร์ดซ้ำซ้อนได้ เช่น รีเลชั่นใบส่งของ (Invoice) มีคีย์ คือ แอทริบิวต์เลขที่ใบส่งของ และแอทริบิวต์รหัสสินค้า เพราะใบส่งของแต่ละใบจะมีรายการสินค้าบรรจุในใบส่งของได้มากกว่า 1 รายการ ดังนั้นถ้าใช้แอทริบิวต์เลขที่ใบส่งของเพียงตัวเดียวจะไม่สามารถแยกความแตกต่างแต่ละ Tuple ได้
3. คีย์คู่แข่ง (Candidates Key) ในแต่ละ Relation อาจมี Attribute ที่ทำหน้าที่เป็นคีย์หลักได้มากกว่าหนึ่ง Attribute โดยเรียก Attribute เหล่านี้ว่า คีย์คู่แข่ง (Candidates Key) เช่น นักศึกษาแต่ละคนมี รหัสประจำตัวนักศึกษา และ รหัสประจำตัวบัตรประชาชน โดยปกติแล้วจะเลือก Candidates Key ที่สั้นที่สุดเป็น Primary Key
4. คีย์นอก (Foreign Key) คือคีย์ซึ่งประกอบด้วยแอทริบิวต์หรือกลุ่มของแอทริบิวต์ในรีเลชันหนึ่งซึ่งมีคุณสมบัติเป็นคีย์หลัก และไปปรากฎอีกรีเลชันหนึ่ง เพื่อประโยชน์ในการเชื่อมโยงข้อมูลซึ่งกันและกัน เช่น ฐานข้อมูลของธนาคารแห่งหนึ่งประกอบด้วย 2 ตาราง คือ 1. ตารางบัญชีที่ลูกค้าเปิด (เลขประจำตัวลูกค้า, ชื่อ - นามสกุลและประเภทของบัญชี) 2. ตารางลูกค้า (เลขประจำตัวลูกค้า, ชื่อ - นามสกุล และที่อยู่) หากต้องการทราบว่าลูกค้ารายหนึ่งเปิดบัญชีใดบ้าง ก็เชื่อมโยงข้อมูล 2 ตารางเข้าด้วยกัน โดยใช้เลขประจำตัวลูกค้าเป็น Foreign Key
4. Null หมายถึงอะไรใน Relational Database
ตอบ Null เป็นศัพท์เฉพาะใน Relational Database หมายถึง ไม่ทราบค่าข้อมูลที่รู้แน่ชัด เราสามารถกำหนดให้ค่าคอลัมน์ใด ๆ เป็น Null ได้ (ถ้าเป็นไปได้ควรใส่ให้ครบจะดีที่สุด) ยกเว้นคอลัมน์ที่เป็น Primary Key เพราะจะไม่สามารถนำ Primary Key มาใช้เข้าถึงข้อมูลในแต่ละแถวได้
5. เหตุใดจึงต้องมีการนำ Integrity rule มาใช้ในฐานข้อมูล
ตอบโครงสร้างข้อมูลเชิงสัมพันธ์ประกอบด้วยหลาย ๆ รีเลชัน จำเป็นต้องมีการควบคุมข้อมูลให้มีความถูกต้อง เป็นจริง และสามารถนำมาใช้เชื่อมโยงกันได้
6 .ความสัมพันธ์ระหว่างรีเลชั่นมีกี่ประเภท อะไรบ้าง จงยกตัวอย่างประกอบ
ตอบความสัมพันธ์แบบหนึ่งต่อหนึ่ง
(One to one)
•เป็นความสัมพันธ์ที่เข้าใจง่ายที่สุด
•เป็นความสัมพันธ์ของข้อมูลใน 1 เรคอร์ดในตารางหนึ่งมีความสัมพันธ์กับข้อมูลอย่างมากหนึ่งข้อมูลกับอีกเรคอร์ดในอีกตารางหนึ่งเท่านั้นในลักษณะที่เป็นหนึ่งต่อหนึ่ง เช่น นักศึกษา 1 คนเท่านั้นที่จะเป็นนายกองค์การนักศึกษา
ความสัมพันธ์แบบหนึ่งต่อกลุ่มต่อกลุ่ม
(One to Many Relationship)
•เป็นความสัมพันธ์ที่พบบ่อยที่สุดในฐานข้อมูล
•เป็นความสัมพันธ์ของข้อมูลใน 1 เรคอร์ดในตารางหนึ่งมีความสัมพันธ์กับข้อมูลมากกว่าหนึ่งข้อมูลกับอีกเรคอร์ดในอีกตารางหนึ่งเท่านั้นในลักษณะที่เป็นหนึ่งต่อหนึ่ง เช่น นักศึกษาแต่ละคนสามารถลงทะเบียนเรียนได้มากกว่า 1 วิชา
ความสัมพันธ์แบบกลุ่มต่อกลุ่ม
(Many to Many Relationship)
•เป็นความสัมพันธ์ที่พบไม่บ่อยนัก
•เป็นความสัมพันธ์ ของข้อมูลในเรคอร์ดใดๆ ของตารางหนึ่งมีค่าตรงกับข้อมูลของหลายๆ เรคอร์ดในตารางอื่นๆ เช่น รายวิชา 1 รายวิชามีอาจารย์สอนได้มากกว่า 1 คน การสั่งซื้อสินค้าในแต่ละครั้งสามารถสั่งซื้อสินค้าได้มากกว่า 1 ชนิด
(One to one)
•เป็นความสัมพันธ์ที่เข้าใจง่ายที่สุด
•เป็นความสัมพันธ์ของข้อมูลใน 1 เรคอร์ดในตารางหนึ่งมีความสัมพันธ์กับข้อมูลอย่างมากหนึ่งข้อมูลกับอีกเรคอร์ดในอีกตารางหนึ่งเท่านั้นในลักษณะที่เป็นหนึ่งต่อหนึ่ง เช่น นักศึกษา 1 คนเท่านั้นที่จะเป็นนายกองค์การนักศึกษา
ความสัมพันธ์แบบหนึ่งต่อกลุ่มต่อกลุ่ม
(One to Many Relationship)
•เป็นความสัมพันธ์ที่พบบ่อยที่สุดในฐานข้อมูล
•เป็นความสัมพันธ์ของข้อมูลใน 1 เรคอร์ดในตารางหนึ่งมีความสัมพันธ์กับข้อมูลมากกว่าหนึ่งข้อมูลกับอีกเรคอร์ดในอีกตารางหนึ่งเท่านั้นในลักษณะที่เป็นหนึ่งต่อหนึ่ง เช่น นักศึกษาแต่ละคนสามารถลงทะเบียนเรียนได้มากกว่า 1 วิชา
ความสัมพันธ์แบบกลุ่มต่อกลุ่ม
(Many to Many Relationship)
•เป็นความสัมพันธ์ที่พบไม่บ่อยนัก
•เป็นความสัมพันธ์ ของข้อมูลในเรคอร์ดใดๆ ของตารางหนึ่งมีค่าตรงกับข้อมูลของหลายๆ เรคอร์ดในตารางอื่นๆ เช่น รายวิชา 1 รายวิชามีอาจารย์สอนได้มากกว่า 1 คน การสั่งซื้อสินค้าในแต่ละครั้งสามารถสั่งซื้อสินค้าได้มากกว่า 1 ชนิด