Normalformer

Tilbake

Definisjon av en relasjon

En relasjon er en tabell der:

  1. Radene inneholder data om en entitet (et objekt)
  2. Alle kolonnene har et entydig navn (attributtnavn)
  3. Verdiene i en kolonne er alle av samme type
  4. Kolonnene inneholder data om et attributt (en egenskap) til entiteter
  5. Rutene i tabellen inneholder bare én verdi (atomisk verdi)
  6. Rekkefølgen på kolonnene er uten betydning
  7. Rekkefølgen på radene er uten betydning
  8. To rader kan ikke være like

Det er punkt 5 som er viktig.


Definisjon av en kandidatnøkkel

En kandidatnøkkel er et minimalt sett med attributter i en relasjon som entydig bestemmer en rad i relasjonen.


Definisjon av en primærnøkkel

En primærnøkkel er det bestemte settet med attributter i en relasjon som er valgt blant relasjonens kandidatnøkler.


Definisjon av en fremmednøkkel

En fremmednøkkel i en relasjon er et sett med attributter som opptrer som en primærnøkkel i en annen relasjon.


Definisjon av en determinant

Hvis det er en avengighet mellom attributter i en relasjon der A bestemmer B (A -> B), så er A en determinant. Her kan A og B være et sett med attributter.


Normalformer Normalformene

Figuren til høyre viser alle normalformene, og det er slik at en høyere normalform er fullstendig inneholdt i en lavere normalform. 1NF er den laveste normalformen, og DKNF er den høyeste normalformen. Normalformene 4NF og 5NF har så liten betydning, at de ikke vil bli beskrevet videre her.

Betrakt tabellen Kino(Tid, Sal, Film) med følgende funksjonsdiagram: BCNF (Føringen (Tid, Sal) -> Film kan leses ut fra tabellens definisjon av nøkler, men ikke føringen Film -> Sal). Tabellen er på 3NF, men ikke på BCNF. En tapsfri dekomposisjon av denne tabellen til to tabeller på BCNF er Kino2(Tid, Film) og Film(Film, Sal), med fuksjonsdiagrammet: BCNF2


1NF (første normalform)

Enhver tabell som oppfyller kravet til en relasjon er på 1NF.


2NF (andre normalform)

En relasjon er på 2NF, hvis den er på 1NF, og alle attributter som ikke er en del av primærnøkkelen, er fullstendig avhengig av primærnøkkelen.


3NF (tredje normalform)

En relasjon er på 3NF, hvis den er på 2NF, og det ikke finnes avhengigheter mellom attributter som ikke er en del av primærnøkkelen.


BCNF (Boyce-Codd)

En relasjon er på BCNF, hvis og bare hvis alle determinanter også er en kandidatnøkkel.


DKNF (Domain Key)

En relasjon er på DKNF, hvis alle føringene på relasjonen er en logisk konsekvens av attributtenes domener (verdiområder) og relasjonens nøkler (primær- og fremmednøkler). DKNF forsikrer at tabellene i en database kan oppdateres uavhengig av hverandre.


Tilbake

Valid XHTML 1.0 Strict Valid CSS!