Relasjonsdatabasedesign

Like dokumenter
Hva kjennetegner god relasjonsdatabasedesign? Eksempel: Grossistdatabase versjon 1

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Relasjonsdatabasedesign (forts.)

Relasjonsdatabasedesign (forts.)

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Relasjonsdatabasedesign

INF1300 Introduksjon til databaser

UNIVERSITETET. Relasjonsdatabasedesign

INF1300 Introduksjon til databaser

Dagens tema: Oppdateringsanomalier Normalformer

Oppdateringsanomalier Normalformer

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Oppdateringsanomalier. Normalformer. Institutt for informatikk INF

Relasjonsdatabasedesign

Relasjonsdatabasedesign. Ekstramateriale: Normalformer utover 4NF (ikke pensum)

Relasjonsdatabasedesign

Normalformer utover 4NF (ikke pensum)

Relasjonsdatabasedesign

Relasjonsdatabaseteori

Relasjonsdatabasedesign

Relasjonsdatabasedesign

God Databasedesign: På vei mot Normalformer

Normalformer or Normalisering 1NF, 2NF, 3NF, BCNF

UNIVERSITETET I OSLO. Relasjonsmodellen. Relasjoner og funksjonelle avhengigheter. Institutt for Informatikk. INF Ellen Munthe-Kaas 1

INF3100 Databasesystemer

UNIVERSITETET I OSLO. Oppskriftsbok. FDer og MVDer Relasjonsalgebra. Institutt for Informatikk. INF3100 Ellen Munthe-Kaas 1

IN2090 Databaser og datamodellering. Databasedesign og normalformer

Oppskriftsbok. FDer og MVDer - oversikt: se s. 3 Relasjonsalgebra - oversikt: se s. 45

INF3100 Databasesystemer

Relasjonsdatabasedesign, ekstramateriale (ikke pensum)

Plenum: Nøkler, normalformer og funksjonelle avhengigheter

Oppgaver INF3100. Oversikt over innholdet

IN2090 Introduksjon til databaser

INF1300 Introduksjon til databaser

INF212 - Databaseteori. Kursinnhold

Universitetet i Oslo Institutt for informatikk. Relasjonsmodellen og normaliseringsteori. Til bruk i IN 212. Ragnar Normann.

Oppgaver INF3100. Oversikt over innholdet

Databaser. - Normalisering -

Normalisering. Partielle avhengigheter Transitive avhengigheter Normalformer: 1NF, 2NF, 3NF, BCNF Normaliseringsstegene Denormalisering

Normalisering. Hva er normalisering?

Normalisering. Hva er normalisering?

Dagens tema: Relasjonsmodellen (funksjonelle avhengigheter og nøkler, integritetsregler) Realisering: Fra ORM til relasjoner

Det matematisk-naturvitenskapelige fakultet. Kontroller at oppgavesettet er komplett før du begynner å besvare det.

Normalisering. Hva er normalisering?

INF1300 Introduksjon til databaser

Relasjonsmodellen og normaliseringsteori

UNIVERSITETET. Relasjonsalgebra. INF Ragnhild Kobro Runde

Det matematisk-naturvitenskapelige fakultet. Kontroller at oppgavesettet er komplett før du begynner å besvare det

For alle ikke-trivielle FDer X A i R: eller A er et nøkkelattributt i R eller X K for noen kandidatnøkkel K i R

Relasjonsalgebraen. Algebra

UNIVERSITETET I OSLO RELASJONSALGEBRA. Regning med relasjoner. Institutt for Informatikk. INF Ellen Munthe-Kaas 1

UNIVERSITETET I OSLO RELASJONSALGEBRA. Regning med relasjoner. Institutt for Informatikk. INF Ragnar Normann

UNIVERSITETET I OSLO

Repetisjon: Normalformer og SQL

UNIVERSITETET I OSLO RELASJONSALGEBRA. Regning med relasjoner. Institutt for Informatikk. INF Ellen Munthe-Kaas

Databaser: Relasjonsmodellen, del I

Kunnskapsorganisasjon og gjenfinning 1

Løsningsforslag maskindatabasen på Ifi SQL og normalisering

Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

1. Normalisering Kommentarer til læreboka

Løsningsforslag for Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

INF1300 Introduksjon til databaser

UNIVERSITETET I OSLO

UNIVERSITETET RELASJONSALGEBRA. Regning g med relasjoner. Institutt for Informatikk. INF Ellen Munthe-Kaas 1

Det matematisk-naturvitenskapelige fakultet

Integritetsregler i SQL

UNIVERSITETET I OSLO

Databaser fra et logikkperspektiv

Oppgave 1 ER- og relasjonsmodell 10 %

D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt.

INF3100 V2016 Obligatorisk oppgave nr. 1

UNIVERSITETET I OSLO

INF3100 V2015 Obligatorisk oppgave nr. 1

Integritetsregler i SQL. Primærnøkler

UNIVERSITETET I OSLO

INF3100 V2018 Obligatorisk oppgave nr. 1

INF1300 Relasjonsalgebra og SQL, mengder og bager. Lysark for forelesning v. 2.1

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO RELASJONSALGEBRA. Regning med relasjoner. Institutt for Informatikk INF Ellen Munthe-Kaas

Løsningsforslag til eksamen i IN2090 Databaser og datamodellering og INF1300 Introduksjon til databaser 6. desember :30 18:30 (4 timer)

Integritetsregler i SQL

UNIVERSITETET I OSLO RELASJONSALGEBRA. Regning med relasjoner. Institutt for Informatikk INF Ellen Munthe-Kaas

SQL Structured Query Language

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

SQL Structured Query Language. Definere tabeller Skranker Fylle tabeller med data

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

EKSAMEN DATABASER

INF3140 Modeller for parallellitet INF3140/4140: Programanalyse

INF1300 Introduksjon til databaser

Tillegg til kapittel 11: Mer om relasjoner

Utvalgsaksiomet, velordningsprinsippet og Zorns lemma

Transkript:

Relasjonsdatabasedesign Oppdateringsanomalier Dekomponering Normalformer INF300-26-27..2004 - Ragnar Normann

Hva kjennetegner god relasjonsdatabasedesign? Skjemaene samler beslektet informasjon: Tekstlig nærhet (samlokalisering i skjema) gjenspeiler logisk nærhet Brudd på dette har en tendens til å påtvinge dobbeltlagring av data og dermed forårsake oppdateringsanomalier Så lite dobbeltlagring som mulig: Plassbehovet minimaliseres Oppdatering forenkles Så få glisne relasjoner som mulig: Plassbehovet minimaliseres Unngår problemer med håndtering av nil-verdier Korrekt totalinformasjon kan gjenskapes nøyaktig Ingen falske data genereres INF300-26-27..2004 - Ragnar Normann 2

Eksempel: Grossistdatabase versjon Produkt(Kode, Produktnavn, Produsent, #Enheter) Kunde(Kode, Kundenr, Navn, Adresse, #Bestilt) Skranker:. Alle verdier i Kode i Produkt-skjemaet skal være unike 2. For hvert par av Kundenr, Kode i Kunde-skjemaet skal det være bare en mulig verdi av #Bestilt 3. Verdien i Kundenr bestemmer verdiene i Navn og Adresse 4. Kode i Kunde-skjemaet henspeiler på verdier i Kode i Produkt-skjemaet INF300-26-27..2004 - Ragnar Normann 3

Grossistdatabase versjon med integritetsregler Produkt(Kode, Produktnavn, Produsent, #Enheter) Kunde(Kode, Kundenr, Navn, Adresse, #Bestilt) Integritetsregler:. KodeÆProduktnavn Produsent #Enheter 2. Kundenr KodeÆ#Bestilt 3. KundenrÆNavn Adresse 4. Kode i Kunde-skjemaet er fremmednøkkel til Produkt Merk at {Kode} er en kandidatnøkkel i Produkt Den er den eneste slike i Produkt og blir derfor primærnøkkel Merk at 2 og 3 gir at {Kode, Kundenr} er supernøkkel i Kunde Dette er dessuten en kandidatnøkkel og den eneste slike i Kunde Den blir derfor primærnøkkel INF300-26-27..2004 - Ragnar Normann 4

Eksempelekstensjon Kunde Kunde Kode Kundenr Navn Adresse #Bestilt 2 2 A A B a a b 3 8 2 INF300-26-27..2004 - Ragnar Normann 5

Oppdateringsanomalier Innsettingsanomalier Opprettholde konsistente verdier Hvordan håndtere sekundær informasjon? Tillate nil i primærnøkkel? Slettingsanomalier Risikerer å miste sekundær informasjon Modifiseringsanomalier Opprettholde konsistente verdier Oppdatering av sekundær informasjon INF300-26-27..2004 - Ragnar Normann 6

Hvordan unngå oppdateringsanomalier Unngå/fjern oppdateringsanomalier og dobbeltlagring ved å splitte (dekomponere) relasjonene slik at dobbeltlagring blir borte! INF300-26-27..2004 - Ragnar Normann 7

Dekomposisjon av et relasjonsskjema Gitt et relasjonsskjema R(A,A2,,An). En dekomposisjon D = {R,R2,,Rm} av R er en samling med skjemaer R,R2,,Rm som er slik at følgende to krav holder: alle attributtene i hver R k er også attributt i R samtlige attributter A,A2,,An kan gjenfinnes i minst ett av skjemaene R,R2,,Rm INF300-26-27..2004 - Ragnar Normann 8

Eksempel: Grossistdatabase versjon 2 Produkt(Kode, Produktnavn, Produsent) Kundereg(Kundenr, Navn, Adresse) Bestilling(Kode, Kundenr, #Bestilt) Integritetsregler: Kode i Bestilling er fremmednøkkel til Produkt Kundenr i Bestilling er fremmednøkkel til Kundereg INF300-26-27..2004 - Ragnar Normann 9

Eksempelekstensjoner Kundereg, Bestilling Kundereg Kundenr Navn Adresse Bestilling Kode Kundenr #Bestilt 2 A B a b 2 2 3 8 2 INF300-26-27..2004 - Ragnar Normann 0

Naturlig join Vi ønsker å kunne rekonstruere den opprinnelige ekstensjonen Naturlig join er en operasjon der to relasjoner slås sammen til ett ved at to og to tupler parres hvis og bare hvis de har like verdier i attributter med likt navn INF300-26-27..2004 - Ragnar Normann

Kundereg Kundereg Kundenr Navn Adresse Bestilling Bestilling Kode Kundenr #Bestilt 2 A B a b 2 2 3 8 2 Kundereg Bestilling Kundenr Navn Adresse Kode #Bestilt 2 A A B a a b 2 3 8 2 INF300-26-27..2004 - Ragnar Normann 2

Eksempel: Grossistdatabase, versjon 3 Produkt(Kode, Produktnavn, Produsent) Kundereg(Kundenr, Navn, Adresse) Kodereg(Kode, Kundenr) Antall(Kundenr, #Bestilt) Integritetsregler: Kode i Kodereg er fremmednøkkel til Produkt Kundenr i Kodereg er fremmednøkkel til Kundereg Kundenr i Antall er fremmednøkkel til Kundereg INF300-26-27..2004 - Ragnar Normann 3

Eksempelekstensjoner Kundereg, Bestilling Kodereg Antall Kodereg Antall Kode Kundenr Kundenr #Bestilt Kode Kundenr #Bestilt 2 2 2 3 8 2 2 2 2 3 8 8 3 2 Naturlig join på de to tabellene gir flere tupler enn i den opprinnelige tabellen! = Falske tupler INF300-26-27..2004 - Ragnar Normann 4

Retningslinjer for dekomposisjon av relasjoner? Motivasjon: Fjerne oppdateringsanomalier Teknikk: Dekomponere problemrelasjoner Betingelse: Opprinnelig ekstensjon skal alltid kunne rekonstrueres nøyaktig ved naturlig join Problem: Hvordan vurdere objektivt om en samling relasjoner er god/dårlig? Hvordan sikre at en dekomposisjon aldri gir falske tupler? INF300-26-27..2004 - Ragnar Normann 5

Normalformer Normalformer er et uttrykk for hvor godt vi har lykkes i en dekomposisjon Jo høyere normalform, jo færre oppdateringsanomalier Det fins algoritmer for å omforme fra lavere til høyere normalformer Det fins algoritmer for å sjekke om en dekomposisjon er tapsfri, dvs. at naturlig join aldri vil gi falske tupler INF300-26-27..2004 - Ragnar Normann 6

Utgangspunkt for normalformene NF-BCNF Alle integritetsregler er i form av FDer (og fremmednøkler) INF300-26-27..2004 - Ragnar Normann 7

Normalformer, oversikt NF 2NF 3NF EKNF BCNF INF300-26-27..2004 - Ragnar Normann 8

Første normalform Definisjon NF (Codd 972): Alle domener består av atomære verdier Funksjonsverdien til et tuppel for et gitt attributt skal være en slik atomær verdi (eller nil) Alle relasjoner er automatisk på NF INF300-26-27..2004 - Ragnar Normann 9

Andre normalform Definisjon ikketriviell FD XÆY: Y inneholder minst ett attributt utenfor X. Dvs.Y-X Definisjon 2NF (Codd 972): En relasjon R er på andre normalform hvis alle ikketrivielle FDer i R på formen XÆA der X er en mengde attributter og A er ett attributt i R, tilfredsstiller minst ett av følgende: i. X er en supernøkkel i R ii. iii. A er et nøkkelattributt i R XÀK for noen kandidatnøkkel K i R INF300-26-27..2004 - Ragnar Normann 20

Egenskaper 2NF 2NFÕNF siden alle relasjoner er NF Når er en relasjon NF, men ikke 2NF? Svar: Når det fins en ikketriviell FD XÆA og en kandidatnøkkel K hvor XÃK, X K og A ikke er et nøkkelattributt Eks: R(A,B,C,D), F={BCÆD, CÆA} Dekomposisjon: R (A,C), R 2 (B,C,D) 2NF er mest av historisk interesse; vi gjør sjelden feil som bryter 2NF INF300-26-27..2004 - Ragnar Normann 2

Tredje normalform Definisjon 3NF (Codd 972): En relasjon R er på tredje normalform hvis alle ikketrivielle FDer i R på formen XÆA tilfredsstiller minst ett av følgende: i. X er en supernøkkel i R ii. A er et nøkkelattributt i R INF300-26-27..2004 - Ragnar Normann 22

Egenskaper 3NF 3NFÕ2NF fordi kravene til 3NF er en skjerping av kravene til 2NF Når er en relasjon 2NF, men ikke 3NF? Svar: Når det fins en ikketriviell FD XÆA hvor X ikke er en supernøkkel og A ikke er et nøkkelattributt og XÀK for noen kandidatnøkkel K Eks: R(A,B,C), F={AÆBC, BÆC} Dekomposisjon: R (A,B), R 2 (B,C) Også 3NF er lett å oppnå. INF300-26-27..2004 - Ragnar Normann 23

Elementære FDer og nøkler En FD XÆA kalles elementær dersom A er et atributt XÆA ikke er triviell X er minimal (dvs. at hvis YÕX og YÆA, så er Y=X) En (kandidat)nøkkel K kalles elementær hvis det finnes en elementær FD KÆB i R INF300-26-27..2004 - Ragnar Normann 24

Elementary Key Normal Form EKNF (Zaniolo 982) er ikke pensum, men er tatt med for fullstendighets skyld: En relasjon R er på EKNF hvis alle ikketrivielle FDer i R på formen XÆA tilfredsstiller minst ett av følgende: i. X er en supernøkkel i R ii. A er et attributt i en elementær nøkkel i R INF300-26-27..2004 - Ragnar Normann 25

Egenskaper EKNF EKNFÕ3NF fordi kravene til EKNF er en skjerping av kravene til 3NF Når er en relasjon 3NF, men ikke EKNF? Svar: Når det fins en ikketriviell FD XÆA hvor X ikke er en supernøkkel og A er et nøkkelattributt i en ikke-elementær nøkkel Eks: R(A,B,C), F={ABÆC,BÆCA,CÆA,AÆC} (Her kan A=epostadresse, B=emnekode og C=fødselsnummer på studenter) Mulig dekomposisjon: R (A,B), R 2 (A,C) INF300-26-27..2004 - Ragnar Normann 26

Boyce-Codd Normal Form Definisjon BCNF (Boyce & Codd 974): En relasjon R er på Boyce-Codd normalform hvis alle ikketrivielle FDer i R på formen XÆA tilfredsstiller følgende: i. X er en supernøkkel i R INF300-26-27..2004 - Ragnar Normann 27

Egenskaper BCNF BCNFÕEKNF fordi kravene til BCNF er en skjerping av kravene til EKNF Når er en relasjon EKNF, men ikke BCNF? Svar: Når det fins en ikketriviell FD XÆA hvor X ikke er en supernøkkel og A er et attributt i en elementær nøkkel Eks: R(A,B,C), F={ABÆC, CÆA} Dekomposisjon: R (B,C), R 2 (A,C) Merk at FDen ABÆC går på tvers av R og R 2 INF300-26-27..2004 - Ragnar Normann 28

Oppsummering normalisering Brudd på normalformer gir opphav til dobbeltlagring Jo høyere normalform, desto mindre dobbeltlagring BCNF: Alle FDer er i form av kandidatnøkler. Dvs. ingen dobbeltlagring innen skjemaet. Men: Noen FDer kan gå på tvers av skjemaer EKNF: Ingen FDer går på tvers av skjemaer, men det kan være noen FDer innen skjemaer som gir opphav til dobbeltlagring Krav til dekomposisjon: Den må være tapsfri, dvs. aldri kunne gi opphav til falske tupler Det er en fordel om dekomposisjonen også er FDbevarende, dvs. at ingen FDer går på tvers av skjemaer INF300-26-27..2004 - Ragnar Normann 29

Hvorfor BCNF ikke alltid er gunstig Dersom vi har en dekomposisjon som ikke er FD-bevarende, må vi foreta join mellom skjemaene i forbindelse med oppdateringer for å sjekke at integritetsreglene overholdes. Vi har valget mellom Enten: Gå tilbake til 3NF (EKNF) og bryte BCNF, da får vi dobbeltlagring og må ta hensyn til dette under oppdatering Eller: Beholde BCNF og foreta join mellom relasjoner for å sjekke at FDer overholdes ved oppdateringer INF300-26-27..2004 - Ragnar Normann 30

Det fins algoritmer som Tester om en dekomposisjon er tapsfri Tester om en dekomposisjon er FDbevarende Dekomponerer skjemaer tapsfritt og FDbevarende Garantert EKNF, men gir ikke alltid BCNF Dekomponerer skjemaer tapsfritt til BCNF Ikke alltid FD-bevarende INF300-26-27..2004 - Ragnar Normann 3

Flerverdiavhengigheter Generalisering av FDer Flerverdiavhengigheter gir opphav til en større klasse integritetsregler enn de som kan uttrykkes ved FDer INF300-26-27..2004 - Ragnar Normann 32

Eksempel: Emnedatabase Emne(Kode, Lærebok, Foreleser) Skranker: Et emne har et sett av lærebøker som er uavhengig av hvem som foreleser emnet Et emne kan ha flere forelesere, og det er ingen sammenheng mellom forelesere og lærebøker INF300-26-27..2004 - Ragnar Normann 33

Eksempelekstensjon Emne Kode Lærebok Foreleser Emne Kode Lærebok Foreleser INF00 INF00 INF050 INF050 INF050 Liang OOhefte Kjernen PHP Web Margunn Ingvild Erik Tone Gerhard INF00 INF00 INF00 INF00 INF050 INF050 INF050 INF050 INF050 INF050 INF050 INF050 INF050 Liang Liang OOhefte OOhefte Kjernen Kjernen Kjernen PHP PHP PHP Web Web Web Margunn Ingvild Margunn Ingvild Erik Tone Gerhard Erik Tone Gerhard Erik Tone Gerhard INF300-26-27..2004 - Ragnar Normann 34

Definisjon flerverdiavhengighet Gitt et relasjonsskjema R(A,A 2,,A n ). La X, Y være delmengder av {A,A 2,,A n }. La Z være de attributtene som hverken er med i X eller Y. Y er flerverdiavhengig av X hvis vi for enhver lovlig instans av R har at hvis instansen inneholder to tupler t og t 2 hvor t [X]=t 2 [X], så fins det også to tupler u og u 2 hvor. u [X]=u 2 [X]=t [X]=t 2 [X] 2. u [Y]=t [Y], u 2 [Y]=t 2 [Y] 3. u [Z]=t 2 [Z], u 2 [Z]=t [Z] INF300-26-27..2004 - Ragnar Normann 35

Definisjon på norsk Y er flerverdiavhengig av X hvis vi for alle lovlige instanser av R har at hvis instansen inneholder to tupler t og t 2 som er like på X, så må den også inneholde to tupler u og u 2 hvor. u er lik t på Y og lik t 2 utenfor Y 2. u 2 er lik t 2 på Y og lik t utenfor Y INF300-26-27..2004 - Ragnar Normann 36

ÆÆ MVD Vi skriver X Y hvis Y er flerverdiavhengig av X. Ofte snakker vi for korthets skyld om MVDen X ÆÆ Y der MVD står for Multi-Valued Dependency. Hvis YÕX, så X ÆÆ Y. Hvis XY er samtlige attributter i R, så X ÆÆ Y. Hvis XÆY, så X ÆÆ Y. Definisjon triviell MVD: X ÆÆ Y hvor YÕX eller XY er samtlige attributter i R. Definisjon ekte MVD: En ikketriviell X ÆÆ Y hvor XÆY ikke holder. MVDer benyttes til å uttrykke integritetsregler: Kode ÆÆ Lærebok, Kode ÆÆ Foreleser MVDer opptrer hvis man plasserer to m:n-forhold (m ) i samme relasjon og de to forholdene ikke har avhengigheter seg imellom INF300-26-27..2004 - Ragnar Normann 37

Armstrongs slutningsregler utvidet til MVDer (for spesielt interesserte). Refleksivitet FD: Hvis YÕX, så XÆY 2. Utvidelse FD: Hvis XÆY, så XZÆYZ 3. Transitivitet FD: Hvis XÆY og YÆZ, så XÆZ. 4. Komplement: Hvis Z er de attributtene som XY ikke omfatter, og X ÆÆ Y, så X ÆÆ Z. 5. Utvidelse MVD: Hvis X ÆÆ Y og ZÕW, så XW ÆÆ YZ 6. Transitivitet MVD: Hvis X ÆÆ Y og Y ÆÆ Z, så X ÆÆ Z-Y 7. FDer er MVDer: Hvis XÆY så X ÆÆ Y 8. Sammensmeltning: Hvis X ÆÆ Y, WÆZ, W«Y= og ZÕY, så XÆZ Regelsettet er sunt og komplett for MVDer og FDer INF300-26-27..2004 - Ragnar Normann 38

Høyere normalformer, oversikt NF BCNF 4NF 5NF PJNF og DKNF INF300-26-27..2004 - Ragnar Normann 39

Utgangspunkt for normalformen 4NF Alle integritetsregler er i form av FDer og MVDer (og fremmednøkler) INF300-26-27..2004 - Ragnar Normann 40

Fjerde normalform Definisjon 4NF (Fagin 977): En relasjon R er på fjerde normalform hvis alle ikketrivielle MVDer X ÆÆ Y tilfredsstiller følgende: i. X er en supernøkkel i R INF300-26-27..2004 - Ragnar Normann 4

Egenskaper 4NF 4NFÕBCNF: Anta at R er 4NF. Vis at for enhver ikketriviell FD XÆY i R er X en supernøkkel Når er en relasjon BCNF, men ikke 4NF? Svar: Når alle ikketrivielle FDer XÆY er slik at X er en supernøkkel og det fins en ekte MVD Z ÆÆ W der Z ikke er en supernøkkel. INF300-26-27..2004 - Ragnar Normann 42

Normalformer utover 4NF (Kursorisk pensum) 5NF (Maier 983) PJNF: Project-Join Normal Form (Fagin 979) DKNF: Domain Key Normal Form (Fagin 98) INF300-26-27..2004 - Ragnar Normann 43

Joinavhengigheter La R være en relasjon og la D={R,,R m } være en dekomposisjon av R. Dersom D er tapsfri, sier vi at D tilfredsstiller en JD (Join Dependency) En JD kalles triviell dersom RŒD Teorem (Fagin 977): Hvis m=2, dvs D={R,R 2 }, tilfredsstiller D en JD hvis, og bare hvis, vi har en MVD X ÆÆ Y der X=R «R 2 og Y=R 2 R Dette betyr at en MVD er det samme som en JD for en dekomposisjon med 2 komponenter INF300-26-27..2004 - Ragnar Normann 44

Ekte dekomposisjoner og 5NF En dekomposisjon D={R,,R m } kalles ekte hvis det ikke finnes i og j med i j og R i ÕR j (en slik R i vil alltid være overflødig fordi den ikke kan bidra til å gjøre D tapsfri) En relasjon R er på 5NF hvis alle ekte tapsfri dekomposisjoner av R bare består av supernøkler Hvis vi fortsetter å tapsfritt dekomponere en relasjon på 5NF, så vil ikke dekomposisjonen bety noen reduksjon i antall tupler eller verdier som må lagres, tvert imot vil lagerbehovet øke INF300-26-27..2004 - Ragnar Normann 45

PJNF (Project/Join Normal Form) En relasjon R er på PJNF hvis alle JD-er i R er en konsekvens av kandidatnøklene Mer presist: R er på PJNF hvis alle ekte tapsfri dekomposisjoner D er nøkkelsammenhengende i henhold til følgende algoritme: Så lenge det finnes to komponenter i D hvis snitt er en supernøkkel, så bytt ut de to komponentene med deres union Hvis prosessen terminerer med D={R}, er D nøkkelsammenhengende, ellers ikke INF300-26-27..2004 - Ragnar Normann 46

DKNF (Domain-Key Normal Form) En relasjon R er på DKNF hvis de eneste integritetsreglene i R er nøkkelrestriksjoner og domenerestriksjoner 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 INF300-26-27..2004 - Ragnar Normann 47

Oppsummering av høye normalformer En relasjon R er på 4NF hvis, og bare hvis, alle ekte tapsfri dekomposisjoner 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) 5NF er (ekte) inneholdt i 4NF Både PJNF og DKNF er (ekte) inneholdt i 5NF Det finnes relasjoner som er i PJNF, men ikke i DKNF, og omvendt Personlig mening: 5NF og PJNF burde bytte navn (det burde 3NF og BCNF også, men vi kan ikke forandre historien) INF300-26-27..2004 - Ragnar Normann 48