Femte normalform
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:
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:
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 |
Omreisende selger | Merke |
---|---|
Trygve Dahl | Acme |
Nina Solheim | Robusto |
Liv Jacobsen | Robusto |
Liv Jacobsen | Acme |
Liv Jacobsen | Nimbus |
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]- ^ S. Krishna (1991). Introduction to Data Base and Knowledge Base Systems. World Scientific. ISBN 9810206208. «The fifth normal form was introduced by Fagin»
- ^ Analysis of normal forms for anchor-tables