NormalisatieNormalisatie wordt uitgevoerd om twee redenen:
Afgeleide voordeel van de eerste is borging van de beheersbaarheid van software.
Termen
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 NormaalvormDe eerste normaalvorm stelt dat iedere eigenschap slechts één waarde mag bevatten. Iedere eigenschap bevat één instantie.
Tweede NormaalvormIeder 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 NormaalvormIeder 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 NormaalvormDe 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.
Vierde NormaalvormDe sleutel mag niet twee of meer eigenschappen bevatten met meerdere instanties (multivalue redundantie).
Vijfde NormaalvormDe relatie voldoet aan de vijfde normaalvorm wanneer deze niet
bij opgesplitste entiteiten door een join zou zijn samen te stellen.
Normalisatie in de prakijkDe 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. |
|
|