Hvad er normalisering?
Normalisering er en teknik til databasedesign, der reducerer dataredundans og eliminerer uønskede karakteristika som indsættelse, opdatering og sletningsanomalier. Normaliseringsregler opdeler større tabeller i mindre tabeller og forbinder dem ved hjælp af relationer. Formålet med normalisering i SQL er at fjerne overflødige (gentagne) data og sikre, at data lagres logisk.
Opfinderen af relationsmodellen Edgar Codd foreslog teorien om normalisering af data med introduktionen af den første normale form, og han fortsatte med at udvide teorien med anden og tredje normale form. Senere sluttede han sig til Raymond F. Boyce for at udvikle teorien om Boyce-Codd Normal Form.
Database normale formularer
Her er en liste over normale formularer
- 1NF (første normale form)
- 2NF (anden normal form)
- 3NF (tredje normale form)
- BCNF (Boyce-Codd Normal Form)
- 4NF (fjerde normal form)
- 5NF (femte normal form)
- 6NF (sjette normale form)
Teorien om datanormalisering i SQL-server er stadig under videreudvikling. For eksempel er der diskussioner selv på 6 th normalform. Men i de fleste praktiske anvendelser, normalisering opnår, det er bedst i 3 rd normalform . Udviklingen af SQL Normaliseringsteorier er illustreret nedenfor -

Databasens normalisering med eksempler
Eksempel på database- normalisering kan let forstås ved hjælp af en casestudie. Antag, et videobibliotek vedligeholder en database med lejede film. Uden normalisering i databasen gemmes al information i en tabel som vist nedenfor. Lad os forstå normalisering i database med tabelleeksempel:
Her ser du Film Lejet kolonne har flere værdier. Lad os nu gå ind i 1. normale formularer:
1NF-regler (første normale form)
- Hver tabelcelle skal indeholde en enkelt værdi.
- Hver post skal være unik.
Ovenstående tabel i 1NF-
1NF Eksempel
Lad os forstå et par ting, inden vi fortsætter -
Hvad er en nøgle?
En nøgle er en værdi, der bruges til at identificere en post i en tabel entydigt. En nøgle kan være en enkelt kolonne eller en kombination af flere kolonner
Bemærk: Kolonner i en tabel, der IKKE bruges til at identificere en post entydigt, kaldes ikke-nøglekolonner.
Hvad er en primær nøgle?

En primær er en enkelt søjleværdi, der bruges til at identificere en databasepost entydigt.
Det har følgende attributter
- En primær nøgle kan ikke være NULL
- En primær nøgleværdi skal være unik
- De primære nøgleværdier bør sjældent ændres
- Den primære nøgle skal have en værdi, når en ny post indsættes.
Hvad er sammensat nøgle?
En sammensat nøgle er en primær nøgle sammensat af flere kolonner, der bruges til at identificere en post entydigt
I vores database har vi to personer med samme navn Robert Phil, men de bor forskellige steder.
Derfor kræver vi både fuldt navn og adresse for at identificere en post entydigt. Det er en sammensat nøgle.
Lad os gå ind i anden normal form 2NF
2NF-regler (anden normal form)
- Regel 1- Vær i 1NF
- Regel 2 - Primærnøgle til en kolonne
Det er klart, at vi ikke kan gå videre for at lave vores enkle database i 2. normaliseringsform, medmindre vi partitionerer tabellen ovenfor.
Vi har delt vores 1NF-tabel i to tabeller, nemlig. Tabel 1 og Tabel 2. Tabel 1 indeholder medlemsoplysninger. Tabel 2 indeholder oplysninger om lejede film.
Vi har introduceret en ny kolonne kaldet Membership_id, som er den primære nøgle til tabel 1. Records kan identificeres entydigt i tabel 1 ved hjælp af medlems-id
Database - fremmed nøgle
I tabel 2 er Membership_ID den udenlandske nøgle
Foreign Key refererer til den primære nøgle i en anden tabel! Det hjælper med at forbinde dine tabeller
- En fremmed nøgle kan have et andet navn end dens primære nøgle
- Det sikrer, at rækker i en tabel har tilsvarende rækker i en anden
- I modsætning til primærnøglen behøver de ikke være unikke. Oftest er de ikke
- Udenlandske nøgler kan være nul, selvom primære nøgler ikke kan
Hvorfor har du brug for en fremmed nøgle?
Antag, at en novice indsætter en post i tabel B som f.eks
Du kan kun indsætte værdier i din fremmede nøgle, der findes i den unikke nøgle i overordnet tabellen. Dette hjælper med henvisning integritet.
Ovenstående problem kan løses ved at erklære medlemskabs-id fra tabel2 som fremmed nøgle til medlemskabs-id fra tabel1
Hvis nogen nu prøver at indsætte en værdi i medlems-id-feltet, der ikke findes i overordnet tabel, vises der en fejl!
Hvad er transitive funktionelle afhængigheder?
En transitiv funktionel afhængighed er, når du ændrer en ikke-nøglekolonne, hvilket kan få nogen af de andre ikke-nøglekolonner til at ændre sig
Overvej tabellen 1. Ændring af ikke-nøglekolonnen Fuldt navn kan ændre hilsen.
Lad os gå ind i 3NF
3NF-regler (tredje normale form)
- Regel 1- Vær i 2NF
- Regel 2 - Har ingen transitive funktionelle afhængigheder
For at flytte vores 2NF-tabel til 3NF skal vi igen opdele vores tabel igen.
3NF Eksempel
Nedenfor er et 3NF-eksempel i SQL-database:
Vi har igen delt vores tabeller og oprettet en ny tabel, der gemmer Salutations.
Der er ingen transitive funktionelle afhængigheder, og derfor er vores tabel i 3NF
I tabel 3 Hilsen-ID er primær nøgle, og i tabel 1 Hilsen-ID er fremmed for den primære nøgle i tabel 3
Nu er vores lille eksempel på et niveau, der ikke længere kan nedbrydes for at opnå højere normale former for normalisering. Faktisk er det allerede i højere normaliseringsformer. Separat indsats for at flytte til næste niveau for normalisering af data er normalt nødvendigt i komplekse databaser. Vi vil imidlertid diskutere de næste niveauer af normaliseringer i det følgende.
BCNF (Boyce-Codd Normal Form)
Selv når en database er i 3 rd normalform, der stadig ville være anomalier resulterede hvis det har mere end én kandidat nøgle.
Nogle gange kaldes BCNF også 3,5 normal form.
4NF (fjerde normale form) regler
Hvis der ikke databasetabellen eksempel indeholder to eller flere, uafhængige og med flere værdier data, der beskriver den relevante enhed, så er det i 4 th normalform.
5NF-regler (femte normale form)
En tabel er i 5 th normalform, hvis den er i 4NF og det kan ikke opdeles i et antal mindre borde uden tab af data.
6NF (sjette normale form) Foreslået
6 th normalform ikke er standardiseret, men dog det bliver drøftet af database-eksperter i nogen tid. Forhåbentlig vil vi have en klar og standardiseret definition for 6 th normalform i den nærmeste fremtid ...
Det er alt sammen med SQL Normalization !!!
Resumé
- Databasedesign er afgørende for en vellykket implementering af et databasestyringssystem, der opfylder datakravene i et virksomhedssystem.
- Normaliseringsprocessen i DBMS hjælper med at producere databasesystemer, der er omkostningseffektive og har bedre sikkerhedsmodeller.
- Funktionelle afhængigheder er en meget vigtig komponent i normaliseringsdataprocessen
- De fleste databasesystemer er normaliseret database op til de tredje normale former.
- En primær nøgle, der entydigt identificeres, er registreret i en tabel og kan ikke være null
- En fremmed nøgle hjælper med at forbinde tabel og henviser til en primær nøgle