Hva er normalisering?
Normalisering er en teknikk for databasedesign som reduserer dataredundans og eliminerer uønskede egenskaper som innsetting, oppdatering og sletting av anomalier. Normaliseringsregler deler større tabeller i mindre tabeller og kobler dem ved hjelp av relasjoner. Formålet med normalisering i SQL er å eliminere overflødige (repeterende) data og sikre at data lagres logisk.
Oppfinneren av relasjonsmodellen Edgar Codd foreslo teorien om normalisering av data med innføringen av First Normal Form, og han fortsatte å utvide teorien med Second and Third Normal Form. Senere sluttet han seg til Raymond F. Boyce for å utvikle teorien om Boyce-Codd Normal Form.
Database normale skjemaer
Her er en liste over normale skjemaer
- 1NF (første normale skjema)
- 2NF (andre normale form)
- 3NF (tredje normalform)
- BCNF (Boyce-Codd Normal Form)
- 4NF (fjerde normalform)
- 5NF (femte normalform)
- 6NF (sjette normale form)
Theory of Data Normalization i SQL server er fortsatt under utvikling. For eksempel er det diskusjoner selv om 6 th Normal Form. Imidlertid oppnår normalisering i de fleste praktiske applikasjoner sitt beste i 3. normalform . Utviklingen av SQL Normaliseringsteorier er illustrert nedenfor -

Database Normalisering med eksempler
Eksempel på normalisering av databaser kan lett forstås ved hjelp av en casestudie. Anta at et videobibliotek har en database med leide filmer. Uten normalisering i databasen lagres all informasjon i en tabell som vist nedenfor. La oss forstå normalisering i database med tabelleksempel:
Her ser du filmer leid kolonne har flere verdier. La oss nå gå inn i første normale skjemaer:
1NF (First Normal Form) regler
- Hver tabellcelle skal inneholde en enkelt verdi.
- Hver plate må være unik.
Ovenstående tabell i 1NF-
1NF Eksempel
La oss forstå et par ting før vi fortsetter -
Hva er en nøkkel?
En nøkkel er en verdi som brukes til å identifisere en post i en tabell unikt. En nøkkel kan være en enkelt kolonne eller en kombinasjon av flere kolonner
Merk: Kolonner i en tabell som IKKE brukes til å identifisere en post unikt, kalles ikke-nøkkelkolonner.
Hva er en primærnøkkel?

En primær er en enkelt kolonneverdi som brukes til å identifisere en databaseoppføring unikt.
Den har følgende attributter
- En primærnøkkel kan ikke være NULL
- En primær nøkkelverdi må være unik
- De primære nøkkelverdiene bør sjelden endres
- Primærnøkkelen må gis en verdi når en ny post settes inn.
Hva er sammensatt nøkkel?
En sammensatt nøkkel er en primærnøkkel som består av flere kolonner som brukes til å identifisere en post unikt
I databasen vår har vi to personer med samme navn Robert Phil, men de bor forskjellige steder.
Derfor krever vi både fullt navn og adresse for å identifisere en post unikt. Det er en sammensatt nøkkel.
La oss gå inn i andre normalform 2NF
2NF (Second Normal Form) Regler
- Regel 1- Vær i 1NF
- Regel 2 - Primærnøkkel for én kolonne
Det er klart at vi ikke kan gå videre for å gjøre vår enkel database i 2 nd Normalisering skjema med mindre vi partisjonere tabellen ovenfor.
Vi har delt vår 1NF-tabell i to tabeller, nemlig. Tabell 1 og tabell 2. Tabell 1 inneholder medlemsinformasjon. Tabell 2 inneholder informasjon om leide filmer.
Vi har introdusert en ny kolonne kalt Membership_id, som er den viktigste nøkkelen for tabell 1. Postene kan identifiseres unikt i tabell 1 ved hjelp av medlems-ID
Database - utenlandsk nøkkel
I tabell 2 er Membership_ID den utenlandske nøkkelen
Foreign Key refererer til hovednøkkelen til en annen tabell! Det hjelper deg med å koble bordene dine
- En utenlandsk nøkkel kan ha et annet navn fra hovednøkkelen
- Det sikrer at rader i en tabell har tilsvarende rader i en annen
- I motsetning til primærnøkkelen trenger de ikke å være unike. Ofte er de ikke det
- Utenlandske nøkler kan være null selv om primære nøkler ikke kan
Hvorfor trenger du en utenlandsk nøkkel?
Anta at en nybegynner setter inn en plate i tabell B som
Du vil bare kunne sette inn verdier i den utenlandske nøkkelen som finnes i den unike nøkkelen i overordnet tabell. Dette hjelper til med referanseintegritet.
Ovennevnte problem kan løses ved å erklære medlems-ID fra Table2 som utenlandsk nøkkel for medlems-ID fra Table1
Nå, hvis noen prøver å sette inn en verdi i medlems-ID-feltet som ikke finnes i foreldretabellen, vil en feil vises!
Hva er transitive funksjonelle avhengigheter?
En transitiv funksjonell avhengighet er når du endrer en ikke-nøkkelkolonne, og kan føre til at noen av de andre ikke-nøkkelkolonnene endres
Tenk på tabellen 1. Endring av ikke-nøkkelkolonnen Fullt navn kan endre hilsen.
La oss gå inn i 3NF
3NF-regler (tredje normale form)
- Regel 1- Vær i 2NF
- Regel 2 - Har ingen overgangsfunksjonelle avhengigheter
For å flytte 2NF-bordet vårt til 3NF, må vi igjen dele bordet vårt.
3NF Eksempel
Nedenfor er et 3NF-eksempel i SQL-database:
Vi har igjen delt bordene våre og laget et nytt bord som lagrer Salutations.
Det er ingen overgangsfunksjonelle avhengigheter, og derfor er bordet vårt i 3NF
I tabell 3 Hilsnings-ID er primærnøkkel, og i tabell 1 Hilsnings-ID er fremmed for primærnøkkel i tabell 3
Nå er vårt lille eksempel på et nivå som ikke videre kan spaltes for å oppnå høyere normale former for normalisering. Faktisk er det allerede i høyere normaliseringsformer. Separat innsats for å flytte til neste nivåer av normalisering av data er normalt nødvendig i komplekse databaser. Imidlertid vil vi diskutere neste nivåer av normalisering i det følgende.
BCNF (Boyce-Codd Normal Form)
Selv når en database er i tredje normalform, vil det fremdeles oppstå avvik hvis den har mer enn én kandidatnøkkel .
Noen ganger er BCNF også referert til som 3.5 Normal Form.
4NF-regler (fjerde normalform)
Hvis ingen databasetabell eksempel inneholder to eller flere, uavhengige og flere verdier data som beskriver den aktuelle enhet, så er det i 4 th normale form.
5NF-regler (femte normalform)
En tabell er i 5 th Normal Form bare hvis det er i 4NF og det kan ikke deles opp i en rekke mindre bord uten tap av data.
6NF (sjette normalform) foreslått
6 th Normal Form er ikke standardisert, men likevel, det blir diskutert av database eksperter i noen tid. Forhåpentligvis vil vi ha en klar og standardisert definisjon for 6 th Normal Form i nær fremtid ...
Det er alt for SQL Normalisering!
Sammendrag
- Databasedesign er avgjørende for vellykket implementering av et databasestyringssystem som oppfyller datakravene til et foretakssystem.
- Normaliseringsprosessen i DBMS hjelper til med å produsere databasesystemer som er kostnadseffektive og har bedre sikkerhetsmodeller.
- Funksjonelle avhengigheter er en veldig viktig komponent i normaliseringsdataprosessen
- De fleste databasesystemer er normalisert database opp til de tredje normale skjemaene.
- En primærnøkkel som unikt identifiserer er registrert i en tabell og kan ikke være null
- En fremmed nøkkel hjelper deg med å koble til tabell og refererer til en primærnøkkel