UNIVERSITETET I OSLO Normalformer utover 4NF (ikke pensum) Institutt for Informatikk INF3100 - Ellen Munthe-Kaas 1
Høyere normalformer, oversikt 1NF BCNF 4NF ETNF RFNF = KCNF SKNF 5NF INF3100 - Ellen Munthe-Kaas 2
Normalformer utover 4NF ETNF Essential Tuple Normal Form (Darwen, Date, Fagin 2012) KCNF Key-Complete Normal Form (Maier 1983) RFNF Redundancy Free Normal Form (Vincent 1995) SKNF Superkey Normal Form (Maier 1983) 5NF Femte normalform (Fagin 1979) INF3100 - Ellen Munthe-Kaas 3
Joinavhengigheter La R være en relasjon med attributtene R={A 1,,A k }, og la {C 1,,C m } være en samling av komponenter over R (dvs. C i R for alle i og C 1 C m = R). Vanligvis overlapper hver C i med minst én annen komponent C j (der j i). Vi sier at R tilfredsstiller joinavhengigheten eller JDen (Join Dependency) J = {C 1,,C m } hvis vi for enhver gyldig instans av R har at dekomposisjonen av instansen i henhold til komponentene i J er tapsfri. Enhver gyldig instans i R har altså den egenskapen at hvis vi projiserer den på C 1,,C m, og deretter beregner C 1 C m, så får vi tilbake instansen. INF3100 - Ellen Munthe-Kaas 4
JDer og MVDer Joinavhengigheter gir opphav til en større klasse integritetsregler enn de som kan uttrykkes ved bare FDer og MVDer. Teorem. Hvis m=2, dvs. J= {C 1,C 2 }, så tilfredsstiller R JDen J hvis og bare hvis vi har en MVD X Y der X=C 1 C 2 og Y=C 2 C 1 Dette betyr at en MVD er det samme som en JD med 2 komponenter INF3100 - Ellen Munthe-Kaas 5
Armstrongs slutningsregler og JDer Armstrongs slutningsregler kan ikke utvides til å omfatte JDer: Det finnes intet sunt, komplett og endelig regelsett for JDer. (Det finnes sunne regelsett, men til ethvert slikt regelsett går det alltid an å konstruere eksempelrelasjoner der regelsettet ikke er tilstrekkelig til å vise alt som holder.) INF3100 - Ellen Munthe-Kaas 6
Utgangspunkt for normalformene utover 4NF Alle integritetsregler er i form av FDer og JDer Dette omfatter også MVDer siden alle MVDer kan uttrykkes som JDer Generelt er altså utgangspunktet for alle normalformene en relasjon R der de gyldige instansene er karakterisert ved at de tilfredsstiller en mengde FDer F og en mengde JDer J INF3100 - Ellen Munthe-Kaas 7
Trivielle JDer En JD kalles triviell dersom en av komponentene omfatter samtlige attributter. Trivielle JDer holder for alle instanser uansett hvilke andre FDer og JDer som gjelder. INF3100 - Ellen Munthe-Kaas 8
Irredusible JDer En JD J= {C 1,,C m } er reduserbar hvis det finnes en komponent C i der også J = {C 1,,C i-1,c i+1,...,c m } holder (dvs. der J følger logisk fra de integritetsreglene F og J som gjelder). Hvis det finnes en slik C i, vil C i alltid være overflødig fordi den ikke gir noen begrensninger på mengden av mulige instanser utover det de øvrige komponentene i J gir. En JD der det ikke fins noen slik komponent, kalles irredusibel. INF3100 - Ellen Munthe-Kaas 9
Utgangspunkt for normalformene utover 4NF (forts.) Vi kan uten tap av generalitet begrense oss til relasjoner R der de gyldige instansene er karakterisert ved at de tilfredsstiller en mengde ikketrivielle FDer F og en mengde ikketrivielle og irredusible JDer J. Så på resten av lysarkene har vi underforstått en relasjon R der mengden av gyldige instanser er karakterisert ved at de oppfyller reglene i to mengder F og J der FDene i F er ikketrivielle og JDene i J er ikketrivielle og irredusible. INF3100 - Ellen Munthe-Kaas 10
Eksplisitte og implisitte integritetsregler Vi skiller mellom eksplisitte og implisitte FDer og JDer: De eksplisitte er de integritetsreglene som er listet opp i henholdsvis F og J. De implisitte er de som følger logisk fra (kan utledes fra) F og J INF3100 - Ellen Munthe-Kaas 11
Partielt redundante tupler La r være en instans av R. Et tuppel t i r er partielt redundant hvis det finnes et annet tuppel t t i r og en ikketriviell (eksplisitt eller implisitt) FD X A slik at t [X] = t[x]. Intuitivt betyr dette at informasjonen i t [A] er representert to ganger (i t[a] og i t [A]). INF3100 - Ellen Munthe-Kaas 12
Fullt redundante tupler Et tuppel i en instans r er fullt redundant hvis det finnes en mengde av tupler S i r der t S og det er slik at t følger logisk fra S. Intuitivt betyr dette at informasjonen i tuppelet både finnes indirekte (kan utledes fra andre tupler i instansen) og direkte (i tuppelet selv). Tuppelet kan imidlertid ikke uten videre fjernes, for da risikerer vi at den resulterende mengden av tupler ikke lenger oppfyller alle integritetsreglene. INF3100 - Ellen Munthe-Kaas 13
Essensielle tupler Et tuppel er essensielt hvis det hverken er partielt eller fullt redundant. INF3100 - Ellen Munthe-Kaas 14
Verdiredundans La R være en relasjon, r en instans av R, t et tuppel i r og A et attributt. Da er verdien t[a] redundant i r hvis det er slik at hvis vi erstatter t med et annet tuppel t der t [A] t[a] og t [B] = t[b] for alle attributter B A, så får vi noe som ikke er en gyldig instans i R. Intuitivt betyr dette at verdien i t[a] er entydig bestemt av de andre attributtverdiene i r. Merk at verdiredundans og partielt redundante tupler ikke er det samme. INF3100 - Ellen Munthe-Kaas 15
BCNF Boyce-Codd Normal Form Alternativ definisjon av BCNF: En relasjon R er på BCNF hvis alle eksplisitte og implisitte FDer følger logisk fra kandidatnøklene i R. Teorem. En relasjon er på BCNF hvis og bare hvis ingen instans har noe partielt redundant tuppel. INF3100 - Ellen Munthe-Kaas 16
4NF Alternativ definisjon av 4NF: En relasjon R er på 4NF hvis alle eksplisitte og implisitte MVDer følger logisk fra kandidatnøklene i R. INF3100 - Ellen Munthe-Kaas 17
ETNF Essential Tuple Normal Form En relasjon R er på ETNF hvis alle tupler i alle instanser er essensielle. Teorem. En relasjon R er på ETNF hvis og bare hvis den er på BCNF og hver eksplisitt JD har minst én komponent som er en supernøkkel. INF3100 - Ellen Munthe-Kaas 18
KCNF Key-Complete Normal Form En relasjon R er på KCNF hvis den oppfyller de to kravene under: 1. Relasjonen er på BCNF. 2. For hver eksplisitt eller implisitt JD J er det slik at hvis vi tar unionen av de komponentene i J som er supernøkler, så får vi samtlige attributter i R. INF3100 - Ellen Munthe-Kaas 19
RFNF Redundancy-Free Normal Form En relasjon R er på RFNF hvis det ikke finnes noen instans med et tuppel t der verdien av t er redundant i ett av attributtene. Teorem. RFNF = KCNF INF3100 - Ellen Munthe-Kaas 20
SKNF Superkey Normal Form En relasjon R er på SKNF hvis R er på BCNF og hver komponent i hver irredusibel eksplisitt eller implisitt JD er en supernøkkel. INF3100 - Ellen Munthe-Kaas 21
5NF Femte normalform En relasjon R er på 5NF hvis alle eksplisitte og implisitte JDer følger logisk fra kandidatnøklene i R. INF3100 - Ellen Munthe-Kaas 22
Nøkkelsammenhengende JDer 5NF forklart på en annen måte: En relasjon R er på 5NF hvis alle eksplisitte og implisitte JDer J er nøkkelsammenhengende i henhold til følgende algoritme: Så lenge det finnes to komponenter i J hvor snittet er en supernøkkel eller hvor den ene komponenten er inneholdt i den andre, så bytt ut de to komponentene med unionen av de to Hvis prosessen terminerer med R (dvs. samtlige attributter) som en av komponentene, er J nøkkelsammenhengende, ellers ikke INF3100 - Ellen Munthe-Kaas 23
BCNF, 4NF og 5NF Sammenlikn definisjonene under: En relasjon R er på BCNF hvis alle eksplisitte og implisitte FDer følger logisk fra kandidatnøklene i R. En relasjon R er på 4NF hvis alle eksplisitte og implisitte MVDer følger logisk fra kandidatnøklene i R. En relasjon R er på 5NF hvis alle eksplisitte og implisitte JDer følger logisk fra kandidatnøklene i R. INF3100 - Ellen Munthe-Kaas 24
5NF, PJNF og SKNF 5NF kalles også PJNF Project-Join Normal Form Vær oppmerksom på at mange lærebøker definerer 5NF feil det de kaller 5NF, er i realiteten SKNF. Dette skyldes en tidlig misforståelse/feil i definisjonen av 5NF i David Maiers lærebok The Theory of Relational Databases (Computer Science Press, 1983) og at denne definisjonen ukritisk er blitt kopiert til andre lærebøker INF3100 - Ellen Munthe-Kaas 25
Oppsummering av høye normalformer 5NF er (ekte) inneholdt i SKNF, SKNF er (ekte) inneholdt i RFNF, RFNF er (ekte) inneholdt i ETNF og ETNF er (ekte) inneholdt i 4NF RFNF = KCNF En relasjon R er på 4NF hvis og bare hvis alle (eksplisitte og implisitte) JDer med to komponenter består av to supernøkler. (Dette bevises ved å vise at en join av to supernøkler er tapsfri hvis og bare hvis deres snitt er en supernøkkel) Hvis vi fortsetter å tapsfritt dekomponere en relasjon på ETNF, så vil ikke dekomposisjonen bety noen reduksjon i antall tupler eller verdier som må lagres, tvert imot vil lagerbehovet øke INF3100 - Ellen Munthe-Kaas 26
Høyere normalformer, oversikt Ingen JDer med tre eller flere komponenter Ingen ekte MVDer 1NF EKNF BCNF Minst én ekte MVD Minst én ekte 1 JD med tre eller flere komponenter 1 Med ekte JD mener vi at JDen ikke følger fra de andre reglene 5NF SKNF RFNF=KCNF ETNF BCNF = 4NF når vi ikke har noen ekte MVDer. BCNF = 4NF = ETNF = RFNF = SKNF = 5NF når alle integritetsregler kan formuleres med bare FDer. 4NF INF3100 - Ellen Munthe-Kaas 27
Chasealgoritmen utvidet for JDer Gitt en dekomposisjon av R(A,B,...) til relasjonene S 1,..., S k og et sett F med FDer og et sett J med JDer for R. Er dekomposisjonen tapsfri? 1. Lag en tabell med en kolonne for hvert attributt i R og en rad for hver S i 2. I kolonnen for attributt A, for hver rad i: Skriv a hvis A er et attributt i S i Skriv a i hvis A ikke er et attributt i S i 3. Så lenge det skjer forandringer i tabellen og det ikke finnes en rad uten subskriptverdier: For hver FD X Y, for alle rader i tabellen med lik X-verdi, gjør Y- verdiene like. Hvis en av Y-ene er en verdi uten subskript, skal denne velges For hver JD {C 1,...,C m }, for hvert utvalg av m rader t 1,...,t m der t i [C i C j ]=t j [C i C j ] for alle par (i,j), lag en ny rad t der t[c i ]=t i [C i ] for alle i. Hvis en rad er uten subskriptverdier, er dekomposisjonen tapsfri, ellers ikke. INF3100 - Ellen Munthe-Kaas 28
Annen bruk av chasealgoritmen For å vise en JD {C 1,...,C m }, start tabellen med m rader der rad j har verdier uten subskript for attributtene i C j og verdier med subskript forøvrig. Målet er å komme frem til en instans der en av disse radene er uten subskriptverdier. INF3100 - Ellen Munthe-Kaas 29
Eksempel 1: JDer og begrepene ikketriviell og irredusibel Betrakt R(A,B,C) der A BC er eneste integritetsregel. Da holder de implisitte JDene J 1 = {AB,AC,ABC} J 2 = {AB,AC,BC} J 3 = {AB,AC} Dette kan vises ved å bruke chasealgoritmen INF3100 - Ellen Munthe-Kaas 30
Eksempel 1 (forts.) J 1 er triviell; den inneholder komponenten ABC. J 1 er reduserbar; den kan reduseres til {ABC}. Hverken J 2 eller J 3 er trivielle. J 2 er reduserbar: komponenten BC er overflødig; når vi tar den bort, reduseres J 2 til J 3. J 3 er irredusibel; vi kan ikke fjerne noen av komponentene AB eller AC uten at vi bryter kravet om at alle attributtene skal være representert i minst én komponent. INF3100 - Ellen Munthe-Kaas 31
Eksempel 2: Relasjon som er på ETNF, men ikke RFNF Gitt relasjonen R(A,B,C) der A er leverandør, B er reservedel og C er prosjekt. Følgende integritetsregler skal holde: Hvis leverandør A leverer en reservedel B, og B leveres til prosjekt C, og C får leveranser fra A, så skal A levere B til C. Dvs. JDen {AB,BC,CA} skal gjelde. Hvert prosjekt C mottar en reservedel B fra maksimalt én leverandør A. Dvs. FDen BC A skal gjelde. INF3100 - Ellen Munthe-Kaas 32
Eksempel 2 (forts.) Hva sier JDen {AB,BC,CA}? A B C a b c a b c a b c a b c Hvis disse tre tuplene er med, må dette tuppelet også være med (tuppelet er i såfall fullt redundant) Hva sier FDen BC A? a og a i instansen over skal være like så instansen må se slik ut: A B C a b c a b c a b c (ingen redundante tupler; det redundante tuppelet forsvinner ) INF3100 - Ellen Munthe-Kaas 33
Eksempel 2 (forts.) Relasjonen er på BCNF: Bruk chasealgoritmen til å sjekke at ingen av FDene AB C, B A, C A eller C B holder. Relasjonen er på ETNF: Eneste kandidatnøkkel er BC. Så JDen {AB,BC,CA} inneholder en komponent som er en supernøkkel (nemlig BC). Relasjonen er ikke på RFNF: Siden RFNF=KCNF, er det tilstrekkelig å undersøke om unionen av supernøkkelkomponentene i {AB,BC,CA} omfatter samtlige attributter. Men BC er eneste supernøkkelkomponent, så A er ikke dekket av noen supernøkkelkomponent. INF3100 - Ellen Munthe-Kaas 34
Domenerestriksjoner Det er viktig å være klar over at en av forutsetningene for normalformene slik de er formulert over, er at integritetsreglene bare er i form av FDer og JDer Hvis vi i tillegg til FDer og JDer kan ha restriksjoner på hvilke verdier et attributt kan inneholde, f.eks. at ett attributt har domenet boolean og et annet har en av verdiene {gull, sølv, bronse}, så holder ikke nødvendigvis teoremene lenger. I tillegg må (noen av) normalformdefinisjonene endres litt. INF3100 - Ellen Munthe-Kaas 35
Høyere normalformer med domenerestriksjoner, oversikt For alle normalformer merket med * blir definisjonene og/eller teoremene påvirket hvis vi kan ha domenerestriksjoner. For 4NF og lavere er det tilstrekkelig å forutsette at alle domener har minst to elementer; da holder teoremene. I praksis er dette alltid oppfylt. For *-normalformene høyere enn 4NF holder alle teoremene når vi i tillegg har at nøkkelattributtenes domener er store nok 1 1NF BCNF* 4NF* ETNF* RFNF*, KCNF* SKNF* 5NF* DKNF INF3100 - Ellen Munthe-Kaas 36
DKNF Domain-Key Normal Form En relasjon R er på DKNF hvis de eneste integritetsreglene i R er FDer som oppfyller BCNF (også kalt nøkkelrestriksjoner ) og domenerestriksjoner (Fagin 1981) DKNF er lett å håndheve, men det er for mange integritetsregler som ikke kan uttrykkes på denne måten til at vi kan begrense oss til å ha komponenter på DKNF INF3100 - Ellen Munthe-Kaas 37
Eksempel 3: ETNF-teoremet bryter sammen ved domenerestriksjoner Gitt relasjonen R (A,B,C,D,E,F). Følgende integritetsregler gjelder: dom(a) = dom(b) = {0,1} dom(c, D, E, F) = {0,1,2,...} ABC DEF, DEF ABD (så ABC og DEF er kandidatnøkler) J = {ACDE, ACDF, ACEF, BCDE, BCDF, BCEF} INF3100 - Ellen Munthe-Kaas 38
Eksempel 3 (forts.) Det kan vises at J følger fra FDene og domenerestriksjonene alene, så vi får nøyaktig samme mengde gyldige instanser (nøyaktig samme relasjon R) om vi fjerner J. Relasjonen R oppfyller derfor BCNF og DKNF. På lysark 18 stod følgende teorem: En relasjon er på ETNF hvis og bare hvis den er på BCNF og hver eksplisitt JD har minst én komponent som er en supernøkkel. J inneholder ingen supernøkkelkomponent, så hvis vi bruker teoremet, får vi at R ikke er i ETNF. Samtidig er det slik at om vi fjerner J, og deretter bruker teoremet, får vi at R er i ETNF. Så vi har en inkonsistens (selvmotsigelse): R kan vises å både tilhøre og ikke tilhøre ETNF. Problemet skyldes at teoremet ikke er gyldig i nærvær av for små domener. Derfor må alle definisjoner og beviser revurderes i nærvær av domenerestriksjoner. INF3100 - Ellen Munthe-Kaas 39