วันอังคารที่ 3 เมษายน พ.ศ. 2561

ตัวอย่างการ Normalization 1NF 2NF และ 3NF

First Normal Form (1NF)


    ต้องมี Domain ใน relation หรือตารางเป็น Atomic เท่านั้นหรือก็คือ Attribute ทุกตัวต้องไม่สามารถแยกย่อยลงไปได้อีก

Attribute ที่ชื่อว่า Content ไม่เป็น Atomic

ปรับ Table ใหม่ให้ Attribute Content มีความ Atomic

Second Normal Form (2NF)


    Prime attribute : Attribute ที่เป็นส่วนหนึ่งของ candidate key 
    non-Prime attribute : Attribute ที่ไม่ได้เป็นเป็นส่วนหนึ่งของ candidate key   

    สำหรับ 2NF non-Prime attribute ทุกตัวต้องขึ้นอยู่กับ Primary key ครบทุกตัวในตาราง ไม่สามารถขึ้นอยู่กับ Candidate key ตัวใดตัวหนึ่งได้

non-prime attribute ไม่ได้ขึ้นอยู่กับ Primary key ครบทุกตัว

แก้ให้เป็น 2NF ได้โดยการแยกตารางออกโดยมี
จำนวณตามความสัมพันย่อยๆที่พบในตอนแรก

Third Normal Form (3NF)


    ส่วนเงื่อนไขของ 3NF คือ 
  • Relation เป็นไปตาม เงื่อนไขของ 2NF
  • ไม่มี non-key attribute ตัวได้ ขึ้นอยู่กับ non-key attribute ตัวใด (หรือ set ของ non-key)
  • ไม่มีความสัมพันธ์แบบ transitive dependency
Table มี non-key attribute ที่ขึ้นอยู่กับ non-key attribute 
และ มีความสัมพันธ์แบบ Transitive dependency
( Stu_ID => City => Zip )

สามารถแก้ให้เป็น 3NF ได้โดยแยกตารางออกเพื่อไม่ให้เกิด transitive dependency
และให้ non-key attribute ที่เป็นตัวโดเมนใน functionally dependent เป็น primary key ของ Table ใหม่


อ้างอิง