Normalisering organiserer data for å redusere redundans og forbedre integriteten. Målet er å lagre hvert faktum én gang. Hvis en kundes adresse vises i hver ordreoppføring, må en adresseendring oppdateres hundrevis av steder. Hvis du glemmer én endring, blir dataene inkonsistente. Normalisering flytter adressen til en kundetabell. Ordrer refererer til kunden etter ID. Adressen lagres én gang. Endre den der, og hver ordre gjenspeiler den nye verdien.
Prosessen følger normale former. Første normalform eliminerer repeterende grupper. Andre normalform fjerner delvise avhengigheter. Tredje normalform fjerner transitive avhengigheter. Hver form legger til begrensninger som reduserer redundans ytterligere. Høyere former finnes, men brukes sjelden i praksis. De fleste transaksjonsdatabaser sikter mot tredje normalform. Normalisering har avveininger. Flere tabeller betyr flere sammenføyninger, noe som kan redusere antall spørringer. For transaksjonssystemer oppveier integritetsfordelene ytelseskostnadene. For analytiske systemer er det motsatte ofte sant. Denormaliserte skjemaer med brede tabeller og redundante kolonner spør raskere fordi de unngår sammenføyninger. Det er derfor datavarehus bruker stjerne- og snøfnuggskjemaer som bevisst denormaliserer. Riktig nivå av normalisering avhenger av arbeidsmengden. Transaksjonssystemer normaliserer. Analytiske systemer denormaliserer. Begge er riktige for sitt formål.
Normale former
- Første normalform — ingen gjentakende grupper
- Andre normalform — ingen delvise avhengigheter
- Tredje normalform — ingen transitive avhengigheter
- Boyce-Codd normalform – strengere versjon av tredje
Normalisering handler om integritet. Lagre hvert faktum én gang, og dataene forblir konsistente. Lagre det mange ganger, og inkonsekvens er uunngåelig.
Comments
No comments yet. Be the first to share a thought.
Leave a comment