En stor database definert som en enkelt relasjon kan resultere i dataduplisering. Denne gjentakelsen av data kan resultere i:
- Gjør relasjonene veldig store.
- Det er ikke lett å vedlikeholde og oppdatere data da det vil innebære å søke i mange poster i forhold.
- Sløsing og dårlig utnyttelse av diskplass og ressurser.
- Sannsynligheten for feil og inkonsekvenser øker.
Så for å håndtere disse problemene, bør vi analysere og dekomponere relasjonene med redundante data til mindre, enklere og velstrukturerte relasjoner som tilfredsstiller ønskelige egenskaper. Normalisering er en prosess for å dekomponere relasjonene til relasjoner med færre attributter.
Hva er normalisering?
- Normalisering er prosessen med å organisere dataene i databasen.
- Normalisering brukes til å minimere redundansen fra en relasjon eller et sett med relasjoner. Den brukes også til å eliminere uønskede egenskaper som innsettings-, oppdaterings- og slettingsanomalier.
- Normalisering deler den større tabellen i mindre og kobler dem ved hjelp av relasjoner.
- Normalformen brukes for å redusere redundans fra databasetabellen.
Hvorfor trenger vi normalisering?
Hovedårsaken til å normalisere relasjonene er å fjerne disse anomaliene. Unnlatelse av å eliminere anomalier fører til dataredundans og kan forårsake dataintegritet og andre problemer etter hvert som databasen vokser. Normalisering består av en rekke retningslinjer som hjelper deg med å lage en god databasestruktur.
Datamodifikasjonsavvik kan kategoriseres i tre typer:
Typer normale former:
Normalisering fungerer gjennom en rekke stadier som kalles normale former. Normalformene gjelder for individuelle relasjoner. Relasjonen sies å være i særlig normal form hvis den tilfredsstiller begrensninger.
Følgende er de forskjellige typene normale former:
Normal form | Beskrivelse |
---|---|
1NF | En relasjon er i 1NF hvis den inneholder en atomverdi. |
2NF | En relasjon vil være i 2NF hvis den er i 1NF og alle ikke-nøkkelattributter er fullt funksjonelle avhengige av primærnøkkelen. |
3NF | En relasjon vil være i 3NF hvis den er i 2NF og ingen overgangsavhengighet eksisterer. |
BCNF | En sterkere definisjon av 3NF er kjent som Boyce Codds normale form. |
4NF | En relasjon vil være i 4NF hvis den er i Boyce Codds normale form og ikke har noen avhengighet med flere verdier. |
5NF | En relasjon er i 5NF. Hvis den er i 4NF og ikke inneholder noen join-avhengighet, bør joining være tapsfri. |
Fordeler med normalisering
- Normalisering bidrar til å minimere dataredundans.
- Større samlet databaseorganisasjon.
- Datakonsistens i databasen.
- Mye mer fleksibel databasedesign.
- Håndhever begrepet relasjonell integritet.
Ulemper med normalisering
- Du kan ikke begynne å bygge databasen før du vet hva brukeren trenger.
- Ytelsen forringes ved normalisering av relasjonene til høyere normalformer, dvs. 4NF, 5NF.
- Det er svært tidkrevende og vanskelig å normalisere relasjoner av høyere grad.
- Uforsiktig dekomponering kan føre til dårlig databasedesign, noe som kan føre til alvorlige problemer.