ความแตกต่างระหว่าง 3NF และ BCNF

Anonim

3NF เทียบกับ BCNF

การทำให้เป็นมาตรฐานเป็นกระบวนการที่ดำเนินการเพื่อลดความซ้ำซ้อนที่มีอยู่ในข้อมูลในฐานข้อมูลเชิงสัมพันธ์ กระบวนการนี้จะแบ่งตารางขนาดใหญ่เป็นตารางเล็ก ๆ และมีจำนวนน้อยลง ตารางขนาดเล็กเหล่านี้จะสัมพันธ์กันผ่านความสัมพันธ์ที่กำหนดไว้ ในฐานข้อมูลที่ได้รับการรับรองเป็นอย่างดีการปรับเปลี่ยนหรือแก้ไขข้อมูลจะต้องมีการปรับเปลี่ยนเฉพาะตารางเดียว แบบฟอร์มปกติที่สาม (3NF) ได้รับการแนะนำในปีพ. ศ. 2514 โดย Edgar F. Codd ผู้ซึ่งเป็นนักประดิษฐ์แบบจำลองเชิงสัมพันธ์และแนวคิดเรื่อง normalization Boyce-Codd Normal Form (BCNF) ได้รับการแนะนำในปีพ. ศ. 2517 โดย Codd และ Raymond F. Boyce

3NF คืออะไร?

3NF เป็นรูปแบบปกติที่สามที่ใช้ในการสร้างมาตรฐานฐานข้อมูลเชิงสัมพันธ์ ตามนิยามของ Codd ตารางจะกล่าวใน 3NF ถ้าและเพียงถ้าตารางอยู่ในรูปแบบปกติที่สอง (2NF) และทุกแอตทริบิวต์ในตารางที่ไม่ได้อยู่ในคีย์ผู้สมัครควรขึ้นอยู่กับ คีย์ผู้สมัครทุกคนของตารางนั้น ในปี 1982 Carlo Zaniolo สร้างคำจำกัดความที่แตกต่างกันสำหรับ 3NF ตารางที่สอดคล้องกับ 3NF โดยทั่วไปไม่มีความผิดปกติที่เกิดขึ้นเมื่อแทรกลบหรืออัปเดตระเบียนในตาราง

999 BCNF คืออะไร?

BCNF (หรือที่เรียกว่า 3 5NF) เป็นอีกรูปแบบปกติที่ใช้ในการสร้างมาตรฐานฐานข้อมูลเชิงสัมพันธ์ ถูกนำมาใช้เพื่อจับภาพความผิดปกติบางอย่างที่ไม่ได้ระบุโดย 3NF ตารางจะกล่าวใน BCNF ถ้าและเพียงถ้าสำหรับแต่ละ dependencies ของฟอร์ม A → B ที่ไม่ใช่เล็กน้อย A เป็น super-key การย่อยสลายตารางที่ไม่ได้อยู่ในรูปแบบปกติของ BCNF ไม่ได้เป็นการรับประกันการผลิตตารางในรูปแบบ BCNF (ในขณะที่ยังคงรักษาข้อมูลอ้างอิงที่อยู่ในตารางต้นฉบับ)

ความแตกต่างระหว่าง 3NF กับ BCNF คืออะไร?

ทั้ง 3NF และ BCNF เป็นรูปแบบปกติที่ใช้ในฐานข้อมูลเชิงสัมพันธ์เพื่อลดความซ้ำซ้อนในตาราง ในตารางที่อยู่ในรูปแบบปกติ BCNF สำหรับการพึ่งพาการทำงานทุกรูปแบบที่ไม่ใช่เลขเล็กน้อยของแบบ A → B, A เป็นซุปเปอร์คีย์ขณะที่ตารางที่สอดคล้องกับ 3NF ควรอยู่ใน 2NF และทุก non-prime แอตทริบิวต์ควรขึ้นอยู่กับคีย์ผู้สมัครทุกคนของตารางนั้น BCNF ถือว่าเป็นรูปแบบปกติที่แข็งแกร่งกว่า 3NF และได้รับการพัฒนาขึ้นเพื่อจับภาพความผิดปกติบางอย่างที่ไม่สามารถจับภาพได้โดย 3NF การได้รับตารางที่สอดคล้องกับรูปแบบ BCNF จะต้องมีการสลายตัวของตารางที่อยู่ใน 3NF การสลายตัวนี้จะทำให้มีการดำเนินการเข้าร่วมเพิ่มเติม (หรือผลิตภัณฑ์ Cartesian) เมื่อดำเนินการสืบค้น ซึ่งจะเป็นการเพิ่มเวลาในการคำนวณ ในทางตรงกันข้ามตารางที่สอดคล้องกับ BCNF จะมีความซ้ำซ้อนน้อยกว่าตารางที่สอดคล้องกับ 3NF เท่านั้นนอกจากนี้ในช่วงเวลาที่เป็นไปได้ที่จะได้รับตารางที่สอดคล้องกับ 3NF โดยไม่ต้องป้องกันการพึ่งพาการเก็บรักษาและ lossless เข้าร่วม แต่นี่ไม่ใช่ไปได้เสมอกับ BCNF