BCNF เป็นส่วนขยายของ Third Normal Form (3NF) และแข็งแกร่งกว่า 3NF เล็กน้อย
ความสัมพันธ์ R อยู่ใน BCNF ถ้า P -> Q เป็นการพึ่งพาฟังก์ชันเล็กน้อย และ P เป็น superkey สำหรับ R
หากความสัมพันธ์อยู่ใน BCNF แสดงว่ามีการลบความซ้ำซ้อนตามการพึ่งพาฟังก์ชันออก แต่ความซ้ำซ้อนบางส่วนยังคงอยู่
มาดูตัวอย่างกัน −
พื้น | Begin_Time | End_Time | แพ็คเกจ |
G01 | 07:00 | 09:00 | ทอง |
G01 | 10:00 | 12:00 | ทอง |
G01 | 10:30 | 11:00 | บรอนซ์ |
G02 | 10:15 | 11:15 | สีเงิน |
G02 | 08:00 | 09:00 | สีเงิน |
ความสัมพันธ์ข้างต้นอยู่ใน 1NF, 2NF, 3NF แต่ไม่ใช่ใน BCNF นี่คือเหตุผล −
การพึ่งพาการทำงาน {แพ็คเกจ->กราวด์}
มีแพ็คเกจแอตทริบิวต์ดีเทอร์มิแนนต์ซึ่ง Ground ขึ้นอยู่กับไม่ใช่ Candidate Key หรือ superset ของคีย์ตัวเลือก
<แพ็คเกจ>
แพ็คเกจ | พื้น |
ทอง | G01 |
สีเงิน | G02 |
บรอนซ์ | G01 |
<พรุ่งนี้จอง
กราวด์ | Begin_Time | End_Time |
G01 | 07:00 | 09:00 |
G01 | 10:00 | 12:00 |
G01 | 10:30 | 11:00 น. |
G02 | 10:15 | 11:15 |
G02 | 08:00 | 09:00 |
ตอนนี้ตารางด้านบนอยู่ใน BCNF
รหัสผู้สมัครสำหรับ
รหัสผู้สมัครสำหรับ
ความผิดปกติหมดไปเพราะเราใช้ Package เป็นคีย์ใน