INF3100 Databasesystemer

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

INF1300 Introduksjon til databaser

IN2090 Introduksjon til databaser

INF3100 Databasesystemer

INF212 - Databaseteori. Kursinnhold

INF1300 Introduksjon til databaser

Relasjonsdatabasedesign

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

Relasjonsdatabasedesign

Relasjonsdatabasedesign

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

Oppdateringsanomalier Normalformer

Dagens tema: Oppdateringsanomalier Normalformer

Relasjonsdatabaseteori

Hva kjennetegner god relasjonsdatabasedesign? Eksempel: Grossistdatabase versjon 1

Relasjonsdatabasedesign (forts.)

Dagens tema: Relasjonsmodellen Funksjonelle avhengigheter og nøkler Realisering: Fra ORM til relasjoner

Relasjonsdatabasedesign

Relasjonsdatabasedesign (forts.)

Oppdateringsanomalier. Normalformer. Institutt for informatikk INF

Relasjonsdatabasedesign

Relasjonsdatabasedesign

INF september Relasjonsmodellen funksjonelle avhengigheter og nøkler Realisering: Fra ORM til relasjoner

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Relasjonsdatabasedesign

UNIVERSITETET. Relasjonsdatabasedesign

Relasjonsdatabasedesign

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

Databaser: Relasjonsmodellen, del I

Relasjonsdatabasedesign

Normalformer utover 4NF (ikke pensum)

Relasjonsdatabasedesign

Historisk tidslinje. Resource Description Framework (RDF) Web Ontology Language (OWL) Object-Role Modeling (ORM) Entity Relationship Model (ER)

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

Realiseringsalgoritmen fra ORM til relasjoner Intro til mengdeskranker i ORM

INF3100. Databasesystemer

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

INF3100 Databasesystemer

Relasjonsdatabasedesign

IN2090 Databaser og datamodellering. Databasedesign og normalformer

Plenum: Nøkler, normalformer og funksjonelle avhengigheter

God Databasedesign: På vei mot Normalformer

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Normalisering. Hva er normalisering?

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

Normalisering. Hva er normalisering?

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

INF3100 Databasesystemer

Relasjonsalgebraen. Algebra

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

Integritetsregler i SQL

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

Notater: INF1300. Veronika Heimsbakk 8. januar 2013

Normalisering. Hva er normalisering?

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

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

Databaser fra et logikkperspektiv

Integritetsregler i SQL. Primærnøkler

UNIVERSITETET I OSLO

UNIVERSITETET. Relasjonsalgebra. INF Ragnhild Kobro Runde

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

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

Databaser. - Normalisering -

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

UNIVERSITETET I OSLO

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

Det matematisk-naturvitenskapelige fakultet

SQL Structured Query Language

Integritetsregler i SQL

INF1300 Introduksjon til databaser

Relasjonsdatabasedesign

SQL og Mengdelære. Oracle, MySQL, Access, bruker forskjellige syntaks.

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

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

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

1. Relasjonsmodellen Kommentarer til læreboka

Løsningsforslag for Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Kunnskapsorganisasjon og gjenfinning 1. Relasjonsmodellen og -databaser

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

Repetisjon: Normalformer og SQL

Kunnskapsorganisasjon og gjenfinning 1

INF1300 SQL Structured Query Language del 1. Stoff som blir/ble forelest i oktober 2013

INF1300 Introduksjon til databaser: SQL Structured Query Language. En første introduksjon Lysark til forelesning onsdag 22.

Oppgaver INF3100. Oversikt over innholdet

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

Oppgaver Oppgave a: Sett opp mulige relasjoner

UNIVERSITETET I OSLO

INF1300 Introduksjon til databaser: SQL Structured Query Language. En første introduksjon Lysark til forelesning mandag 14.

Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

INF1300 Introduksjon til databaser

PENSUM H2012 INF1300. Joakim Myrvoll Johansen. Pensum fra forelesnings-foilere

UNIVERSITETET I OSLO

Gruppeøvelse 20/ Dagens tema: - Gruppering/realisering

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

Transkript:

INF3100 Databasesystemer Relasjonsmodellen INF3100-18.1.2005 - Ragnar Normann 1

Relasjonsdatabasemodellen Datamodell Mengde av begreper for å beskrive strukturen til en database Relasjonsmodellen Databasen kan betraktes som en samling av tabeller INF3100-18.1.2005 - Ragnar Normann 2

Relasjoner og relasjonsdatabaser Personale Ans# Navn Fdato Pers# Avd 10 9 8 12 Gro Berit Bjørn Liv 290264 131172 150571 031078 39201 35697 34322 39201 Relasjon: Et matematisk begrep som kan tolkes som en tabell med verdier. Presist: En mengde av tupler Relasjonsdatabase: En samling relasjoner INF3100-18.1.2005 - Ragnar Normann 3

Relasjoner - terminologi Relasjonsnavn Relasjonsskjema Attributt Personale primærnøkkel Ans# Navn Fdato Pers# Avd 10 9 8 12 Gro Berit Bjørn Liv 290264 131172 150571 031078 39201 35697 34322 39201 Tuppel/forekomst Instans/forekomster INF3100-18.1.2005 - Ragnar Normann 4

Formelle definisjoner Domene: En mengde atomære verdier Attributt: Et navn på en rolle spilt av et domene («kolonnenavn») Relasjonsskjema R(A1,A2,,An): En navngitt mengde attributter R = {A1,A2,,An} der R er relasjonsnavnet n kalles relasjonens grad eller aritet Instans av et relasjonsskjema R(A1,A2,,An): En mengde {t1,t2,,tm} der hver tk er et n-tuppel av verdier fra domenene til A1,A2,,An (noen kan være ) Relasjon: Et relasjonsskjema med en tilhørende instans Relasjonsskjemaet kalles relasjonens intensjon Instansen kalles relasjonens ekstensjon INF3100-18.1.2005 - Ragnar Normann 5

Merk: Tuplenes rekkefølge i en instans er vilkårlig Verdienes rekkefølge i et tuppel er vilkårlig I en instans kan det ikke finnes to like tupler Hver av verdiene i et tuppel er hentet fra et domene eller er Et domene kan være endelig eller uendelig To attributter i et relasjonsskjema kan ha samme domene, men ikke samme navn INF3100-18.1.2005 - Ragnar Normann 6

Relasjonsdatabaser - definisjoner Relasjonsdatabaseskjema: Samling av relasjonsskjemaer + integritetsregler Relasjonsdatabaseinstans: Samling av relasjonsinstanser Relasjonsdatabase = relasjonsdatabaseskjema + relasjonsdatabaseinstans INF3100-18.1.2005 - Ragnar Normann 7

Nøkler og nøkkelattributter INF3100-18.1.2005 - Ragnar Normann 8

Nøkler og nøkkelattributter Personale Ans# Navn Fdato Pers# Avd 10 9 8 12 Gro Berit Bjørn Liv 290264 131172 150571 031078 39201 35697 34322 39201 Vi ønsker ikke at to ansatte skal kunne ha samme Ans# To personer kan aldri ha samme fødselsnummer = Fdato + Pers# INF3100-18.1.2005 - Ragnar Normann 9

Definisjon av nøkler Gitt et skjema R(A1,A2,,An) med tilhørende integritetsregler La X være en delmengde av {A1,A2,,An} Hvis t er et tuppel i en instans av R, betegner t[x] verdiene i t s X-attributter Supernøkkel: En delmengde X av {A1,A2,,An} som er slik at hvis t og u er to tupler hvor t u, så er t[x] u[x] Kandidatnøkkel: En minimal supernøkkel Dvs: Fjerning av hvilket som helst attributt fører til at de gjenværende attributtene ikke lenger utgjør en supernøkkel Primærnøkkel: En utvalgt blant kandidatnøklene Alle relasjoner skal ha nøyaktig én primærnøkkel Nøkkelattributt (prime attribute): Attributt som er med i (minst) en kandidatnøkkel Supernøkler benyttes til å uttrykke integritetsregler INF3100-18.1.2005 - Ragnar Normann 10

Fremmednøkler Barn Løpe# Navn Fdato Avd TilknPers 2 5 4 7 Lisa Trym Anne Anne 180501 030204 301101 151203 Rosa Pantern Tommeliten 9 8 Vi vil at TilknPers skal referere til forekomster i Personaletabellen INF3100-18.1.2005 - Ragnar Normann 11

Fremmednøkler Fremmednøkkel: Ett eller flere attributter som peker ut/refererer primærnøkkelen i en annen relasjon Barn Personale Ans# Navn Fdato Pers# Avd 10 9 8 12 Gro Berit Bjørn Liv 290264 131172 150571 031078 39201 35697 34322 39201 Løpe# Navn Fdato Avd TilknPers 2 5 4 7 Lisa Trym Anne Anne 180501 030204 301101 151203 Rosa Pantern Tommeliten 9 8 INF3100-18.1.2005 - Ragnar Normann 12

Fremmednøkler Fremmednøkkelen må ha samme antall attributter som primærnøkkelen i den relasjonen den peker ut, og attributtene må ha parvis samme domener Korresponderende attributter behøver ikke å ha samme navn Det er lov å ha fremmednøkler til «seg selv» Fremmednøkler benyttes til å uttrykke integritetsregler INF3100-18.1.2005 - Ragnar Normann 13

Påkrevde integritetsregler i relasjonsdatabaser Entitetsintegritet: Alle relasjonsskjemaer skal ha en og bare en primærnøkkel Ingen av attributtene i primærnøkkelen får være Referanseintegritet: Hvis fremmednøkkelen ikke er, så skal det finnes et tuppel i den refererte relasjonen hvor primærnøkkelen har samme verdi som fremmednøkkelen (dvs. at det refererte tuppelet skal eksistere) Domeneintegritet: Alle verdier skal være atomære og hentet fra vedkommende attributts domene (Dessuten kan være tillatt «verdi» for noen attributter) I tillegg kan databasen ha andre integritetsregler, for eksempel kandidatnøkler som ikke er primærnøkler INF3100-18.1.2005 - Ragnar Normann 14

Funksjonelle avhengigheter INF3100-18.1.2005 - Ragnar Normann 15

Formell definisjon av funksjonell avhengighet Gitt et relasjonsskjema R(A1,A2,,An) og la X, Y være delmengder av {A1,A2,,An} 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 INF3100-18.1.2005 - Ragnar Normann 16

Funksjonelle avhengigheter (forts.) 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» Merk at hvis X er en supernøkkel, så holder X Y for enhver Y Omvendt: Hvis X Y for enhver Y, så er X en supernøkkel FDer er integritetsregler INF3100-18.1.2005 - Ragnar Normann 17

Ekvivalente mengder av FDer La S, T være to mengder av FDer Definisjon: Vi sier at S følger av T hvis det er slik at enhver instans som oppfyller alle FDer i T, også oppfyller alle FDer i S Definisjon: Vi sier at S og T er ekvivalente hvis S følger av T og T følger av S INF3100-18.1.2005 - Ragnar Normann 18

Armstrongs slutningsregler 1. Refleksivitet: Hvis Y er en delmengde av X, så X Y 2. Utvidelse: Hvis X Y, så XZ YZ 3. Transitivitet: Hvis X Y og Y Z, så X Z Regelsettet er Sunt: Vi kan ikke utlede selvmotsigelser Komplett: Alle FDer som kan vises å følge fra en mengde FDer ved bruk av definisjonen av FD, kan også vises ved å bare bruke slutningsreglene INF3100-18.1.2005 - Ragnar Normann 19

Tillukningen av X mhp F Definisjon av tillukningen av X mhp F: La X være en mengde attributter og F en mengde FDer Da er tillukningen av X med hensyn på F lik mengden av attributter som er bestemt av X Notasjon: X + (mhp F) INF3100-18.1.2005 - Ragnar Normann 20

Tillukningsalgoritmen Algoritme som beregner X + mhp. F: 1. T=X 2. Sålenge T forandres: Søk etter Y Z i F hvor Y er en delmengde av T Hvis slik Y fins: Legg Z inn i T 3. X + =T Test som avgjør om en FD X Y følger fra en mengde FDer F: 1. Beregn X + mhp. F 2. Hvis alle attributtene i Y er med i X +, følger X Y av F Hvis ikke, følger ikke X Y av F INF3100-18.1.2005 - Ragnar Normann 21

Hvordan finne alle kandidatnøkler (minimale supernøkler) Gitt et skjema R(A1,A2,,An) og en mengde FDer F 1. La S = {A1A2... An} (A1A2... An er en supernøkkel) La T = { } 2. For hver supernøkkel X i S: For hvert attributt A i X: Sett Y = X-{A} og beregn Y + mhp. F Hvis Y + =A1A2... An, er X ikke en minimal supernøkkel; Y er også en supernøkkel, så legg Y i S Hvis Y + A1A2... An for alle slike Y, er X en minimal supernøkkel I så fall, legg X i T Fjern X fra S 3. Nå er T mengden av alle minimale supernøkler mhp. F Algoritmen er ikke særlig effektiv, men den virker INF3100-18.1.2005 - Ragnar Normann 22