Verschil tussen 3NF en BCNF

Anonim

3NF vs BCNF

Normalisatie is een proces dat wordt uitgevoerd om de redundancies die aanwezig zijn in data in relationele databases te minimaliseren. Dit proces zal voornamelijk grote tabellen verdelen in kleinere tabellen met minder ontslagen. Deze kleinere tabellen zullen door middel van goed gedefinieerde relaties met elkaar worden verbonden. In een goed genormaliseerde database zal elke wijziging of wijziging van de gegevens alleen een enkele tabel moeten wijzigen. Derde Normale Vorm (3NF) werd in 1971 geïntroduceerd door Edgar F. Codd, die ook de uitvinder van het relationele model en het concept van normalisatie is. Boyce-Codd Normal Form (BCNF) werd in 1974 geïntroduceerd door Codd en Raymond F. Boyce.

Wat is 3NF?

3NF is het derde normale formulier dat wordt gebruikt in de relationele database normalisatie. Volgens de definitie van de Codd wordt in tabel 3NF een tabel genoemd, indien en alleen indien die tabel in de tweede normale vorm (2NF) staat en elke eigenschap in de tabel die niet bij een kandidaat-sleutel hoort, rechtstreeks afhangen van elke kandidaat sleutel van die tabel. In 1982 produceerde Carlo Zaniolo een anders uitgesproken definitie voor 3NF. Tabellen die voldoen aan de 3NF bevatten in het algemeen geen afwijkingen die optreden bij het plaatsen, verwijderen of bijwerken van records in de tabel.

Wat is BCNF?

BCNF (ook bekend als 3. 5NF) is een ander normaal formulier dat wordt gebruikt in de relationele database normalisatie. Het werd geïntroduceerd om enkele onregelmatigheden vast te leggen die niet door de 3NF worden aangepakt. Een tabel staat in BCNF, als en alleen als, voor elk van de afhankelijkheden van het formulier A → B dat niet triviaal is, A een super-sleutel is. Het ontbinden van een tabel die niet in het normale BCNF-formulier is afgebroken, garandeert niet de productie van tabellen in het BCNF-formulier (met behoud van de afhankelijkheden die aanwezig waren in de oorspronkelijke tabel).

Wat is het verschil tussen 3NF en BCNF?

Zowel 3NF als BCNF zijn normale vormen die worden gebruikt in relationele databases om redundancies in tabellen te minimaliseren. In een tabel die in de normale vorm van BCNF is, is voor elke niet-triviale functionele afhankelijkheid van de vorm A → B, A een super-sleutel, terwijl een tabel die voldoet aan 3NF in de 2NF en elke niet-prime Attribuut moet direct afhankelijk zijn van elke kandidaat sleutel van die tabel. BCNF wordt beschouwd als een sterkere normale vorm dan de 3NF en werd ontwikkeld om een ​​aantal van de anomalieën te vangen die niet door 3NF kon worden vastgelegd. Het verkrijgen van een tafel die voldoet aan het BCNF-formulier, zal een tabel in de 3NF ontleden. Deze ontbinding zal resulteren in extra join operations (of Cartesian producten) bij het uitvoeren van queries. Dit verhoogt de computertijd. Aan de andere kant zouden de tabellen die voldoen aan BCNF minder ontslag hebben dan tabellen die alleen voldoen aan 3NF.Bovendien is het meestal mogelijk om een ​​tafel te verkrijgen die voldoet aan 3NF zonder belemmering van de afhankelijkheid en verlieslose aansluiting. Maar dit is niet altijd mogelijk met BCNF.