Relasjonsdatabaseteori

Like dokumenter
Plenum: Nøkler, normalformer og funksjonelle avhengigheter

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

Dagens tema: Oppdateringsanomalier Normalformer

Oppdateringsanomalier Normalformer

God Databasedesign: På vei mot Normalformer

Oppdateringsanomalier. Normalformer. Institutt for informatikk INF

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Hva kjennetegner god relasjonsdatabasedesign? Eksempel: Grossistdatabase versjon 1

Relasjonsdatabasedesign

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

Relasjonsdatabasedesign

Relasjonsdatabasedesign

INF3100 Databasesystemer

Relasjonsdatabasedesign

UNIVERSITETET. Relasjonsdatabasedesign

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

IN2090 Introduksjon til databaser

INF1300 Introduksjon til databaser

Relasjonsdatabasedesign

Relasjonsdatabasedesign

IN2090 Databaser og datamodellering. Databasedesign og normalformer

Relasjonsdatabasedesign

Repetisjon: Normalformer og SQL

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Relasjonsdatabasedesign

INF212 - Databaseteori. Kursinnhold

Relasjonsdatabasedesign (forts.)

Relasjonsdatabasedesign (forts.)

Databaser. - Normalisering -

Relasjonsdatabasedesign

INF3100 Databasesystemer

Relasjonsdatabasedesign

Normalisering. Hva er normalisering?

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

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

Normalformer utover 4NF (ikke pensum)

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

Normalisering. Hva er normalisering?

Normalisering. Hva er normalisering?

INF1300 Introduksjon til databaser

Kunnskapsorganisasjon og gjenfinning 1

Databaser: Relasjonsmodellen, del I

Oppgaver INF3100. Oversikt over innholdet

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

Oppgaver INF3100. Oversikt over innholdet

1. Normalisering Kommentarer til læreboka

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

UNIVERSITETET I OSLO

Løsningsforslag maskindatabasen på Ifi SQL og normalisering

Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Oppgave 3 - normalisering

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

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

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

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

SQL Structured Query Language

Løsningsforslag for Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Relasjonsdatabasedesign, ekstramateriale (ikke pensum)

INF3100 V2018 Obligatorisk oppgave nr. 1

Oppgave 1 ER- og relasjonsmodell 10 %

Integritetsregler i SQL. Primærnøkler

Integritetsregler i SQL

UNIVERSITETET I OSLO

INF1300 Introduksjon til databaser

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

Integritetsregler i SQL

INF3100 V2015 Obligatorisk oppgave nr. 1

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

UNIVERSITETET I OSLO

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

HØGSKOLEN I SØR-TRØNDELAG

1. Relasjonsmodellen Kommentarer til læreboka

UNIVERSITETET I OSLO

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

INF1300 Introduksjon til databaser

Modellenes to formål. Datamodellering med UML (forts.) Ugrupperte og grupperte modeller. Figur 5-2. Ogdens trekant

Datamodellering med ORM

EKSAMEN DATABASER

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Datamodellering med UML (forts.)

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

Relasjonsalgebraen. Algebra

Modellenes to formål. Datamodellering med UML (forts.) Ugrupperte og grupperte modeller. Figur 5-2. Ogdens trekant

INF3100 V2016 Obligatorisk oppgave nr. 1

Databaser. Relasjonsmodellen 1 Læreboka: Kap. 2 Relasjonsmodellen Faglærere: Tore Mallaug, Kjell Toft Hansen

Del 1: ER-modellering og databaseteori

Gerhard Skagestein: Systemutvikling fra kjernen og ut, fra skallet og inn.

UNIVERSITETET I OSLO

Relasjonsmodellen og normaliseringsteori

INF1300 Introduksjon til databaser

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

Transkript:

Relasjonsdatabaseteori Nøkler, funksjonelle avhengigheter og normalformer Arash Khorram arashk@ifi.uio.no Lana Vu anhlv@ifi.uio.no

Hva kjennetegner god relasjonsdatabasedesign? Relasjonene samler beslektet informasjon Så lite dobbeltlagring som mulig Korrekt totalinformasjon kan gjenskapes nøyaktig ved join

Relasjonene samler beslektet informasjon Tekstlig nærhet gjenspeiler logisk nærhet (Med tekstlig nærhet menes her samlokalisering i en relasjon) Brudd på dette prinsippet har en tendens til å påtvinge duplisering av data og dermed forårsake oppdateringsanomalier

Oppdateringsanomalier Innsettingsanomalier - Opprettholde konsistente verdier - Håndtere sekundær informasjon - Håndtere nil i kandidat- og fremmednøkler Slettingsanomalier - Unngå tap av sekundær informasjon Modifiseringsanomalier - Opprettholde konsistente verdier - Oppdatere sekundær informasjon

Så lite dobbeltlagring som mulig Plassbehovet minimaliseres Oppdatering forenkles Hvordan unngå dobbeltlagring? Splitt (dekomponer) relasjonene slik at dobbeltlagring blir borte!

Integritetsregler Integritetsregler begrenser mengden av lovlige instanser for et databaseskjema. Primærnøkler uttrykker én type integritetsregler. Primærnøkler er spesialtilfeller av kandidatnøkler. Kandidatnøkler er spesialtilfeller av funksjonelle avhengigheter. (I tillegg finnes andre typer integritetsregler)

Nøkler X er en supernøkkel i R: X R, og ingen instans av R får inneholde to forskjellige tupler t1 og t2 hvor t1[x] = t2[x]. X er en kandidatnøkkel i R: X er en supernøkkel i R, og for alle A i X er X-A ikke en supernøkkel i R. (Dvs. X er en minimal supernøkkel.) X er en primærnøkkel i R: X er en spesielt utpekt kandidatnøkkel i R.

Nøkkelattributt Et nøkkelattributt er et attributt som er med i en kandidatnøkkel. Et ikke-nøkkelattributt er et attributt som ikke er med i noen kandidatnøkkel.

Eksempel 1 Student(fnr, id, navn, adresse) Primærnøkkel: fnr Kandidatnøkkler: id Supernøkkler: 12 stk {fnr}, {fnr,id}, {fnr,navn}, {fnr,adresse}, {fnr, navn, adresse}, {fnr,id,navn}, {fnr,id,adresse}, {fnr,id,navn,adresse}, {id}, {id,navn}, {id,adresse}, {id,navn,adresse} Nøkkelattributter: fnr, id Ikke-nøkkelattributter: navn, adresse

Eksempel 2 Filmgenre(filmid, genre, tittel) Primærnøkkel: {filmid, genre} Supernøkler: {filmid, genre},{filmid, genre, tittel} Nøkkelattributter: filmid, genre Ikke-nøkkelattributter: tittel

Funksjonelle avhengigheter

Funksjonelle avhengigheter Gitt en relasjon R og integritetsregler for R, og gitt X,Y R. Y er funksjonelt avhengig av X hvis vi for enhver lovlig instans av R har at hvis instansen inneholder to tupler t1 og t2 hvor t1[x] = t2[x], så må t1[y] = t2[y]. I så fall skriver vi X Y. Ofte snakker vi for korthets skyld om «FDen X Y» (der FD står for Functional Dependency) Vi sier at «Y følger av X», eller at «X bestemmer Y» Integritetsregelen X A1A2...Ak kan alternativt representeres ved k FDer X A1, X A2,..., X Ak (hvor høyresidene består av bare ett attributt).

Funksjonell avhengighet og kandidatnøkler Merk at hvis X er en supernøkkel, så holder X Y for enhver Y. Så hvis X er en primærnøkkel, eller mer generelt en kandidatnøkkel, holder X Y for enhver Y. Omvendt: Hvis X Y for enhver Y, så er X en supernøkkel. Spesielt betyr dette at hvis vi angir at R(A1,A2,...,An) har en kandidatnøkkel X, betyr det at R har FDen X A1A2...An. Hvis R(A1,A2,...,An) har en primærnøkkel X, betyr det at R har FDen X A1A2...An.

Funksjonelle avhengigheter oppsummert Enkel def: Et attributt er «avhengig»/bestemmes av et annet attributt/-er Eksempel: Student(fnr, id, navn, adresse, postnr, poststed) Funksjonelle avhengigheter (FDer): Fnr -> id, navn, adresse, postnr, poststed Id -> fnr, navn, adresse, postnr, poststed Kan skrives på denne måten: Fnr -> navn Fnr -> adresse Fnr -> postnr Fnr -> poststed Fnr -> id Id -> navn Id -> adresse Id -> postnr Id -> poststed Id -> fnr

FD oppsummering forts. Merk: En FD trenger nødvendigvis ikke å være en nøkkel! Eksempel 1: Student(fnr, id, navn, adresse, postnr, poststed) Ny FD: Et postnr bestemmer ett poststed Postnr -> poststed.

Eksempel Ordre(ordrenr, kundenr, kundenavn, antall, sum, mva) - Ordrenr er unikt - Sum bestemmer mva - Kundenr bestemmer kundenavn Finn de funksjonelle avhengighetene og nøklene for relasjonen Ordre.

Normalformer

Normalformer Problem: Hvordan vurdere objektivt om en samling relasjoner er god/dårlig? Normalformer er et uttrykk for hvor godt vi har lykkes i en dekomposisjon At et skjema er på en normalform, sikrer at visse typer dobbeltlagring ikke forekommer Jo høyere normalform, jo mindre dobbeltlagring Vi kan bruke funksjonelle avhengigheter (FDer) til å sjekke hvilken normalform en relasjon er på Settet med FDer kan ha forskjellige normalformer, og relasjonen vil totalt være på den laveste normalformen fra settet med FDer.

Hvilke normalformer har vi

Ulike normalformer Gitt en relasjon R, med et sett av FDer på formen X -> A, der X og A er et sett av attributter. 1NF: - Bare atomære verdier/attributter 2NF: - X er en supernøkkel i R - A er et nøkkelattributt - X er ikke en delmengde av noen nøkler i R 3NF: - X er en supernøkkel i R - A er et nøkkelattributt BCNF(Boyce-Codd): - X er en supernøkkel i R

Eksempel 1 Timeliste(ansattnr,uke, år, navn, timer) FDer: Ansattnr, uke, år -> navn, timer (BCNF) Ansattnr -> navn (1NF) Hvilken normalform er relasjonen på?

Eksempel 2 Ordre(ordrenr, kundenr, kundenavn, antall, sum, mva) FDer: ordrenr -> kundenr, kundenavn, antall, sum, mva (BCNF) Kundenr -> kundenavn (2NF) Sum -> mvh (2NF) Hvilken normalform er relasjonen på?

Eksempel 3 Student_Emne (id, emnekode, bnavn, karakter) FDer: Id, emnekode -> karakter (BCNF) bnavn, emnekode -> karakter (BCNF) Id -> bnavn (3NF) Bnavn -> id (3NF) Hvilken normalform er relasjonen på?

Eksempel 4 Student(fnr, id, navn, adresse) FDer: Fnr -> id, navn, adresse (BCNF) Id -> fnr, navn, adresse (BCNF)

Hva gjør vi videre? Dekomposisjon til høyere normalform Eksempel: Fra 3NF til BCNF Student_Emne(id, emnekode, bnavn, karakter) Student(bnavn, id) StudentEmne(bnavn, emnekode, karakter)

Vil du lære mer relasjonsdatabaseteori? Ta INF3100 - Databasesystemer til våren!