Normalform er en egenskab ved en relation i en relationel datamodel, der karakteriserer den med hensyn til redundans, hvilket potentielt kan føre til logisk fejlagtige resultater af stikprøveudtagning eller ændring af data. Normalform er defineret som det sæt af krav, som en relation skal opfylde.
Processen med at konvertere databaserelationer til en form, der er i overensstemmelse med normale former, kaldes normalisering . Normalisering er beregnet til at bringe strukturen af databasen til en form, der giver minimal logisk redundans, og er ikke beregnet til at reducere eller øge ydeevnen eller reducere eller øge den fysiske volumen af databasen [1] . Det ultimative mål med normalisering er at reducere den potentielle inkonsistens af de oplysninger, der er lagret i databasen. Som bemærket af K. Date [2] er det generelle formål med normaliseringsprocessen som følger:
Redundans elimineres sædvanligvis ved at dekomponere relationer på en sådan måde, at kun primære fakta er lagret i hver relation (det vil sige fakta, der ikke er afledt af andre lagrede fakta).
Mens normaliseringsideer er meget nyttige til databasedesign, er de på ingen måde et universelt eller udtømmende middel til at forbedre kvaliteten af et databasedesign. Dette skyldes det faktum, at der er for mange forskellige mulige fejl og mangler i databasestrukturen, som ikke kan elimineres ved normalisering. På trods af disse overvejelser er normaliseringsteorien en meget værdifuld præstation af relationel teori og praksis, da den giver videnskabeligt stringente og rimelige kriterier for kvaliteten af et databaseprojekt og formelle metoder til at forbedre denne kvalitet. På denne måde skiller normaliseringsteorien sig skarpt ud på baggrund af rent empiriske designtilgange [3] , som tilbydes i andre datamodeller . Desuden kan det hævdes, at der inden for hele informationsteknologiområdet praktisk talt ikke findes metoder til at evaluere og forbedre designløsninger, der er sammenlignelige med teorien om normalisering af relationelle databaser med hensyn til niveauet af formel rigor.
Normalisering bliver nogle gange kritiseret med den begrundelse, at "det bare er sund fornuft", og enhver kompetent professionel vil "naturligvis" designe en fuldt normaliseret database uden behov for at anvende afhængighedsteori [4] . Men som Christopher Date påpeger , er normalisering netop principperne for sund fornuft, som en moden designer er styret af i sit sind, det vil sige, at normaliseringsprincipperne er formaliseret sund fornuft . I mellemtiden er det en meget vanskelig opgave at identificere og formalisere principperne om sund fornuft, og succes med at løse den er en betydelig præstation [4] .
Mange forskere deltog i skabelsen og udviklingen af teorien om normalisering. Imidlertid foreslog E. Codd [4] de første tre normale former og begrebet funktionel afhængighed .
En relationsvariabel er i første normalform (1NF), hvis og kun hvis , i en hvilken som helst gyldig relationsværdi, hver af dens tuples indeholder nøjagtig én værdi for hver af attributterne.
I en relationel model er en relation altid i første normal form, per definition af begrebet relation . Hvad angår de forskellige tabeller , er de muligvis ikke korrekte repræsentationer af relationer og er derfor muligvis ikke i 1NF.
En relationsvariabel er i anden normalform, hvis og kun hvis den er i første normalform, og hver ikke-nøgleattribut er irreducerbart (funktionelt komplet) afhængig af dens kandidatnøgle. Funktionelt fuldstændig afhængighed betyder, at hvis kandidatnøglen er sammensat, så afhænger attributten af hele nøglen og ikke afhængig af dens dele.
En relationsvariabel er i tredje normalform, hvis og kun hvis den er i anden normalform, og der ikke er nogen transitive funktionelle afhængigheder af ikke-nøgleattributter til nøgleattributter.
En relationsvariabel er på Boyce-Codd normalform (med andre ord i stærk tredje normalform), hvis og kun hvis hver af dens ikke-trivielle og venstre-irreducerbare funktionelle afhængigheder har en potentiel nøgle som sin determinant .
En relationsvariabel er på fjerde normalform, hvis den er på Boyce-Codd-normalform og ikke indeholder ikke-trivielle flerværdiafhængige afhængigheder .
En relationsvariabel er på femte normalform (med andre ord i projektiv-konnektiv normalform), hvis og kun hvis hver ikke-triviel forbindelsesafhængighed i den er bestemt af denne relations potentielle nøgle(r).
En relationsvariabel er i DKNF, hvis og kun hvis hver begrænsning pålagt den er en logisk konsekvens af domænebegrænsningerne og nøglebegrænsninger pålagt relationsvariablen.
En relationsvariabel er i sjette normalform, hvis og kun hvis den opfylder alle ikke-trivielle joinafhængigheder. Det følger af definitionen, at en variabel er i 6NF, hvis og kun hvis den er irreducerbar, det vil sige, at den ikke kan dekomponeres yderligere uden tab. Hver relationsvariabel, der er i 6NF, er også i 5NF.
Indført af K. Date i sin bog [2] som en generalisering af den femte normalform for en kronologisk database .
normale former | |
---|---|
Database | |
---|---|
Begreber |
|
Objekter | |
Nøgler | |
SQL | |
Komponenter |