Forskel mellem 3NF og BCNF
3NF vs BCNF
Normalisering er en proces, der udføres for at minimere de afskedigelser, der findes i data i relationelle databaser. Denne proces vil hovedsagelig opdele store tabeller i mindre tabeller med færre afskedigelser. Disse mindre tabeller vil være relateret til hinanden gennem veldefinerede relationer. I en normaliseret database vil enhver ændring eller ændring i data kræve ændring af kun et enkelt bord. Tredje Normal Form (3NF) blev introduceret i 1971 af Edgar F. Codd, som også er opfinder af relationelmodellen og begrebet normalisering. Boyce-Codd Normal Form (BCNF) blev introduceret i 1974 af Codd og Raymond F. Boyce.
Hvad er 3NF?
3NF er den tredje normale formular, der anvendes i relation til databaser normalisering. Ifølge Codds definition er et bord siges at være i 3NF, hvis og kun hvis, at bordet er i anden normale form (2NF), og hver attribut i tabellen, der ikke tilhører en kandidatnøgle, bør direkte afhænge af hver kandidatnøgle i den tabel. I 1982 producerede Carlo Zaniolo en anden udtrykt definition for 3NF. Tabeller, der overholder 3NF, indeholder generelt ikke uregelmæssigheder, der opstår, når du indsætter, sletter eller opdaterer optegnelser i tabellen.
Hvad er BCNF?
BCNF (også kendt som 3. 5NF) er en anden normal form, der anvendes i relationel database normalisering. Det blev indført for at fange nogle af de anomalier, der ikke er adresseret af 3NF. Et bord siges at være i BCNF, hvis og kun hvis A er en supernøgle for hver af afhængighederne i formularen A → B, der ikke er triviel. Afbrydelse af en tabel, der ikke er i den normale form BCNF, garanterer ikke produktion af tabeller i BCNF-formularen (samtidig med at de afhængigheder, der var til stede i den oprindelige tabel) bevares.
Hvad er forskellen mellem 3NF og BCNF?
Både 3NF og BCNF er normale former, der anvendes i relationelle databaser for at minimere afskedigelser i tabeller. I en tabel, der er i den normale form for BCNF, er A for alle ikke-trivielle funktionelle afhængigheder af form A → B en supernøgle, mens en tabel, der overholder 3NF, skal være i 2NF, og alle ikke-prime attributten skal direkte afhænge af hver kandidatnøgle i den tabel. BCNF betragtes som en stærkere normal form end 3NF og den blev udviklet til at fange nogle af de uregelmæssigheder, der ikke kunne fanges af 3NF. Indhentning af et bord, der overholder BCNF-formularen, vil kræve dekomponering af et bord, der er i 3NF. Denne nedbrydning vil resultere i yderligere tilslutningsoperationer (eller kartesiske produkter), når der udføres forespørgsler. Dette vil øge beregningstiden. På den anden side vil tabellerne, der overholder BCNF, have færre afskedigelser end tabeller, der kun overholder 3NF.Desuden er det meste muligt at få et bord, der overholder 3NF uden at hindre afhængighedsbevarelse og tabsløs tilslutning. Men det er ikke altid muligt med BCNF.