วันอาทิตย์ที่ 16 มกราคม พ.ศ. 2554

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

การบ้านเรื่องการทำ Normalization ประจำวันที่ 5 มกราคม พ.ศ. 2554
1.Functional Dependency คืออะไร แบ่งเป็นกี่ประเภท
คือการพิจารณาโครงสร้างของแต่ละ Relation ว่ามีโครงสร้างอยู่ใน Normal Form ระดับใด จะพิจารณาจาก Functional Dependency ซึ่งเป็นความสัมพันธ์ระหว่าง Attribute ต่าง ๆ ภายใน Relation กับ Attribute หรือกลุ่ม Attribute ที่ทำหน้าที่เป็น Key ของ Relation นั้นซึ่งความสัมพันธ์นี้ จะถูกนิยามด้านรูปแบบทางคณิตศาสตร์ที่เรียกว่า “Functional Dependency”
Functional Dependency สมารถแบ่งออกเป็น 4 ประเภท ดังนี้
1.Functional Dependency ที่เกิดจากความสัมพันธ์ระหว่าง Determinant และ Dependency อย่างละ 1 คำ เช่น ความสัมพันธ์ระหว่างหมายเลขบัตรประชาชนและชื่อเจ้าของบัตร
2.Functional Dependency ที่เกิดจากความสัมพันธ์ระหว่าง Determinant 1 ค่ากับ Dependency หลายค่า เช่น ความสัมพันธ์ระหว่างหมายเลขบัตรประชาชนและข้อมูลที่ปรากฏอยู่บนบัตรประชาชน
3.Functional Dependency ที่มีความสัมพันธ์ 2 ทาง ซึ่งเป็น Functional Dependencyที่ทั้ง Determinant และ Dependency ต่างสามารถทำหน้าที่ของอีกฝ่ายหนึ่งได้ เช่น ความสัมพันธ์ ระหว่างชื่อผู้จัดการโครงการ (Attribute “MANAGER”)กับชื่อโครงการ(Attribute“PROJECT_NO”)ซึ่งถ้าทราบชื่อของโครงการจะสามารถทราบได้ถึงชื่อของโครงการที่ผู้จัดการนั้นเป็นเจ้าของได้ และเมื่อทราบชื่อโครงการก็จะสามารถทราบถึงชื่อของผู้จัดการโครงการนั้นเช่นเดียวกัน
4.Functional Dependency ที่ต้องใช้ Determinant มากกว่า 1 ค่า เพื่ออ้างถึง Dependency เช่น ความสัมพันธ์ระหว่างจำนวนสินค้าที่ผลิตได้ของสินค้าแต่ละชนิดภายใต้สายการผลิตต่าง ๆ
2.จงอธิบายความหมายของ Repeating Group พร้อมยกตัวอย่าง
Repeating Group หมายถึง รีเลชั่น ของตารางเกิดมีกลุ่มข้อมูลซ้ำกันหรือกล่าวอีกนัยหนึ่งคือแต่ละช่องเซลของรีเลชั่นจะถูกจัดเก็บข้อมูลมากกว่า 1 ค่า ส่งผลให้รีเลชั่น นี้ มีโครงสร้างที่ไม่สอดคล้องตามคุณสมบัติของ 1NF
ยกตัวอย่างเช่น ตาราง Oder สังเกตว่าลูกค้า(Attribute“CUST_NO”) 1 คนสามารถมีรายการสั่งซื้อ (Attribute “ORDER_CONTENT”) ได้มากกว่า 1 รายการ ดังนั้นจึงกล่าวได้ว่า (Attribute“CUST_NO”) นี้ มีความสัมพันธ์กับ(Attribute“ORDER_CONTENT”) ในแบบ Repeating Group ส่งผลให้รีเลชั่น นี้ มีโครงสร้างที่ไม่สอดคล้องตามคุณสมบัติของ 1NF

3. จงอธิบายความหมายของ Transitive Dependency พร้อมยกตัวอย่าง
Transitive Dependency หมายถึง รีเลชั่น ของตารางเกิดมี Attribute บางตัวที่ไม่ได้เป็นคีย์หลัก มีคุณสมบัติในการกำหนดค่าของอื่นที่ไม่ใช่คีย์หลักในตารางรีเลชั่นหรือกล่าวอีกนัยหนึ่งคือ มี 2 Attribute ที่ไม่ใช่คีย์หลัก ที่สามารถระบุค่าระหว่างกันได้
ยกตัวอย่างเช่น ในตาราง Oder สินค้าของลูกค้าจาก รีเลชั่น “Cust” มีค่าของ Attribute “CITY” และ Attribute “ZONE_SALE” ปรากฏข้อมูลซ้ำกันเป็นคู่ ๆ หรือกล่าวอีกนัยหนึ่งคือ ทั้ง 2 Attribute สมารถระบุค่าระหว่างกันได้ กล่าวคือ เมื่อระบุค่าให้กับ Attribute “ZONE_SALE” จะสามารถทราบถึงเมืองใน Attribute “CITY” ได้ ดังนั้นจึงทำให้ รีเลชั่นนี้ขาดคุณสมบัติของ 3NF และยังก่อให้เกิดปัญหาความผิดพลาดทางด้าน Anomaly

4.จงตรวจสอบตารางต่อไปว่าอยู่ในรูปของ 1NF 2NF และ 3NF แล้วหรือยัง ถ้ายัง Normalization ให้อยู่ในรูปดังกล่าว

จากตารางจะสังเกตว่าไม่มีคุณสมบัติครบเป็น 1NF เพราะเป็นรีเลชั่นที่มีคีย์หลักของรีเลชั่น คือ มี (Attribute “P_ID”) เป็นคีย์หลัก แล้วแต่มีกลุ่มข้อมูลซ้ำซ้อน (Repeating Group) อยู่ในรีเลชั่นหรือในแต่ละช่องหรือเซล ของรีเลชั่นมีการเก็บข้อมูลหลายค่าคือ Attribute “E_ID”นี้มีความสัมพันธ์กับ Attribute “P_Name” ในแบบ Repeating Group ส่งผลให้ Relation นี้ มีโครงสร้างที่ไม่สอดคล้องตามคุณสมบัติของ 1NF ดังนั้นจึงต้องทำรายการ Normalization โดยการแปลงคุณสมบัติ Attribute ที่อยู่ในรูป Repeating Group ให้มีคุณสมบัติ Atomicity พร้อมกับกำหนดให้ Attribute ดังกล่าวเป็น Relation Key ของ Relation ดังนั้นจึงถูกแปลงให้อยู่ในรูปดังนี้
- ไม่มีคุณสมบัติเป็นไปตาม 2NF เพราะจะเห็นได้ว่า Relation ของตาราง จะมี Attribute (E_ID ,P_ID) เป็น Attribute ที่ทำให้ข้อมูลในแต่ละ Tuple มีค่าไม่ซ้ำกัน ดังนั้น Attribute ทั้ง 2 จึงทำหน้าที่เป็น Relation Key และพิจารณาค่าของ Attribute “E_ID”, “E_ Name” , “Job_Calss”, “Chg_Hour”,“ Hour ” จะสังเกตเห็นว่า Tuple ที่ประกอบขึ้นจาก Attribute เหล่านี้ จะมีข้อมูลซ้ำกันเป็นชุด ๆ และมีเพียง Attribute “P_Name” เท่านั้นที่มีค่าแปรเปลี่ยนตามค่าของ Relation Key ดังนั้นจึงสามารถเขียนด้วย Functional Dependency เพิ่มเติมได้ดังนี้
- d1: E_ID, P_ID P_Name
- d2: E_ID E_ Name ,Job_Calss ,Chg_Hour, Hour
ใน d2 จะสังเกตเห็นว่า Attribute “E_ Name” , “Job_Calss”, “Chg_Hour”และ “ Hour ”, เป็น Nonprime Attribute ของ Relation ที่ไม่ได้ขึ้นอยู่กับเฉพาะ Relation Key แต่กลับขึ้นอยู่กับค่าของ Attribute “E_ID” ด้วย แสดงว่า d2 นี้ไม่เป็นไปตามคุณสมบัติข้อ 2
ดังนั้น Relation นี้ จึงไม่มีคุณสมบัติเป็นไปตามคุณสมบัติของ 2NF จึงต้องแยก Relation นี้ ออกเป็น 2 Relation ตาม d1และ d2 ดังนี้
E P_Name
E
- จาก Relation นี้ ถึงแม้จะมีโครงสร้างเป็นไปตามคุณสมบัติ 2NF แต่จะเห็นว่าค่าของ Attribute “Job_Calss” , “Chg_Hour”และ “ Hour ” ยังปรากฏข้อมูลที่มีซ้ำกันอยู่เป็นคู่ ๆ หรือกล่าวอีกนัยหนึ่งทั้ง 2 Attribute สามารถรับบุค่าระหว่างกันได้ ดังนั้น Relation นี้จึงขาดคุณสมบัติของ 3NF และยังก่อให้เกิดปัญหาความผิดพลาดทางด้าน Anomaly
จากปัญหา Anomaly ที่เกิดขึ้นจาก Transitive Dependency เหล่านี้จึงต้องทำการแยก Attribute ที่ทำให้เกิด Transitive Dependency ของ Relation นี้ ออกมาเป็น Relation ใหม่ ซึ่งจากตารางได้แก่ Attribute “Job_Calss” , “Chg_Hour”และ “ Hour ” ดังนี้
E2

Job Chg Hour

5.จงวิเคราะห์และจัดทำ Normalization ระบบการลงทะเบียนของนักศึกษา ให้มีความซ้ำซ้อนน้อยที่สุด

จัดทำ Normalization
5.1 First Normal Form (1NF) ได้ดังนี้
ระบบการลงทะเบียนของนักศึกษา

5.2 Second Normal Form (2NF) ได้ดังนี้
รหัสวิชาระบบการลงทะเบียน
รหัสวิชา

5.3 Second Normal Form (2NF) ได้ดังนี้
รหัสวิชา 2

ชื่อประเภทวิชา

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

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