En stor database defineret som en enkelt relation kan resultere i dataduplikering. Denne gentagelse af data kan resultere i:
- Gør relationerne meget store.
- Det er ikke nemt at vedligeholde og opdatere data, da det ville indebære søgning i mange poster i relation til.
- Spild og dårlig udnyttelse af diskplads og ressourcer.
- Sandsynligheden for fejl og uoverensstemmelser øges.
Så for at håndtere disse problemer bør vi analysere og dekomponere relationerne med overflødige data til mindre, enklere og velstrukturerede relationer, der opfylder ønskelige egenskaber. Normalisering er en proces med at nedbryde relationerne til relationer med færre egenskaber.
Hvad er normalisering?
- Normalisering er processen med at organisere dataene i databasen.
- Normalisering bruges til at minimere redundansen fra en relation eller et sæt af relationer. Det bruges også til at eliminere uønskede egenskaber som indsættelses-, opdaterings- og sletningsanomalier.
- Normalisering opdeler den større tabel i mindre og forbinder dem ved hjælp af relationer.
- Den normale form bruges til at reducere redundans fra databasetabellen.
Hvorfor har vi brug for normalisering?
Hovedårsagen til at normalisere relationerne er at fjerne disse anomalier. Manglende eliminering af uregelmæssigheder fører til dataredundans og kan forårsage dataintegritet og andre problemer, efterhånden som databasen vokser. Normalisering består af en række retningslinjer, der er med til at guide dig til at skabe en god databasestruktur.
Datamodifikationsanomalier kan kategoriseres i tre typer:
Typer af normale former:
Normalisering fungerer gennem en række stadier kaldet normale former. Normalformerne gælder for individuelle relationer. Relationen siges at være i særlig normal form, hvis den opfylder begrænsninger.
Følgende er de forskellige typer af normale former:
Normal Form | Beskrivelse |
---|---|
1NF | En relation er i 1NF, hvis den indeholder en atomværdi. |
2NF | En relation vil være i 2NF, hvis den er i 1NF, og alle ikke-nøgleattributter er fuldt funktionelle afhængige af den primære nøgle. |
3NF | En relation vil være i 3NF, hvis den er i 2NF, og der ikke eksisterer nogen overgangsafhængighed. |
BCNF | En stærkere definition af 3NF er kendt som Boyce Codds normale form. |
4NF | En relation vil være i 4NF, hvis den er i Boyce Codds normale form og ikke har nogen afhængighed med flere værdier. |
5NF | En relation er i 5NF. Hvis det er i 4NF og ikke indeholder nogen join-afhængighed, bør joining være tabsfri. |
Fordele ved normalisering
- Normalisering hjælper med at minimere dataredundans.
- Større overordnet databaseorganisation.
- Datakonsistens i databasen.
- Meget mere fleksibelt databasedesign.
- Håndhæver begrebet relationel integritet.
Ulemper ved normalisering
- Du kan ikke begynde at bygge databasen, før du ved, hvad brugeren har brug for.
- Ydeevnen forringes ved normalisering af relationerne til højere normale former, dvs. 4NF, 5NF.
- Det er meget tidskrævende og vanskeligt at normalisere relationer af højere grad.
- Skødesløs nedbrydning kan føre til et dårligt databasedesign, hvilket fører til alvorlige problemer.