Hvis du har arbejdet med databaser i et stykke tid, er chancerne for, at du har hørt begrebet normalisering. Måske spurgte nogen dig "Er denne database normaliseret?" eller "Er det i BCNF?" Normalisering er ofte børstet til side som en luksus, som kun akademikere har tid til. At kende principperne for normalisering og anvende dem på dine daglige database designopgaver er imidlertid ikke alt det komplicerede, og det kan drastisk forbedre ydeevnen til DBMS.
I denne artikel introducerer vi begrebet normalisering og tager et kort kig på de mest almindelige normale former.
Hvad er normalisering?
Normalisering er processen med at organisere data effektivt i en database. Der er to mål for normaliseringsprocessen: eliminering af overflødige data (f.eks. Lagring af de samme data i mere end en tabel) og sikring af dataafhængigheder giver mening (kun lagring af relaterede data i en tabel). Begge disse er værdige mål, da de reducerer mængden af plads, en database bruger, og sikrer, at data lagres logisk.
De normale formularer
Databasegruppen har udviklet en række retningslinjer for at sikre, at databaser normaliseres. Disse benævnes som normale formularer og er nummereret fra en (den laveste form for normalisering, benævnt første normale formular eller 1NF) gennem fem (femte normale formular eller 5NF). I praktiske applikationer vil du ofte se 1NF, 2NF og 3NF sammen med lejlighedsvis 4NF. Den femte normale form er meget sjældent set og vil ikke blive diskuteret i denne artikel.
Før vi begynder vores diskussion af de normale former, er det vigtigt at påpege, at de kun er retningslinjer og retningslinjer. Af og til bliver det nødvendigt at afvise dem for at opfylde praktiske forretningsbehov. Men når variationer finder sted, er det ekstremt vigtigt at vurdere eventuelle mulige forgreninger, de måtte have på dit system og tage højde for eventuelle uoverensstemmelser. Når det er sagt, lad os undersøge de normale former.
Første Normal Form (1NF)
Første normale formular (1NF) fastsætter de meget grundlæggende regler for en organiseret database:
- Eliminer duplikative kolonner fra samme tabel.
- Opret separate tabeller for hver gruppe relaterede data og identificer hver række med en unik kolonne eller et sæt kolonner (den primære nøgle).
Anden Normal Form (2NF)
Anden normal form (2NF) adresserer yderligere begrebet fjernelse af duplikative data:
- Opfyld alle kravene i den første normale formular.
- Fjern delmængder af data, der gælder for flere rækker af en tabel, og placer dem i separate tabeller.
- Opret forhold mellem disse nye tabeller og deres forgængere ved brug af fremmede nøgler.
Tredje Normal Form (3NF)
Tredje normal form (3NF) går et stort skridt videre:
- Mød alle kravene i den anden normale formular.
- Fjern kolonner, der ikke er afhængige af den primære nøgle.
Boyce-Codd Normal Form (BCNF eller 3.5NF)
Den Boyce-Codd Normal Form, også kaldet "tredje og halve (3.5) normal form", tilføjer endnu et krav:
- Opfyld alle kravene i den tredje normale formular.
- Hver determinant skal være en kandidatnøgle.
Fjerde Normal Form (4NF)
Endelig har fjerde normal form (4NF) et yderligere krav:
- Opfyld alle kravene i den tredje normale formular.
- Et forhold er i 4NF, hvis det ikke har flere værdier afhængigheder.
Husk, at disse retningslinjer for normalisering er kumulative. For at en database skal være i 2NF, skal den først opfylde alle kriterierne i en 1NF database.
Skal jeg normalisere?
Mens database normalisering ofte er en god idé, er det ikke et absolut krav. Faktisk er der nogle tilfælde, hvor bevidst overtrædelse af reglerne for normalisering er en god praksis. For mere om dette emne, læs Skal jeg normalisere min database?
Hvis du vil sikre din database er normaliseret, start med at lære, hvordan du sætter din database ind i First Normal Form.




