Third Normal Form (3 NF)

เกิดมาเพื่อเพื่มประสิทธิภาพในการ process ของ database และลด storage cost

กฎเพื่อเป็น 3NF

  • ต้องเป็น 2NF แล้ว
  • ต้องไม่มี non-prime attribute ที่สามารถอธิบาย non-prime attribute (Transitive Dependency)

Transitive Dependency

ตัวอย่าง

Emp_Dept(Emp_id, Emp_name, Dep_no, Dep_name, Manager_id)

เนื่องจากว่า Dep_no เป็น non-prime attribute ที่สามารถอธิบาย Dep_name และ Manager_id ได้ ทำให้ relation นี้ไม่ใช่ 3NF

การแก้ไข

ก็ต้องทำการแตกตารางใหม่เป็น

Employee(Emp_id, Emp_name, Dep_no)
Department(Dep_no, Dep_name, Manager_id)

โดยที่ Dep_no จะทำหน้าเป็น Foreign Key ในตาราง Employee เพื่อให้สามารถไปเชื่อมกับ attribute ตัวอื่นใน Department ได้