Hva er normalisering? 1NF, 2NF, 3NF, BCNF Databaseeksempel

Innholdsfortegnelse:

Anonim

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 normale skjemaer

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