Relasjonsdatabasedesign

Like dokumenter
UNIVERSITETET. Relasjonsdatabasedesign

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Hva kjennetegner god relasjonsdatabasedesign? Eksempel: Grossistdatabase versjon 1

INF1300 Introduksjon til databaser

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Oppdateringsanomalier Normalformer

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Dagens tema: Oppdateringsanomalier Normalformer

Relasjonsdatabasedesign

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

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

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

Relasjonsdatabasedesign

Relasjonsdatabasedesign

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

Oppdateringsanomalier. Normalformer. Institutt for informatikk INF

Normalformer utover 4NF (ikke pensum)

Relasjonsdatabasedesign (forts.)

Relasjonsdatabasedesign (forts.)

IN2090 Databaser og datamodellering. Databasedesign og normalformer

Relasjonsdatabaseteori

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

Oppgaver INF3100. Oversikt over innholdet

Plenum: Nøkler, normalformer og funksjonelle avhengigheter

Oppgaver INF3100. Oversikt over innholdet

INF3100 Databasesystemer

Databaser. - Normalisering -

Normalisering. Hva er normalisering?

Normalisering. Hva er normalisering?

Normalisering. Hva er normalisering?

INF1300 Introduksjon til databaser

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

IN2090 Introduksjon til databaser

INF1300 Introduksjon til databaser

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

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

INF1300 Introduksjon til databaser

INF3100 Databasesystemer

Løsningsforslag for Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

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

INF3100 V2015 Obligatorisk oppgave nr. 1

Repetisjon: Normalformer og SQL

INF212 - Databaseteori. Kursinnhold

INF3100 V2016 Obligatorisk oppgave nr. 1

INF1300 Introduksjon til databaser

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

INF3100 V2018 Obligatorisk oppgave nr. 1

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

Relasjonsmodellen og normaliseringsteori

Databaser: Relasjonsmodellen, del I

Løsningsforslag maskindatabasen på Ifi SQL og normalisering

UNIVERSITETET I OSLO

1. Normalisering Kommentarer til læreboka

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

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

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

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

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

Relasjonsalgebraen. Algebra

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

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

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

Datamodellering med ORM

Oppgave 1 ER- og relasjonsmodell 10 %

Informasjonsbærende representasjoner

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

Integritetsregler i SQL. Primærnøkler

Spørsmålskompilering del 1

UNIVERSITETET I OSLO

Integritetsregler i SQL

Datamodellering med UML (forts.)

UNIVERSITETET I OSLO

Integritetsregler i SQL

Kunnskapsorganisasjon og gjenfinning 1

Spørsmålskompilering del 1

Transkript:

UNIVERSITETET I OSLO Relasjonsdatabasedesign Normalformer Institutt for Informatikk INF3100-22.1.2013 Ellen Munthe-Kaas 1

Hvordan dekomponere tapsfritt Fagins teorem Gitt en relasjon R(XYZ) med FDer F. En dekomposisjon D={XY, XZ} er tapsfri mhp. F hvis og bare hvis minst en av følgende holder: 1) X Y F + 2) X Z F + Her er F + mengden av alle FDer som kan avledes av F Eksempel: R(A,B,C,D), F={C AD} Dekomposisjon: R 1 (A,C,D), R 2 (B,C) INF3100-22.1.2013 Ellen Munthe-Kaas 2

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 INF3100-22.1.2013 Ellen Munthe-Kaas 3

Utgangspunkt for normalformene 1NF-BCNF Alle integritetsregler er i form av FDer (i tillegg til domeneskranker og fremmednøkler) INF3100-22.1.2013 Ellen Munthe-Kaas 4

Normalformer, oversikt 1NF 2NF 3NF EKNF BCNF INF3100-22.1.2013 Ellen Munthe-Kaas 5

Første normalform Definisjon 1NF (Codd 1972): 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å 1NF INF3100-22.1.2013 Ellen Munthe-Kaas 6

Andre normalform Repetisjon: En FD X Y er ikketriviell hvis Y ikke er inneholdt i X, dvs. hvis Y X Definisjon 2NF (Codd 1972): 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 et attributt i R, tilfredsstiller minst ett av følgende: i. X er en supernøkkel i R ii. A er et nøkkelattributt i R iii. X K for noen kandidatnøkkel K i R INF3100-22.1.2013 Ellen Munthe-Kaas 7

Egenskaper ved 2NF 2NF 1NF siden alle relasjoner er 1NF Når er en relasjon 1NF, 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 Eksempel: R(A,B,C,D), F={BC D, C A} Dekomposisjon: R 1 (A,C), R 2 (B,C,D) 2NF er mest av historisk interesse; vi gjør sjelden feil som bryter 2NF INF3100-22.1.2013 Ellen Munthe-Kaas 8

Tredje normalform Definisjon 3NF (Codd 1972): 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 INF3100-22.1.2013 Ellen Munthe-Kaas 9

Egenskaper ved 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 Eksempel: R(A,B,C), F={A BC, B C} Dekomposisjon: R 1 (A,B), R 2 (B,C) Også 3NF er lett å oppnå INF3100-22.1.2013 Ellen Munthe-Kaas 10

Elementære FDer og nøkler En FD X A kalles elementær dersom A er ett attributt X A er ikketriviell X er minimal (dvs. at hvis Y X og Y A, så er Y=X) En kandidatnøkkel K kalles elementær hvis det finnes en elementær FD K B i R INF3100-22.1.2013 Ellen Munthe-Kaas 11

Elementary Key Normal Form EKNF (Zaniolo 1982) (kursorisk pensum) Definisjon EKNF: En relasjon R er på elementary key normal form 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 kandidatnøkkel i R INF3100-22.1.2013 Ellen Munthe-Kaas 12

Egenskaper ved 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 attributt i en ikke-elementær kandidatnøkkel Eksempel: R(A,B,C), F={C A, A C} (Her kan A=epostadresse, B=emnekode og C=fødselsnummer på studenter) Mulig dekomposisjon: R 1 (A,B), R 2 (A,C) INF3100-22.1.2013 Ellen Munthe-Kaas 13

Boyce-Codd Normalform Definisjon BCNF (Boyce & Codd 1974): 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 INF3100-22.1.2013 Ellen Munthe-Kaas 14

Egenskaper ved BCNF I 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 kandidatnøkkel Når er en relasjon 3NF, 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 kandidatnøkkel INF3100-22.1.2013 Ellen Munthe-Kaas 15

Eksempel R(A,B,C), F={AB C, C A} Dekomposisjon til BCNF: R 1 (B,C), R 2 (A,C) Merk: FDen AB C kan ikke sjekkes i R 1 eller R 2 alene: Vi må ta en join av R 1 og R 2 før vi kan teste om AB C. INF3100-22.1.2013 Ellen Munthe-Kaas 16

Egenskaper ved BCNF II Hvis alle FDer etter dekomposisjonen kan sjekkes lokalt i en av de nye relasjonene, sier vi at dekomposisjonen er FD-bevarende. I eksempelet forrige side er dekomposisjonen ikke FD-bevarende. Man kan alltid dekomponere til BCNF, men ikke alltid FD-bevarende. Man kan alltid dekomponere FD-bevarende til EKNF. INF3100-22.1.2013 Ellen Munthe-Kaas 17

Eksempel: Studenter Student(Stud#, Brukernavn, Emnekode, Karakter) FDer: Stud# Brukernavn Brukernavn Stud# Stud# Emnekode Karakter Hvilke av normalformene 1NF-BCNF tilfredsstiller denne? INF3100-22.1.2013 Ellen Munthe-Kaas 18

Hvorfor BCNF ikke alltid er gunstig Dersom vi har en dekomposisjon som ikke er FD-bevarende, må vi foreta en join mellom relasjonene i forbindelse med oppdateringer for å sjekke at integritetsreglene overholdes Vi har valget mellom Enten: Gå tilbake til EKNF (3NF) og bryte BCNF og godta dobbeltlagring som vi må ta hensyn til ved oppdateringer slik at FDene overholdes Eller: Beholde BCNF og foreta join mellom relasjoner for å sjekke at FDer overholdes ved oppdateringer INF3100-22.1.2013 Ellen Munthe-Kaas 19

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 hver enkelt relasjon. Men: Noen FDer kan gå på tvers av relasjoner EKNF (3NF): Ingen FDer går på tvers av relasjonene, men det kan være noen relasjoner der interne FDer 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 FD-bevarende (dvs. at ingen FDer går på tvers av relasjoner) INF3100-22.1.2013 Ellen Munthe-Kaas 20

Det fins algoritmer som Tester om en dekomposisjon er tapsfri (chasealgoritmen) Tester om en dekomposisjon er FD-bevarende (ikke tatt med i dette foilsettet) Dekomponerer relasjoner tapsfritt og FD-bevarende Garanterer EKNF, men gir ikke alltid BCNF Dekomponerer relasjoner tapsfritt til BCNF Er ikke alltid FD-bevarende INF3100-22.1.2013 Ellen Munthe-Kaas 21

Tapsfri dekomposisjon til BCNF Gitt en relasjon R med et sett FDer F 1. Hvis X A er et brudd på BCNF: A. Beregn X + B. Dekomponer R i S og T der S er lik X + og T er lik X samt alle attributtene i R som ikke er i X +. 2. Fortsett på samme måte med S og T inntil alle relasjonene i dekomposisjonen tilfredsstiller BCNF. INF3100-22.1.2013 Ellen Munthe-Kaas 22

Eksempel: Studenter Student(Stud#, Brukernavn, Emnekode, Karakter) FDer: Stud# Brukernavn Brukernavn Stud# Stud# Emnekode Karakter Hvordan dekomponere denne til BCNF? INF3100-22.1.2013 Ellen Munthe-Kaas 23

Minimale overdekninger La F være en mengde FDer over relasjon R. En minimal overdekning for F er en mengde FDer G som er ekvivalent med F og som tilfredsstiller følgende krav: Alle høyresidene i G er atomære Venstresidene er minst mulige Ingen av FDene i G er overflødige INF3100-22.1.2013 Ellen Munthe-Kaas 24

Algoritme for å finne minimale overdekninger 1. Initialiser G til F. 2. Lag atomære høyresider ved hjelp av splitting. 3. Gjør venstresidene minimale: For hver X A i G og hver B X: 1. Beregn (X-B) + med hensyn på G. 2. Hvis A (X-B) +, erstatt X A med (X-B) A i G. 4. Fjern overflødige FDer: For hver X A i G: 1. Beregn X + med hensyn på G uten å bruke X A. 2. Hvis A X +, fjern X A fra G. INF3100-22.1.2013 Ellen Munthe-Kaas 25

Tapsfri FD-bevarende dekomposisjon til EKNF Gitt en relasjon R med et sett FDer F. 1. Finn en minimal overdekning G for F. 2. For hver X som opptrer som venstreside i G, finn alle X A i i G og lag en relasjon R X som inneholder X samt alle høyresidene A i. 3. Hvis ingen av R X -ene inneholder en kandidatnøkkel for R, utvid med en relasjon R 0 der attributtene er en kandidatnøkkel. Relasjonene i dekomposisjonen er minst EKNF. (I beste fall oppnås BCNF i alle relasjonene.) INF3100-22.1.2013 Ellen Munthe-Kaas 26

Eksempel R(A,B,C,D,E,F,G,H,I) FDer: AB CH, DE FG, D H, E B, H AG Hva er høyeste normalform som R tilfredsstiller? Dekomponer R tapsfritt og FD-bevarende til EKNF. INF3100-22.1.2013 Ellen Munthe-Kaas 27

Høyere normalformer Det finnes relasjoner som tilfredsstiller BCNF, men likevel kan gi oppdateringsanomalier. Dette skyldes blant annet flerverdiavhengigheter (MVDer). Med MVDer kan man uttrykke integritetsregler som ikke kan uttrykkes ved FDer. Høyere normalformer kan eliminere også noen av disse oppdateringsanomaliene. INF3100-22.1.2013 Ellen Munthe-Kaas 28

Ekstramateriale og repetisjon fra INF1300 (kursorisk pensum) INF3100-22.1.2013 Ellen Munthe-Kaas 29

ORM og normalisering Gruppering av korrekte ORM-diagrammer gir alltid 3NF Gruppering av korrekte ORM-diagrammer gir som regel BCNF. Unntak skyldes alltid problemer knyttet til ekvivalente stier. Det samme gjelder EKNF: Gruppering der EKNF er brutt, skyldes alltid problemer knyttet til ekvivalente stier. INF3100-22.1.2013 Ellen Munthe-Kaas 30

ORM og 1NF A B Den grupperende rollen er alltid entydig. Datamodellen blir alltid 1NF. INF3100-22.1.2013 Ellen Munthe-Kaas 31

ORM og 2NF A B C Hvis E C (AB C) representeres i tillegg til E B, B C, vil 2NF bli brutt. EOPen (E-B-C, E-C) kan enkelt unngås ved å fjerne E C. INF3100-22.1.2013 Ellen Munthe-Kaas 32

ORM og 3NF A B C Hvis A C representeres i tillegg til A B, B C, vil 3NF bli brutt. EOPen (A-B-C, A-C) kan enkelt unngås ved å fjerne A C. INF3100-22.1.2013 Ellen Munthe-Kaas 33

ORM og BCNF A B C Siden E B (AB B) er representert i tillegg til E C, C B (AB C, C B), blir BCNF brutt. EOPen (E-C-B, E-B) sier noe vesentlig om virksomhetsområdet. Vi kan ikke fjerne E B uten å ødelegge modellen. INF3100-22.1.2013 Ellen Munthe-Kaas 34

ORM og BCNF eksempel gatenavn bynavn postnummer Gruppert ORM-modell: gatenavn bynavn postnummer postnummer bynavn pluss en ekkel integritetsregel som ivaretar sjekk av de ekvivalente stiene (dvs. at oppslag på likt postnummer gir likt bynavn i de to tabellene) INF3100-22.1.2013 Ellen Munthe-Kaas 35