Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> SQL

Sixth Normal Form (6NF) ในฐานข้อมูล


ใน 6NF relation variable ถูกแยก (decomposed) เป็น irreducible components Relation อยู่ใน 6NF ก็ต่อเมื่อ: อยู่ใน 5NF แล้ว และทุก join dependency บน relation เป็น trivial

ตัวอย่าง

<Student>

Enrollment_No Name Marks

Join dependencies ที่เป็นไปได้:

{Enrollment_No, Marks}
{Enrollment_No, Name}

ใน 6NF จะแยกเป็น:

<StudentInformation>

Enrollment_No Name

<ResultInformation>

Enrollment_No Marks

ตัวอย่างเพิ่มเติม

<StudentMarks>

Student_ID Student_FirstName Student_LastName Marks
S01 Tom Alter 90
S02 Jacob Watson 80
S03 Harry Smith 85

แยกตาราง:

<StudentFirstName>

Student_ID Student_FirstName
S01 Tom
S02 Jacob
S03 Harry

<StudentLastName>

Student_ID Student_LastName
S01 Alter
S02 Watson
S03 Smith

<StudentResult>

Student_ID Marks
S01 90
S02 80
S03 85

ตารางเหล่านี้อยู่ใน 6NF แล้ว แต่ในโลกจริงไม่ค่อยปฏิบัติได้ เพราะ join กลับมามี overhead สูงมาก

ข้อสังเกต

  • 6NF เรียกว่า "Domain-Key Normal Form" (DKNF) ในบางบริบท
  • เหมาะสำหรับ temporal databases และ data warehousing
  • ในทางปฏิบัติ 3NF หรือ BCNF เพียงพอสำหรับแอปพลิเคชันส่วนใหญ่