Skip to main content

Grunnleggende om database normalisering

Relasjonsdatabaser: En-til-mange relasjon (April 2025)

Relasjonsdatabaser: En-til-mange relasjon (April 2025)
Anonim

Hvis du har jobbet med databaser for en stund, har du sjansen til at du har hørt begrepet normalisering. Kanskje noen spurte deg "Er den databasen normalisert?" eller "Er det i BCNF?" Normalisering er ofte børstet til side som en luksus som bare akademikere har tid til. Det er imidlertid ikke så komplisert å kjenne prinsippene for normalisering og å bruke dem på de daglige databasedesignoppgavene, og det kan drastisk forbedre ytelsen til DBMS.

I denne artikkelen vil vi introdusere begrepet normalisering og ta en kort titt på de vanligste vanlige skjemaene.

Hva er normalisering?

Normalisering er prosessen med å organisere data effektivt i en database. Det er to mål for normaliseringsprosessen: eliminere overflødige data (for eksempel lagring av de samme dataene i mer enn ett bord) og at dataavhengighetene er fornuftige (bare lagring av relaterte data i et bord). Begge disse er verdige mål, da de reduserer mengden plass en database bruker og sikrer at dataene lagres logisk.

De vanlige skjemaene

Databasegruppen har utviklet en rekke retningslinjer for å sikre at databaser blir normalisert. Disse refereres til som vanlige skjemaer og er nummerert fra en (den laveste form for normalisering, referert til som første normal form eller 1NF) gjennom fem (femte normal form eller 5NF). I praktiske applikasjoner vil du ofte se 1NF, 2NF og 3NF sammen med sporadisk 4NF. Den femte normale formen er svært sjelden sett og vil ikke bli diskutert i denne artikkelen.

Før vi begynner å diskutere de vanlige skjemaene, er det viktig å påpeke at de kun er retningslinjer og retningslinjer. Av og til blir det nødvendig å gå fra dem for å møte praktiske forretningsbehov. Men når variasjoner finner sted, er det ekstremt viktig å vurdere eventuelle mulige forandringer de kan ha på systemet, og ta hensyn til mulige inkonsekvenser. Når det er sagt, la oss utforske de vanlige skjemaene.

Første Normal Form (1NF)

Første normal form (1NF) angir de grunnleggende reglene for en organisert database:

  • Eliminer duplikativ kolonner fra samme tabell.
  • Opprett separate tabeller for hver gruppe relaterte data og identifiser hver rad med en unik kolonne eller sett med kolonner (primærnøkkelen).

Second Normal Form (2NF)

Andre normale form (2NF) adresserer videre begrepet fjerning av duplikatdata:

  • Møt alle kravene til den første vanlige formen.
  • Fjern delsett av data som gjelder for flere rader i et bord og legg dem i separate tabeller.
  • Opprett relasjoner mellom disse nye tabellene og deres forgjengere ved bruk av utenlandske nøkler.

Tredje normal form (3NF)

Tredje normal form (3NF) går et stort skritt videre:

  • Møt alle kravene til den andre vanlige formen.
  • Fjern kolonner som ikke er avhengige av primærnøkkelen.

Boyce-Codd Normal Form (BCNF eller 3.5NF)

Den Boyce-Codd Normal Form, også referert til som "tredje og halve (3.5) normal form", legger til et ytterligere krav:

  • Møt alle kravene i den tredje normale form.
  • Hver determinant må være en kandidatnøkkel.

Fjerde Normal Form (4NF)

Endelig har fjerde normal form (4NF) ett ekstra krav:

  • Møt alle kravene i den tredje normale form.
  • Et forhold er i 4NF hvis det ikke har flere verdifulle avhengigheter.

Husk at disse standardiseringsretningslinjene er kumulative. For en database å være i 2NF, må den først oppfylle alle kriteriene i en 1NF database.

Skal jeg normalisere?

Mens database normalisering er ofte en god ide, er det ikke et absolutt krav. Faktisk er det noen tilfeller der bevisst brudd på regler for normalisering er en god praksis. For mer om dette emnet, les Bør jeg normalisere databasen min?

Hvis du vil sørge for at databasen din er normalisert, begynn med å lære hvordan du legger databasen til First Normal Form.