Målet med Boyce-Codd Normal Form är att öka dataintegriteten genom att organisera kolumnerna och tabellerna i en relationsdatabas för att uppnå databasnormalisering. Databasnormalisering sker när det finns etablerade relationer mellan tabeller och när tabellerna har definierade regler för att göra databasen mer flexibel och för att bevara data.
Målen med databasnormalisering är att eliminera överflödig data och att säkerställa att databeroende är vettiga. En databas normaliseras när samma data inte lagras i mer än en tabell och när endast relaterad data lagras i en tabell.
Ursprunget till Boyce-Codds normala form
Att följa en rad riktlinjer säkerställer att databaser är normaliserade. Dessa riktlinjer kallas normala former och är numrerade från ett till fem. En relationsdatabas beskrivs som normaliserad om den uppfyller de tre första formerna: 1NF, 2NF och 3NF.
BCNF skapades som en förlängning av den tredje normala formen, eller 3NF, 1974 av Raymond Boyce och Edgar Codd. Männen arbetade med att skapa databasscheman som minimerar redundanser med målet att minska beräkningstiden. Den tredje normalformen tar bort kolumner som inte är beroende av primärnyckeln förutom att de uppfyller riktlinjerna i den första och andra normalformen. BCNF, som ibland kallas 3.5NF, uppfyller alla krav i 3NF och kräver att kandidatnycklar inte är beroende av andra attribut i en tabell.
Vid tidpunkten för BCNF:s skapelse var Boyce en av nyckelutvecklarna av Structured English Query Language, senare standardiserat som SQL, vilket förbättrade datahämtning genom att använda Codds relationsmodell. I den här modellen hävdade Codd att strukturell komplexitet hos databaser kunde reduceras, vilket innebar att frågor kunde vara mer kraftfulla och flexibla.
Med hjälp av sina relationsdatabasinsikter definierade Codd 1NF, 2NF och 3NF riktlinjer. Han samarbetade med Boyce för att definiera BCNF.
Kandidatnycklar och BCNF
En kandidatnyckel är en kolumn eller kombination av kolumner i en tabell som bildar en unik nyckel i databasen. Kombinationen av attribut identifierar en databaspost utan att hänvisa till någon annan data. Varje tabell kan innehålla flera kandidatnycklar, varav vilken som helst kan kvalificera sig som primärnyckel. En tabell innehåller bara en primärnyckel.
Kandidatnycklar måste vara unika.
En relation finns i BCNF om varje determinant är en kandidatnyckel. Tänk på en databastabell som lagrar personalinformation och har attributen,,, och.
I den här tabellen bestämmer fältet förnamn och efternamn. På samma sätt bestämmer tupeln (,).
Anställd-ID | Förnamn | Efternamn | Titel |
13133 | Emily | Smith | Manager |
13134 | Jim | Smith | Associate |
13135 | Emily | Jones | Associate |
Kandidatnyckeln för denna databas är eftersom det är det enda värdet som inte kan användas av en annan rad.
FAQ
Vilka är kraven för Boyce-Codd Normal Form?
En tabell uppfyller Boyce-Codd Normal Form (BCNF) krav om alla determinanter är kandidatnycklar och relationen är i Third Normal Form (3NF). 3NF uppfyller reglerna för First Normal Form (1NF) och Second Normal Form (2NF), och alla kolumner är beroende av primärnyckeln.
Vad är skillnaden mellan fjärde normalform och Boyce-Codd normalform?
Fjärde normalformen (4NF) är en nivå efter Boyce-Codds normalform (BCNF) i databasnormalisering. 4NF uppfyller 3NF-kraven precis som BCNF gör. Däremot har 4NF-tabeller inga beroenden med flera värden, eller många-till-en-relationer, medan BCNF-tabeller kan ha dessa beroenden.