Femte normalform

Fra Wikipedia, den frie encyklopedi

Femte normalform (5NF), også kjent som projeksjonsskjøt normalform (engelsk: projection–join normal form, PJ/NF ), er en type databasenormalisering designet for å fjerne redundans i relasjonsdatabaser som registrerer fakta med flere verdier ved å isolere flere semantisk relaterte relasjoner.

Det er den endelige normalformen med tanke på å fjerne redundans. En 6NF finnes også, men dens formål er ikke å fjerne redundans, og den blir derfor bare tatt i bruk av noen få datavarehus der det kan være nyttig å gjøre tabeller irreduserbare.

Historie[rediger | rediger kilde]

Den femte normalformen ble først beskrevet i 1979 av Ronald Fagin i konferanseartikkelen Normal forms and relational database operators. [1]

Definisjon[rediger | rediger kilde]

En tabell sies å være på 5NF hvis og bare hvis hver ikke-trivielle skjøteavhengighet i den tabellen er underforstått av kandidatnøklene.

En skjøteavhengighet *{A, B, … Z} på R impliseres av kandidatnøkkelen(e) til R hvis og bare hvis hver av A, B, …, Z er en supernøkkel for R.[2]

Eksempel[rediger | rediger kilde]

Anta følgende eksempel:

Produkter tilgjengelig for omreisende selgere etter merke
Omreisende selger Merke Produkttype
Trygve Dahl Acme Støvsuger
Trygve Dahl Acme Brødboks
Nina Solheim Robusto Beskjæringssaks
Nina Solheim Robusto Støvsuger
Nina Solheim Robusto Brødboks
Nina Solheim Robusto Paraplystativ
Liv Jacobsen Robusto Støvsuger
Liv Jacobsen Robusto Teleskop
Liv Jacobsen Acme Støvsuger
Liv Jacobsen Acme Lavalampe
Liv Jacobsen Nimbus Slipsstativ

Tabellens predikat er: Produkter angitt av produkttype og laget av merke er tilgjengelig fra selgeren omreisende selger.

Primærnøkkelen er sammensetningen av alle tre kolonnene. Legg også merke til at tabellen er i 4NF siden det ikke er noen flervaluerte avhengigheter (2-delte skjøtavhengigheter ) i tabellen, altså ingen kolonne (som i seg selv ikke er en kandidatnøkkel eller en supernøkkel) er en determinant for de to andre kolonnene.

I fravær av regler som begrenser de mulige gyldige kombinasjonene av omreisende selger, merke og produkttype er tabellen med tre attributter vist ovenfor nødvendig for å modellere situasjonen riktig.

Anta imidlertid at følgende regel gjelder: En reisende selger har visse merker og visse produkttyper i repertoaret. Hvis merke B1 og merke B2 er i repertoaret deres, og produkttype P er på repertoaret, så (forutsatt at merke B1 og merke B2 begge lager produkttype P), må den reisende selgeren tilby produkter av produkttype P de som er laget av merke B1 og de laget av merke B2.

Isåfall er det mulig å dele tabellen i tre:

Produkttyper per omreisende selger
Omreisende selger Produkttype
Trygve Dahl Støvsuger
Trygve Dahl Brødboks
Nina Solheim Beskjæringssaks
Nina Solheim Støvsuger
Nina Solheim Brødboks
Nina Solheim Paraplystativ
Liv Jacobsen Teleskop
Liv Jacobsen Støvsuger
Liv Jacobsen Lavalampe
Liv Jacobsen Slipsstativ
Merker per omreisende selger
Omreisende selger Merke
Trygve Dahl Acme
Nina Solheim Robusto
Liv Jacobsen Robusto
Liv Jacobsen Acme
Liv Jacobsen Nimbus
Produkttyper etter merke
Merke Produkttype
Acme Støvsuger
Acme Brødboks
Acme Lavalampe
Robusto Beskjæringssaks
Robusto Støvsuger
Robusto Brødboks
Robusto Paraplystativ
Robusto Teleskop
Nimbus Slipsstativ

I dette tilfellet er det umulig for Liv Jacobsen å nekte å tilby støvsugere laget av Acme (forutsatt at Acme lager støvsugere) hvis hun selger noe annet laget av Acme (lavalampe) og hun også selger støvsugere laget av et annet merke (Robusto).

Dette oppsettet bidrar til å fjerne redundans. Anta at Trygve Dahl begynner å selge Robusto-produktene brødbokser og støvsugere. I det forrige oppsettet måtte vi legge til to nye oppføringer, én for hver produkttype (<Trygve Dahl, Robusto, brødbokser>, <Trygve Dahl, Robusto, støvsugere>). Med det nye oppsettet trenger vi bare å legge til en enkelt oppføring (<Trygve Dahl, Robusto>) under "Merker per omreisende selger".

Bruk[rediger | rediger kilde]

Bare i sjeldne situasjoner samsvarer ikke en 4NF-tabell med 5NF, som for eksempel når de dekomponerte tabellene er sykliske. Dette er situasjoner der en kompleks begrensning fra den virkelige verden som styrer de gyldige kombinasjonene av attributtverdier i 4NF-tabellen ikke er implisitt i strukturen til tabellen. Hvis en slik tabell ikke er normalisert til 5NF må byrden med å opprettholde den logiske konsistensen til dataene i tabellen delvis bæres av applikasjonen som er ansvarlig for innsetting, sletting og oppdateringer, og det er en økt risiko for at dataene i tabellen blir inkonsistente. Derimot utelukker 5NF-designet muligheten for slike inkonsekvenser.

En tabell T er på femte normalform (5NF) hvis den ikke kan ha en tapsfri dekomponering til et hvilket som helst antall mindre tabeller. Tilfellet der alle de mindre tabellene etter dekomponeringene har samme kandidatnøkkel som tabellen T er ekskludert.

Se også[rediger | rediger kilde]

Referanser[rediger | rediger kilde]

  1. ^ S. Krishna (1991). Introduction to Data Base and Knowledge Base Systems. World Scientific. ISBN 9810206208. «The fifth normal form was introduced by Fagin» 
  2. ^ Analysis of normal forms for anchor-tables