Verschil tussen 3NF en BCNF

Verschil tussen 3NF en BCNF
Verschil tussen 3NF en BCNF

Video: Verschil tussen 3NF en BCNF

Video: Verschil tussen 3NF en BCNF
Video: Agile vs Waterfall Methodology | Difference between Agile and Waterfall | What to choose? 2024, November
Anonim

3NF vs BCNF

Normalisering is een proces dat wordt uitgevoerd om de overtolligheden die aanwezig zijn in gegevens in relationele databases te minimaliseren. Dit proces verdeelt voornamelijk grote tabellen in kleinere tabellen met minder overtolligheden. Deze kleinere tabellen worden aan elkaar gerelateerd door middel van goed gedefinieerde relaties. In een goed genormaliseerde database hoeft voor elke wijziging of wijziging in gegevens slechts één enkele tabel te worden gewijzigd. De derde normaalvorm (3NF) werd in 1971 geïntroduceerd door Edgar F. Codd, die ook de uitvinder is van het relationele model en het concept van normalisatie. Boyce-Codd Normal Form (BCNF) werd in 1974 geïntroduceerd door Codd en Raymond F. Boyce.

Wat is 3NF?

3NF is de derde normaalvorm die wordt gebruikt bij het normaliseren van relationele databases. Volgens de definitie van Codd zou een tabel in 3NF zijn, als en slechts dan als die tabel in de tweede normaalvorm (2NF) is, en elk attribuut in de tabel dat niet tot een kandidaatsleutel behoort, moet direct afhankelijk zijn van elke kandidaatsleutel van die tafel. In 1982 produceerde Carlo Zaniolo een anders uitgedrukte definitie voor 3NF. Tabellen die voldoen aan de 3NF bevatten over het algemeen geen afwijkingen die optreden bij het invoegen, verwijderen of bijwerken van records in de tabel.

Wat is BCNF?

BCNF (ook bekend als 3.5NF) is een andere normale vorm die wordt gebruikt bij het normaliseren van relationele databases. Het werd geïntroduceerd om enkele anomalieën vast te leggen die niet door de 3NF worden aangepakt. Er wordt gezegd dat een tabel in BCNF is, dan en slechts dan als, voor elk van de niet-triviale afhankelijkheden van de vorm A → B, A een supersleutel is. Het ontleden van een tabel die niet in de BCNF-normvorm is, garandeert niet de productie van tabellen in de BCNF-vorm (met behoud van de afhankelijkheden die in de oorspronkelijke tabel aanwezig waren).

Wat is het verschil tussen 3NF en BCNF?

Zowel 3NF als BCNF zijn normale vormen die in relationele databases worden gebruikt om overtolligheden in tabellen te minimaliseren. In een tabel die in de BCNF-normaalvorm staat, is voor elke niet-triviale functionele afhankelijkheid van de vorm A → B, A een supersleutel, terwijl een tabel die voldoet aan 3NF in de 2NF zou moeten staan, en elke niet-prime attribuut moet direct afhankelijk zijn van elke kandidaatsleutel van die tabel. BCNF wordt beschouwd als een sterkere normaalvorm dan de 3NF en is ontwikkeld om enkele van de anomalieën op te vangen die niet door 3NF konden worden vastgelegd. Om een tabel te verkrijgen die voldoet aan het BCNF-formulier, moet een tabel in de 3NF worden ontbonden. Deze decompositie zal resulteren in extra join-bewerkingen (of Cartesiaanse producten) bij het uitvoeren van query's. Hierdoor zal de rekentijd toenemen. Aan de andere kant zouden de tabellen die voldoen aan BCNF minder redundanties hebben dan tabellen die alleen voldoen aan 3NF. Bovendien is het meestal mogelijk om een tabel te verkrijgen die voldoet aan 3NF zonder het behoud van afhankelijkheid en verliesvrije verbinding te belemmeren. Maar dit is niet altijd mogelijk met BCNF.

Aanbevolen: