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

วิชาฐานข้อมูลเบื้องต้น การบ้านการทำNormalization ประจำวันที่ 5 ม.ค. 54

1. Functional Dependency คืออะไร แบ่งเป็นกี่ประเภท
          ตอบ Functional dependency (FD) คือความสัมพันธ์ระหว่าง attribute ใน Relation โดยมีลักษณะความสัมพันธ์ คือ ข้อมูลของ attribute หนึ่ง (หรือกลุ่มหนึ่ง) ขึ้นอยู่กับค่าของ attribute หนึ่ง (หรือกลุ่มหนึ่ง) อย่างเป็นฟังก์ชัน
            Functional Dependency แบ่งออกเป็น 4 ประเภท ดังนี้
            1. Functional Dependency ที่เกิดจากความสัมพันธ์ระหว่าง Determinant และ Dependency อย่างละ 1 คำ เช่น ความสัมพันธ์ระหว่างหมายเลขบัตรประชาชนและชื่อเจ้าของบัตร
            2. Functional Dependency ที่เกิดขึ้นจากความสัมพันธ์ระหว่าง Determinant 1 คำกับ Dependency หลายคำ เช่น ความสัมพันธ์ระหว่างบนบัตรประชาชน และข้อมูลที่ปรากฏอยู่บนบัตรประชาชน
            3. Functional Dependency ที่มีความสัมพันธ์ 2 ทาง ซึ่งเป็น Functional Dependency ที่ทั้ง Determinant และ Dependency ต่างสามารถทำหน้าที่ของอีกฝ่ายหนึ่งได้
            4. Functional Dependency ที่ต้องใช้ Determinant มากกว่า 1 คำ เพื่ออ้างถึง Dependency เช่น ความสัมพันธ์ระหว่างจำนวนสินค้าที่ผลิตได้ของสินค้าแต่ละชนิดภายใต้สายการผลิตต่าง ๆ


2. จงอธิบายความหมายของ Repeating Group พร้อมยกตัวอย่าง
         ตอบ Repeating Group คือ ในฟิลด์ใด ๆ ของ Table นั้น จะมีค่าฟิลด์นั้นเกิน 1 ค่า ภายในเรคอร์ดเดียวกัน
            ตารางที่มีลักษณะข้อมูลเป็น Repeating group
รหัสนักศึกษา
ชื่อ
นามสกุล
รหัสวิชาที่ลงทะเบียน
001
สมชาย
สมใจนึก
204-101
204-204
204-205
002
ธีรชาย
บุญมาศ
204-102
204-204


3. จงอธิบายความหมายของ Transitive Dependency พร้อมยกตัวอย่าง
          ตอบ การไม่ขึ้นตรงกับคีย์หลัก (Transitively Dependency) ถ้าในความสัมพันธ์ R มีคีย์หลักคือ K และแอตตริบิว A และ B จะกล่าวว่าแอตตริบิว B ไม่ขึ้นตรงกับคีย์หลัก
เมื่อ K -----------> A และ A ----------> B และ A ---/--> K
ตัวอย่างการทำ ตารางให้เป็น 3NF
ผู้บริหาร (เลขประจำ ตัว, ชื่อนามสกุล, ที่อยู่, ตำแหน่ง, ยี่ห้อรถประจำ ตำแหน่ง)
FD = {เลขประจำตัว--> ชื่อนามสกุล, ที่อยู่, ตำแหน่ง
ตำแหน่ง --> ยี่ห้อรถประจำ ตำแหน่ง }
ในตัวอย่างจะเห็นได้ว่า set ของ ผู้บริหาร (เลขประจำตัว , ชื่อนามสกุล , ที่อยู่, ตำแหน่ง, ยี่ห้อ รถประจำตำแหน่ง) นี้ ยังไม่ใช่ 3NF เพราะ เลขประจำตัว --> ตำแหน่ง ตำแหน่ง --> ยี่ห้อรถประจำตำแหน่ง ดังนั้น ควรจะแยก เซ็ทผู้บริหาร ออกเป็น 2 เซ็ท คือ
3NF: ผู้บริหาร (เลขประจำตัว, ชื่อนามสกุล, ที่อยู่, ตำแหน่ง)
        ตำแหน่งบริหาร (ตำแหน่ง, ยี่ห้อรถประจำ ตำแหน่ง)

4. จงตรวจสอบตารางต่อไปว่าอยู่ในรูปของ 1NF 2NF และ 3NF แล้วหรือยัง ถ้ายังจง Normalization ให้อยู่ในรูปดังกล่าว
P_ID
P_Name
E_ID
E_Name
Job_Calss
Chg_Hour
Hour
11
EAU Web Site
103
สมชาย ไม้ดี
SA
500
23.8
101
แท่น งามยิ่ง
Database Designer
450
19.4
105
ชาย ดีศรี
Database Designer
450
35.7
106
แม็ก ยอดยิ่ง
Programmer
400
12.6
102
อมร ดีศรี
SA
500
23.8
22
BU Registration
114
สุรศักดิ์ ดีงาม
Application Designer
300
24.6
118
กมล ไม้งาม
General Support
200
45.3
104
นาย ยิ่งยอด
SA
500
32.4
106
แม็ก ยอดยิ่ง
Programmer
400
20.0
112
ธิดา ไม้งาม
Database Designer
450
44.0
105
ชาย ดีศรี
Database Designer
450
44.0

ตอบ ยังไม่อยู่ในรูปของ 1NF 2NF และ 3NF
1NF
P_ID
P_Name
E_ID
E_Name
Job_Calss
Chg_Hour
Hour
11
EAU Web Site
103
สมชาย ไม้ดี
SA
500
23.8
11
EAU Web Site
101
แท่น งามยิ่ง
Database Designer
450
19.4
11
EAU Web Site
105
ชาย ดีศรี
Database Designer
450
35.7
11
EAU Web Site
106
แม็ก ยอดยิ่ง
Programmer
400
12.6
11
EAU Web Site
102
อมร ดีศรี
SA
500
23.8
22
BU Registration
114
สุรศักดิ์ ดีงาม
Application Designer
300
24.6
22
BU Registration
118
กมล ไม้งาม
General Support
200
45.3
22
BU Registration
104
นาย ยิ่งยอด
SA
500
32.4
22
BU Registration
106
แม็ก ยอดยิ่ง
Programmer
400
20.0
22
BU Registration
112
ธิดา ไม้งาม
Database Designer
450
44.0
22
BU Registration
105
ชาย ดีศรี
Database Designer
450
44.0

2NF
FD: P_ID, E_ID --> P_Name, E_Name, Job_Calss, Chg_Hour, Hour
D1: P_ID, E_ID --> Chg_Hour, Hour
D2: P_ID --> P_Name, E_Name, Job_Calss

3NF
FD: P_ID --> P_Name, E_Name, Job_Calss
D1: P_ID --> P_Name, E_Name
D2: E_Name --> Job_Calss

5. จงวิเคราะห์และจัดทำ Normalization ระบบการลงทะเบียนของนักศึกษา ให้มีความซ้ำซ้อนน้อยที่สุด
รหัส นศ.
ภาคเรียนที่
รหัสวิชา
ชื่อวิชา
ประเภทวิชา
ชื่อประเภท
หน่วยกิต
เกรด
4501
1/45
A01
คณิตศาสตร์คอมฯ
02
ชีพบังคับ
3
F

1/45
A03
ภาษาไทย
01
พื้นฐาน
3
C

2/45
A01
คณิตศาสตร์คอมฯ
02
ชีพบังคับ
3
D

2/45
A04
ภาษาอังกฤษ1
01
พื้นฐาน
3
D+
4502
1/45
A01
คณิตศาสตร์คอมฯ
02
ชีพบังคับ
3
B

1/45
A04
ภาษาอังกฤษ1
01
พื้นฐาน
3
C

2/45
A02
ระบบฐานข้อมูล
03
ชีพเลือก
3
B

2/45
A05
โปรแกรมสำเร็จรูป1
02
ชีพบังคับ
3
D
4503
1/45
A06
การสื่อสารข้อมูล
01
พื้นฐาน
3
A

1/45
A04
ภาษาอังกฤษ1
03
ชีพเลือก
3
C

2/45
A05
โปรแกรมสำเร็จรูป1
02
ชีพบังคับ
3
D
4506
1/45
A03
ภาษาไทย
01
พื้นฐาน
3
D+

1/45
A04
ภาษาอังกฤษ1
01
พื้นฐาน
3
C

ตอบ 1NF
รหัส นศ.
ภาคเรียนที่
รหัสวิชา
ชื่อวิชา
ประเภทวิชา
ชื่อประเภท
หน่วยกิต
เกรด
4501
1/45
A01
คณิตศาสตร์คอมฯ
02
ชีพบังคับ
3
F
4501
1/45
A03
ภาษาไทย
01
พื้นฐาน
3
C
4501
2/45
A01
คณิตศาสตร์คอมฯ
02
ชีพบังคับ
3
D
4501
2/45
A04
ภาษาอังกฤษ1
01
พื้นฐาน
3
D+
4502
1/45
A01
คณิตศาสตร์คอมฯ
02
ชีพบังคับ
3
B
4502
1/45
A04
ภาษาอังกฤษ1
01
พื้นฐาน
3
C
4502
2/45
A02
ระบบฐานข้อมูล
03
ชีพเลือก
3
B
4502
2/45
A05
โปรแกรมสำเร็จรูป1
02
ชีพบังคับ
3
D
4503
1/45
A06
การสื่อสารข้อมูล
01
พื้นฐาน
3
A
4503
1/45
A04
ภาษาอังกฤษ1
03
ชีพเลือก
3
C
4503
2/45
A05
โปรแกรมสำเร็จรูป1
02
ชีพบังคับ
3
D
4506
1/45
A03
ภาษาไทย
01
พื้นฐาน
3
D+
4506
1/45
A04
ภาษาอังกฤษ1
01
พื้นฐาน
3
C

2NF
           D1: รหัส นศ., รหัสวิชา --> เกรด
           D2: รหัสวิชา --> ภาคเรียนที่, ชื่อวิชา, ประเภทวิชา, ชื่อประเภท, หน่วยกิต

3NF
         D1: รหัสวิชา--> ภาคเรียนที่, ชื่อวิชา, ประเภทวิชา, หน่วยกิต, ประเภทวิชา
         D2: ประเภทวิชา--> ชื่อประเภท


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

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