วันเสาร์ที่ 31 มีนาคม พ.ศ. 2561
example of normalization
- 1NF ต้องไม่เป็น repeating group หรือมี multiple value attribute
โดยจากตัวอย่างนี้ Student_Grade_Report ยังมี multiple value attribute อยู่ นั่นคือ Course เพราะ Student 1 คน สามารถมีได้หลาย course ทำให้เป็น repeating group
วิธีการ - ลบ attribute ที่เป็น multiple value ออก
- นำไปสร้างตารางใหม่ คือ StudentCourse
- โดยใน StudentCourse มี primary key เป็น {StudentNo,CourseNo}
- 2NF attribute ควรขึ้นอยู่กับ primary key แบบ fully dependent ทุกตัว
จากการทำ 1NF มาแล้ว ทำให้ได้ตาราง StudentCourse มา ซึ่งในตารางนี้มีแค่ attribute Grade ที่เป็น fully dependent กับ primary key คือขื้นกับทั้ง StudentNo และ CourseNo แต่ CourseName, InstructorNo, InstructorName, InstructorLocation เป็น partial dependent คือขึ้นอยู่กับ CourseNo อย่างเดียว
วิธีการ - ลบ attribute ที่เป็น partial dependent ออก
- นำไปสร้างเป็นตารางใหม่คือ CourseInstructor
- โดยใน CourseInstructor มี primary key คือ CourseNo
- 3NF ต้องไม่มี transitive dependency คือ ในแต่ละ attribute ไม่มีการขึ้นต่อกันเป็นทอดๆ
จากการทำ 2NF มาแล้ว ทำให้ได้ตาราง CourseInstructor ซึ่ง InstructorName, InstructorLocation ขึ้นอยู่กับ InstructorNo ที่ขึ้นอยู่กับ CourseNo อีกทอดหนึ่ง
วิธีการ - ลบ attribute ที่เป็น transitive dependency
- นำไปสร้างเป็นตารางใหม่คือ Instructor
- โดยตาราง Instructor มี primary key คือ InstructorNo
- ตรวจสอบว่ายังมี transitive dependency อีกหรือไม่ สรุปคือไม่มีแล้วจึงไม่ต้องทำต่อ
สมัครสมาชิก:
ส่งความคิดเห็น (Atom)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น