Forskjellen mellom 3NF og BCNF

3NF vs BCNF

Normalisering er en prosess som utføres for å minimere redundansene som er tilstede i data i relasjonsdatabaser. Denne prosessen vil i hovedsak dele store bord i til mindre bord med færre avskedigelser. Disse mindre tabellene vil være relatert til hverandre gjennom veldefinerte relasjoner. I en brønn normalisert database vil eventuelle endringer eller modifikasjoner i data kreve endring av bare et enkelt bord. Tredje Normal Form (3NF) ble introdusert i 1971 av Edgar F. Codd, som også er oppfinner av relasjonsmodellen og begrepet normalisering. Boyce-Codd Normal Form (BCNF) ble introdusert i 1974 av Codd og Raymond F. Boyce.

Hva er 3NF?

3NF er den tredje normale form som brukes i relasjonsdatabase normalisering. I følge Codds definisjon er det sagt at en tabell er i 3NF, hvis og bare hvis bordet er i den andre normale form (2NF), og hver egenskap i tabellen som ikke tilhører en kandidatnøkkel, bør direkte avhenge av hver kandidatnøkkel i den tabellen. I 1982 produserte Carlo Zaniolo en annerledes uttrykt definisjon for 3NF. Tabeller som overholder 3NF inneholder vanligvis ikke anomalier som oppstår når du setter inn, sletter eller oppdaterer poster i tabellen.

Hva er BCNF?

BCNF (også kjent som 3.5NF) er en annen normal form som brukes i relasjonsdatabase normalisering. Det ble introdusert for å fange noen avvikene som ikke er adressert av 3NF. Et bord sies å være i BCNF, hvis og bare hvis, for hver av avhengighetene i skjemaet A → B som ikke er trivielt, er A en supernøkkel. Dekomponering av et bord som ikke er i den vanlige formen for BCNF garanterer ikke produksjon av tabeller i BCNF-skjemaet (samtidig med å beholde avhengighetene som var tilstede i det opprinnelige tabellen).

Hva er forskjellen mellom 3NF og BCNF?

Både 3NF og BCNF er normale former som brukes i relasjonsdatabaser for å minimere redundans i tabeller. I en tabell som er i den normale form BCNF, er for hver ikke-trivial funksjonell avhengighet av skjemaet A → B, A en supernøkkel, mens et bord som overholder 3NF, skal være i 2NF, og alle ikke-prime Attributtet skal direkte avhenge av hver kandidatnøkkel i tabellen. BCNF regnes som en sterkere normal form enn 3NF, og den ble utviklet for å fange opp noen av anomaliene som ikke kunne fanges av 3NF. Å skaffe et bord som oppfyller BCNF-skjemaet, vil kreve dekomponering av et bord som er i 3NF. Denne dekomponeringen vil resultere i tilleggsoperasjoner (eller kartesiske produkter) når du utfører spørringer. Dette vil øke beregningstiden. På den annen side vil tabellene som overholder BCNF ha færre redundanser enn tabeller som bare overholder 3NF. Videre er det mest mulig å få et bord som overholder 3NF uten å hindre avhengighetsbevarelse og lossless sammenføyning. Men dette er ikke alltid mulig med BCNF.