Målet med Boyce-Codd Normal Form er at øge dataintegriteten ved at organisere kolonnerne og tabellerne i en relationel database for at opnå databasenormalisering. Databasenormalisering sker, når der er etablerede relationer mellem tabeller, og når tabellerne har definerede regler for at gøre databasen mere fleksibel og for at bevare dataene.
Målene med databasenormalisering er at eliminere overflødige data og at sikre, at dataafhængigheder giver mening. En database normaliseres, når de samme data ikke er lagret i mere end én tabel, og når kun relaterede data er gemt i en tabel.
Oprindelse af Boyce-Codd Normal Form
Ved at følge en række retningslinjer sikres det, at databaser er normaliserede. Disse retningslinjer omtales som normale formularer og er nummereret fra én til fem. En relationel database beskrives som normaliseret, hvis den opfylder de første tre former: 1NF, 2NF og 3NF.
BCNF blev skabt som en forlængelse af den tredje normale form, eller 3NF, i 1974 af Raymond Boyce og Edgar Codd. Mændene arbejdede på at skabe databaseskemaer, der minimerer redundanser med det mål at reducere beregningstiden. Den tredje normalform fjerner kolonner, der ikke er afhængige af den primære nøgle ud over at opfylde retningslinjerne i den første og anden normalform. BCNF, som nogle gange omtales som 3.5NF, opfylder alle kravene i 3NF og kræver, at kandidatnøgler ikke er afhængige af andre attributter i en tabel.
På tidspunktet for BCNF's oprettelse var Boyce en af nøgleudviklerne af Structured English Query Language, senere standardiseret som SQL, hvilket forbedrede datahentning ved at bruge Codds relationsmodel. I denne model hævdede Codd, at den strukturelle kompleksitet af databaser kunne reduceres, hvilket betød, at forespørgsler kunne være mere kraftfulde og fleksible.
Codd definerede 1NF-, 2NF- og 3NF-retningslinjer ved at bruge sin relationelle databaseindsigt. Han gik sammen med Boyce for at definere BCNF.
Kandidatnøgler og BCNF
En kandidatnøgle er en kolonne eller kombination af kolonner i en tabel, der danner en unik nøgle i databasen. Kombinationen af attributter identificerer en databasepost uden at henvise til andre data. Hver tabel kan indeholde flere kandidatnøgler, hvoraf enhver kan kvalificere sig som den primære nøgle. En tabel indeholder kun én primær nøgle.
Kandidatnøgler skal være unikke.
En relation er i BCNF, hvis hver determinant er en kandidatnøgle. Overvej en databasetabel, der gemmer medarbejderoplysninger og har attributterne,,, og.
I denne tabel bestemmer feltet fornavn og efternavn. På samme måde bestemmer tupelen (,).
Medarbejder-id | Fornavn | Efternavn | Titel |
13133 | Emily | Smith | Manager |
13134 | Jim | Smith | Associate |
13135 | Emily | Jones | Associate |
Kandidatnøglen til denne database er, fordi det er den eneste værdi, der ikke kan bruges af en anden række.
FAQ
Hvad er kravene til Boyce-Codd Normal Form?
En tabel opfylder Boyce-Codd Normal Form (BCNF) kravene, hvis alle determinanter er kandidatnøgler, og relationen er i Third Normal Form (3NF). 3NF opfylder reglerne for First Normal Form (1NF) og Second Normal Form (2NF), og alle kolonner er afhængige af den primære nøgle.
Hvad er forskellen mellem fjerde normalform og Boyce-Codd normalform?
Fjerde Normal Form (4NF) er et niveau efter Boyce-Codd Normal Form (BCNF) i databasenormalisering. 4NF opfylder 3NF krav ligesom BCNF gør. 4NF-tabeller har dog ingen afhængigheder med flere værdier eller mange-til-en-relationer, mens BCNF-tabeller kan have disse afhængigheder.