Home   Contact  Zoeken

Normalisatie

Normalisatie wordt uitgevoerd om twee redenen:

  • De borging van integriteit van gegevens (belangrijkste reden).

  • De borging van prestaties.

Afgeleide voordeel van de eerste is borging van de beheersbaarheid van software.

 

Termen

Entiteit

De abstractie van een onderwerp uit de werkelijke wereld (Populair: Een object).

Eigenschap

Een eigenschap van een entiteit (De formele benaming is overigens attribuut).

Instantie

Een invulling van een gegeven (Een waarde).

Sleutel

Een identificerende eigenschap (zoals een SOFI-nummer).

Functionele afhankelijkheid

Een eigenschap B is functioneel afhankelijk van eigenschap A wanneer een instantie van eigenschap A  een instantie van eigenschap B impliceert, te noteren als:

     A -> B

 In eenvoudiger taalgebruik: Is A bepaalt B.

Wanneer over normalisatie stappen wordt gesproken worden verzamelingen eigenschappen (entiteiten) aangeduid met de term relatie. Tussen tabellen heeft de term relatie een andere betekenis.

 

Eerste Normaalvorm

De eerste normaalvorm stelt dat iedere eigenschap slechts één waarde mag bevatten.

Iedere eigenschap bevat één instantie.

 

Tweede Normaalvorm

Ieder niet identificerende eigenschap moet afhankelijk zijn van de sleutel. De tweede normaalvorm speelt alleen een rol bij een samengestelde sleutel. De regel houdt in dat geen enkele eigenschap afhankelijk mag zijn van een deel van de sleutel, maar afhankelijk moet zijn van de gehele sleutel.

 Voor sleutel S en alle eigenschappen A geldt: S -> A

 

Derde Normaalvorm

Ieder niet identificerende eigenschap is volledig afhankelijk van de totale sleutel en niet van andere eigenschappen (Dit laatste heet transitief afhankelijk). Wanneer een entiteit met één identificerende eigenschap (enkelvoudige sleutel) aan de tweede normaalvorm voldoet, voldoet de entiteit ook aan de derde normaalvorm.

Er zijn geen eigenschappen A, A' waarvoor geldt: A -> A'.

Zowel tweede als derde normaalvorm kunnen worden bereikt door eigenschappen af te splitsen die niet afhankelijk zijn van de gehele sleutel.

 

BCNF Normaalvorm

De Boyce-Codd normaalvorm is gelijk aan de derde normaalvorm maar kent een strictere definitie voor transitieve afhankelijkheid: Ook niet voor de hand liggende (niet triviale) transitieve afhankelijkheden moeten worden geëlimineerd. 
Goed voorbeeld hiervan is het netnummer van een stad: Is de stad bekend, dan is ook het netnummer bekend. 
BCNF richt zich op het elimineren van functionele afhankelijkheden die binnen een kader van een informatiesysteem niet bestaan, maar in de praktijk wel.

 

Vierde Normaalvorm

De sleutel mag niet twee of meer eigenschappen bevatten met meerdere instanties (multivalue redundantie).

 

Vijfde Normaalvorm

De relatie voldoet aan de vijfde normaalvorm wanneer deze niet bij opgesplitste entiteiten door een join zou zijn samen te stellen. 
De normaalvorm heeft enkel betrekking op een samengestelde sleutel.

 

Normalisatie in de prakijk

De vierde en vijfde normaalvorm worden in de praktijk alleen toegepast wanneer dit al voor de hand ligt. De vierde geeft schijfruimte-verlies en de vijfde vrijwel gegarandeerd prestatieverlies.

Relaties in de 3e normaalvorm of BCNF zijn daarentegen vaak een vereiste in verband met de toegangstijden en redundantie.

Één van de meest amusante en wellicht ook voorkomende problemen in de database-wereld is over-normalisatie (zonder oog voor prestaties en pragmatiek). Normalisatie is één manier om gegevens integer te houden, maar niet de enige.

 


www.siemons.info
© Copyright William Siemons, Netherlands 2001-2007. 
Counter