วันอาทิตย์ที่ 28 พฤศจิกายน พ.ศ. 2553

วิชา ฐานข้อมูลเบื้องต้น

การบ้านบทที่ 4 ประจำวันที่ 24 พฤศจิกายน พ.ศ.2553
1.โครงสร้างข้อมูลเชิงสัมพันธ์ประกอบด้วยอะไรบ้าง จงอธิบาย
ตอบ   1.เอนทิตี้ (Entity) หมายถึง ชื่อของสิ่งใดสิ่งหนึ่ง ได้แก่ คน สถานที่ สิ่งของ การกระทำ ซึ่งต้องการจัดเก็บข้อมูลไว้ เช่น เอนทิตี้ลูกค้า เอนทิตี้พนักงาน
            2.แอททริบิวต์ (Attribute) หมายถึง รายละเอียดข้อมูลที่แสดงลักษณะและคุณสมบัติของเอนทิตี้หนึ่ง ๆ เช่น  เอนทิตี้นักศึกษา ประกอบด้วยแอทริบิวต์รหัสนักศึกษา ,แอททริบิวต์ชื่อนักศึกษาและแอททริบิวต์ที่อยู่นักศึกษา
2.คุณสมบัติในการจัดเก็บข้อมูลของรีเลชั่นมีอะไรบ้าง
ตอบ ในแต่ละ Relation ประกอบด้วยข้อมูลของ Attribyte ต่างๆที่จัดเก็บในรูปตาราง 2 มิติ คือ Row, Column
1.ข้อมูลในแต่ละแถวจะไม่ซ้ำกัน
2.การจัดเรียงลำดับของข้อมูลในแต่ละแถวไม่เป็นสาระสำคัญ
3.การจัดเรียงลำดับของ Attribute จะเรียงลำดับก่อนหลังอย่างไรก็ได้
4.ค่าของข้อมูลในแต่ละ Attribute ของ Tuple หนึ่งๆ จะบรรจุได้เพียงค่าเดียว
5.ค่าของข้อมูลในแต่ละ Attribute จะบรรจุค่าของข้อมูลประเภทเดียวกัน
3. รีเลชั่นประกอบด้วยคีย์ประเภทต่าง ๆ อะไรบ้างจงอธิบาย พร้อมยกตัวอย่างประกอบประเภทคีย์ดังกล่า
ตอบ
1.คีย์หลัก (Primary key)เป็น Attribute ที่มีคุณสมบัติของข้อมูลที่เป็นค่าเอกลักษณ์หรือมีค่าที่ไม่ซ้ำกัน คุณสมบัติดังกล่าวจะสามารถระบุว่าข้อมูลนั้นเป็นข้อมูลของ Tuple ใด เช่น รหัสพนักงาน เลขที่ 3001 สามารถระบุได้ว่าเป็นของพนักงานชื่อ ดวงพร Attribute ที่มีคุณสมบัติเป็น คีย์หลักอาจประกอบด้วยหลาย Attribute รวมกันเรียกว่า Composite Key (คีย์ผสม)นอกจากนี้ ใน Relation หนึ่งๆ อาจมี Attribute ที่มีคุณสมบัติเป็นคีย์หลักได้มากกว่า หนึ่งAttribute เรียก Attribute เหล่านี้ว่า Candidate Key (คีย์คู่แข่ง)ถ้า Attribute หนึ่งถูกกำหนดให้เป็นคีย์หลัก อีก Attribute หนึ่งที่มีคุณสมบัติเป็นคีย์หลัก แต่ไม่ได้ถูกเลือกให้เป็นคีย์หลักจะเรียกว่า คีย์สำรอง (Alternate Key)
2.คีย์ผสม (Composite Key) การนำฟิลด์ตั้งแต่ 2 ฟิลด์ขึ้นไปมารวมกันเพื่อให้มีคุณสมบัติเป็น Primary Key เนื่องจากหากใช้ฟิลด์ใดฟิลด์หนึ่งเป็น PK จะส่งผลให้ข้อมูลในแต่ละเรคอร์ดซ้ำซ้อนกันได้
3.คีย์คู่แข่ง (Candidate Key) ในแต่ละ relation อาจมี Attribute ที่ทำหน้าที่เป็นคีย์หลักได้มากกว่าหนึ่ง Attribute โดยเรียก Attribute เหล่านี้ว่าคีย์คู่แข่ง (Candidate Key) เช่น นักศึกษาแต่ละคนมี รหัสประจำตัวนักศึกษาและรหัสประจำตัวประชาชนโดยปกติแล้วจะเลือก Candidates Key ที่สั้นที่สุดเป็น Primary Key
4.คีย์นอก (Foreign)
 เป็น Attribute ใน Relation หนึ่งที่ใช้อ้างอิงถึง Attribute เดียวกันนี้ในอีก Relation หนึ่ง โดยที่ Attribute นี้มีคุณสมบัติเป็นคีย์หลักใน Relation ที่ถูกอ้างอิง การมี Attribute นี้ปรากฏอยู่ในRelation ทั้งสองก็เพื่อประโยชน์ ในการเชื่อมโยงข้อมูล
4. Null หมายถึงอะไรใน Relational Database
ตอบ Null คือค่าว่าง เป็นการ"เปรียบเทียบ" ว่า ข้างซ้าย เท่ากับ ข้างขวาหรือไม่ ถ้าเท่ากันให้ค่า true ถ้าไม่เท่าให้ค่า false
Null เป็นการเปรียบเทียบตัวแปรชื่อ UL ว่าเท่ากับ ค่าว่างหรือไม่ ถ้าข้อแม้เป็นจริงหรือตัวแปร UL ไม่มีค่าใดๆเก็บอยู่ให้ค่าเป็น true ถ้าไม่เป็นจริงหรือตัวแปรมีค่าใดๆเก็บอยู่ให้ค่าเป็น false
5. เหตุใดจึงต้องมีการนำ Integrity rule มาใช้ในฐานข้อมู
ตอบ Integrity Rule คือ กฎควบคุมความคงสภาพของข้อมูล ถูกนำไปใช้เพื่อให้ข้อมูลมีความถูกต้อง คล้องจอง หรือมีความสมเหตุสมผลกัน และจะช่วยป้องกันการกระทำใดแถวของข้อมูลในแอนทิตี้แรกๆ ที่ส่งผลกระทบต่อข้อมูล หรือเกิดความไม่ถูกต้อง ความไม่สอดคล้องขึ้นกับข้อมูล
6. ความสัมพันธ์ระหว่างรีเลชั่นมีกี่ประเภท อะไรบ้าง จงยกตัวอย่างประกอ
ตอบ  ความสัมพันธ์ระหว่างรีเลชั่นมี 3 ประเภท
-ความสัมพันธ์แบบ หนึ่ง - ต่อ - หนึ่ง (one-to-one) หมายถึง มี 1 ข้อมูลในความสัมพันธ์ ตัวอย่างเช่น ถ้าเราแยกที่อยู่ออกจากตารางข้อมูล Customers จะต้องมีความสัมพันธ์ หนึ่ง - ต่อ - หนึ่ง ระหว่างชุดข้อมูลต้องมี (foreign key จาก Addresses ไปยัง Customers)
-ความสัมพันธ์แบบ หนึ่ง - ต่อ - หลาย (one-to-many) หมายถึง 1 แถว ในตารางข้อมูลหนึ่ง เชื่อมกับหลายแถวในอีกตาราง ตัวอย่างเช่น ลูกค้า 1 คน สามารถมีหลายใบสั่งซื้อ ในความสัมพันธ์นี้ตารางที่เก็บหมายเลขแถวจะต้องมี foreign ไปตารางที่มี 1 แถวข้อมูล ดังนั้น จึงมี Customer ID ในตารางข้อมูล Orders เพื่อแสดงความสัมพันธ์
-ความสัมพันธ์แบบ หลาย - ต่อ - หลาย (many-to-many) หมายถึง หลายแถวในตารางข้อมูลหนึ่งเชื่อมกับหลายแถวในอีกตาราง ตัวอย่าง เช่น ถ้ามีตารางข้อมูล 2 ตาราง Books และ Authors อาจจะพบว่าหนังสือ 1 เล่ม เขียนโดยนักเขียน 2 คน แต่ละคนเขียนหนังสือเล่มอื่นด้วย ตามปกติความสัมพันธ์ประเภทนี้ ควรอีกตารางข้อมูลเก็บข้อมูลทั้งหมด อาจจะต้องมี Books, Authors และ Books_Authors โดยตารางที่ 3 เก็บเฉพาะคีย์ของตารางอื่นในฐานะ foreign key เป็นคู่ เพื่อแสดงว่าผู้เขียนเกี่ยวข้องกับหนังสือเล่มใด

ไม่มีความคิดเห็น:

แสดงความคิดเห็น