Forskjellen mellom 3NF og BCNF

Forskjellen mellom 3NF og BCNF
Forskjellen mellom 3NF og BCNF

Video: Forskjellen mellom 3NF og BCNF

Video: Forskjellen mellom 3NF og BCNF
Video: Agile vs Waterfall Methodology | Difference between Agile and Waterfall | What to choose? 2024, Juli
Anonim

3NF vs BCNF

Normalisering er en prosess som utføres for å minimere redundansene som finnes i data i relasjonsdatabaser. Denne prosessen vil hovedsakelig dele store tabeller inn i mindre tabeller med færre redundanser. Disse mindre tabellene vil være relatert til hverandre gjennom veldefinerte relasjoner. I en godt normalisert database vil enhver endring eller modifikasjon av data bare kreve modifisering av en enkelt tabell. Third Normal Form (3NF) ble introdusert i 1971 av Edgar F. Codd, som også er oppfinneren av relasjonsmodellen og normaliseringsbegrepet. Boyce-Codd Normal Form (BCNF) ble introdusert i 1974 av Codd og Raymond F. Boyce.

Hva er 3NF?

3NF er den tredje normalformen som brukes i normalisering av relasjonsdatabaser. I følge Codds definisjon sies en tabell å være i 3NF, hvis og bare hvis den tabellen er i den andre normalformen (2NF), og hver attributt 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 er i samsvar med 3NF inneholder vanligvis ikke uregelmessigheter som oppstår ved innsetting, sletting eller oppdatering av poster i tabellen.

Hva er BCNF?

BCNF (også kjent som 3.5NF) er en annen normalform som brukes i normalisering av relasjonsdatabaser. Det ble introdusert for å fange opp noen avvik som ikke er adressert av 3NF. En tabell sies å være i BCNF, hvis og bare hvis, for hver av avhengighetene til formen A → B som er ikke-trivielle, A er en supernøkkel. Å dekomponere en tabell som ikke er i BCNF-normalformen garanterer ikke produksjon av tabeller i BCNF-formen (samtidig som avhengighetene som var til stede i den opprinnelige tabellen bevares).

Hva er forskjellen mellom 3NF og BCNF?

Både 3NF og BCNF er normale former som brukes i relasjonsdatabaser for å minimere redundanser i tabeller. I en tabell som er i BCNF normal form, for hver ikke-triviell funksjonell avhengighet av formen A → B, er A en supernøkkel, mens en tabell som samsvarer med 3NF bør være i 2NF, og hver ikke-primtall attributtet skal direkte avhenge av hver kandidatnøkkel i den tabellen. BCNF regnes som en sterkere normalform enn 3NF, og den ble utviklet for å fange opp noen av anomaliene som ikke kunne fanges opp av 3NF. Å skaffe en tabell som samsvarer med BCNF-skjemaet vil kreve dekomponering av en tabell som er i 3NF. Denne dekomponeringen vil resultere i ytterligere sammenføyningsoperasjoner (eller kartesiske produkter) når du utfører spørringer. Dette vil øke beregningstiden. På den annen side vil tabellene som er i samsvar med BCNF ha færre oppsigelser enn tabeller som kun overholder 3NF. Videre er det mesteparten av tiden mulig å få en tabell som er i samsvar med 3NF uten å hindre avhengighetsbevaring og tapsfri sammenføyning. Men dette er ikke alltid mulig med BCNF.

Anbefalt: