Målet med Boyce-Codd Normal Form (BCNF) er å øke dataintegriteten ved å organisere kolonnene og tabellene i en relasjonsdatabase for å oppnå database normalisering. Database normalisering oppstår når det er etablert forhold mellom tabeller og når tabellene har definert regler for å gjøre databasen mer fleksibel og for å bevare dataene.
Målet med database normalisering er å eliminere overflødige data og for å sikre at dataavhengigheter gir mening.
En database blir normalisert når de samme dataene ikke er lagret i mer enn ett bord, og når bare relaterte data lagres i en tabell.
Opprinnelse av Boyce-Codd Normal Form
Følg en rekke retningslinjer for å sikre at databaser blir normalisert. Disse retningslinjene refereres til som vanlige skjemaer og er nummerert fra en til fem. En relasjonsdatabase er beskrevet som normalisert hvis den møter de tre første formene: 1NF, 2NF og 3NF.
BCNF ble opprettet som en forlengelse til tredje normale form, eller 3NF, i 1974 av Raymond Boyce og Edgar Codd. Mennene jobbet for å lage databaseskjemaer som minimaliserer redundans med målet om å redusere beregningstiden. Den tredje vanlige skjemaet fjerner kolonner som ikke er avhengige av primærnøkkelen i tillegg til å følge retningslinjene i første og andre vanlige skjemaer. BCNF, som noen ganger refereres til som 3,5NF, oppfyller alle kravene til 3NF og krever at kandidatnøkler ikke har noen avhengighet av andre attributter i en tabell.
På tidspunktet for BCNFs opprettelse var Boyce en av nøkkelutviklerne av Structured English Query Language (SQL), som forbedret datainnhenting ved å bruke Codds relasjonsmodell. I denne modellen foreslo Codd at strukturelle kompleksitet av databaser kunne bli redusert, noe som medførte at spørringer kunne være kraftigere og mer fleksible.
Ved hjelp av hans relasjonsdatabaseinnsikt, definerte Codd 1NF, 2NF og 3NF retningslinjer. Han lagde sammen med Boyce for å definere BCNF.
Kandidatnøkler og BCNF
En kandidatnøkkel er en kolonne eller kombinasjon av kolonner i et bord som danner en unik nøkkel i databasen. Kombinasjonen av attributter kan brukes til å identifisere en databasepost uten å referere til andre data. Hver tabell kan inneholde flere kandidatnøkler, hvorav noen kan kvalifisere som primærnøkkel. Et bord inneholder bare en primærnøkkel.
Kandidatnøklene må være unike.
Et forhold er i BCNF hvis hver determinant er en kandidatnøkkel. Vurder en database tabell som lagrer ansattes informasjon og har attributter <> >,
I denne tabellen, feltet
Ansatt ID | Fornavn | Etternavn | Tittel |
13133 | Emily | Smith | sjef |
13134 | Jim | Smith | Forbinder |
13135 | Emily | Jones | Forbinder |
Kandidatnøkkelen for denne databasen er