INF1300 Introduksjon til databaser

Like dokumenter
IN2090 Introduksjon til databaser

INF3100 Databasesystemer

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

INF1300 Introduksjon til databaser

INF212 - Databaseteori. Kursinnhold

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

INF3100 Databasesystemer

INF1300 Introduksjon til databaser

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

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

INF1300 Introduksjon til databaser

Relasjonsdatabasedesign

Oppdateringsanomalier Normalformer

Relasjonsdatabasedesign

Dagens tema: Oppdateringsanomalier Normalformer

Relasjonsdatabasedesign

Relasjonsdatabaseteori

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

Oppdateringsanomalier. Normalformer. Institutt for informatikk INF

Realiseringsalgoritmen fra ORM til relasjoner Intro til mengdeskranker i ORM

Databaser: Relasjonsmodellen, del I

INF3100. Databasesystemer

INF3100 Databasesystemer

Relasjonsdatabasedesign

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

Plenum: Nøkler, normalformer og funksjonelle avhengigheter

Hva kjennetegner god relasjonsdatabasedesign? Eksempel: Grossistdatabase versjon 1

UNIVERSITETET. Relasjonsdatabasedesign

Notater: INF1300. Veronika Heimsbakk 8. januar 2013

INF3100 Databasesystemer

UNIVERSITETET I OSLO

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

Databaser. - Normalisering -

Relasjonsdatabasedesign

INF1300 Introduksjon til databaser

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

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Normalformer utover 4NF (ikke pensum)

Normalisering. Hva er normalisering?

Relasjonsalgebraen. Algebra

Normalisering. Hva er normalisering?

Relasjonsdatabasedesign

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

SQL Structured Query Language

Integritetsregler i SQL. Primærnøkler

Relasjonsdatabasedesign (forts.)

UNIVERSITETET I OSLO

Integritetsregler i SQL

Relasjonsdatabasedesign

Normalisering. Hva er normalisering?

Relasjonsdatabasedesign

Relasjonsdatabasedesign

1. Relasjonsmodellen Kommentarer til læreboka

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

UNIVERSITETET I OSLO

Relasjonsdatabasedesign (forts.)

INF1300 Introduksjon til databaser

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

Relasjonsdatabasedesign

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

Kunnskapsorganisasjon og gjenfinning 1. Relasjonsmodellen og -databaser

UNIVERSITETET I OSLO

Repetisjon: (nesten) alt du trenger å kunne om ORM og realisering

Integritetsregler i SQL

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

Oppgaver Oppgave a: Sett opp mulige relasjoner

IN2090 Databaser og datamodellering. Databasedesign og normalformer

INF1300 Introduksjon til databaser

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

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

Repetisjon: (nesten) alt du trenger å kunne om ORM og realisering

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

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

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

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

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

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

Mengdelære INF1800 LOGIKK OG BEREGNBARHET FORELESNING 2: MENGDELÆRE. Læreboken. Mengder. Definisjon (Mengde) Roger Antonsen

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

Løsningsforslag for Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

UNIVERSITETET I OSLO

Repetisjon: Normalformer og SQL

INF1300 Introduksjon til databaser

Transkript:

UNIVERSITETET I OSLO Dagens tema: INF1300 Introduksjon til databaser Relasjonsmodellen (funksjonelle avhengigheter og nøkler, integritetsregler) Institutt for informatikk INF1300 12.9.2016 1

Relasjonsmodellen Datamodell Mengde av begreper for å beskrive strukturen til en database Relasjonsmodellen Databasen kan betraktes som en samling av tabeller 2

Relasjoner og relasjonsdatabaser Personale Ans# Navn Fdato Pers# Avd 10 9 8 12 Gro Berit Bjørn Liv 290264 131172 150571 031079 39201 35697 34322 39201 Relasjon: Et matematisk begrep som kan tolkes som en tabell med verdier Relasjonsdatabase: En samling relasjoner indikerer at ingen verdi ligger lagret i denne posisjonen 3

Relasjoner terminologi relasjonsskjema relasjonsnavn attributt Personale Ans# Navn Fdato Pers# Avd 10 9 8 12 Gro Berit Bjørn Liv 290264 131172 150571 031079 39201 35697 34322 39201 instans/forekomster tuppel/forekomst 4

Relasjoner terminologi Personale dom(fdato) = {sekssifrede tall med begrensninger på hvilke tall som er lovlige} dom(avd) = {, Rosa pantern, Tommeliten, Trollungene} Ans# Navn Fdato Pers# Avd 10 9 8 12 Gro Berit Bjørn Liv 290264 131172 150571 031079 39201 35697 34322 39201 5

Formelle definisjoner Domene: En mengde atomære verdier. (At elementene i et domene er atomære, betyr at elementene ikke selv kan være mengder.) Attributt: Et navn på en rolle spilt av et domene («kolonnenavn»). Hvis A er et attributt, skriver vi dom(a) = D for å uttrykke at A er en rolle spilt av domenet D. Relasjonsskjema R(A1,A2,,An): En navngitt mengde attributter R = {A1,A2,,An} der R er relasjonsnavnet. n kalles relasjonens grad eller aritet. 6

Formelle definisjoner Instans av et relasjonsskjema R(A1,A2,,An): En mengde {t1,t2,,tm} («rader») der hver tk er et n-tuppel av verdier fra domenene til A1,A2,,An. (Noen av verdiene kan være, f.eks. fordi verdien for et attributt ikke er lagt inn ennå, fordi verdien er ukjent eller fordi den ikke er relevant.) Dersom t er et tuppel i en instans av R(A1,A2,,An) og t = <v1,v2,,vn>, så er f.eks. t[a2] = <v2> og t[a3,a1,a5] = <v3,v1,v5>. 7

Formelle definisjoner Relasjon: Et relasjonsskjema med en tilhørende instans. Relasjonsskjemaet kalles relasjonens intensjon. Instansen kalles relasjonens ekstensjon. 8

Merk: Tuplenes rekkefølge i en instans er vilkårlig Verdienes rekkefølge i et tuppel er i utgangspunktet ikke vilkårlig (dette er mest for at notasjonen skal bli enklere) I en instans kan det ikke finnes to like tupler Et domene kan være endelig eller uendelig To attributter i et relasjonsskjema kan ha samme domene, men ikke samme navn 9

Nøkler og nøkkelattributter Personale Ans# Navn Fdato Pers# Avd 10 9 8 12 Gro Berit Bjørn Liv 290264 131172 150571 031079 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# 10

Nøkler og nøkkelattributter Supernøkkel: En kombinasjon (delmengde) X av attributtene {A1,A2,,An} som er slik at hvis t og u er to tupler hvor t u, så er t[x] u[x]. Merk: Relasjonsskjemaet er alltid selv en supernøkkel Kandidatnøkkel: En minimal supernøkkel Dvs: Fjerning av et hvilket som helst attributt fører til at de gjenværende attributtene ikke lenger utgjør en supernøkkel. Supernøkler benyttes til å uttrykke integritetsregler 11

Nøkler og nøkkelattributter Primærnøkkel: En utvalgt blant kandidatnøklene. Alle relasjoner skal ha nøyaktig én primærnøkkel. Nøkkelattributt: Attributt som er med i (minst) en kandidatnøkkel. 12

Nøkler og nøkkelattributter Personale To ansatte skal ikke kunne ha samme Ans# To personer kan aldri ha samme fødselsnummer Ans# Navn Fdato Pers# Avd En kanidatnøkkel blir gjerne markert med én strek Er det mer enn én kanidatnøkkel, er primærnøkkelen markert med to streker Merk likheten mellom kandidatnøkler og entydighetsskranker i ORM: Begge angir at forekomster under skranken bare kan forekomme én gang 13

Funksjonelle avhengigheter Personale Ans# Navn Fdato Pers# Avd Det at en person har høyst ett Ans#, gjør at hvis vi vet hvilken person det er snakk om (dvs. vi kjenner personens Ans#), så vet vi også navnet, fødselsnummeret og avdelingen til personen. Primærnøkkelen definerer altså en funksjon fra forekomstene av Ans# til forekomstene av Navn, Fdato, Pers# og Avd. Det samme gjelder andre kandidatnøkler: Hvis vi kjenner forekomstene for attributtene Fdato og Pers#, så har vi bare én mulig verdi for hver av Ans#, Navn og Avd. Vi sier at Navn, Fdato, Pers#, Avd er funksjonelt avhengig av Ans#, eller at vi har en FD (Functional Dependency) fra Ans# til Navn, Fdato, Pers#, Avd. Den vanlige notasjonen for en FD er: Ans# Navn, Fdato, Pers#, Avd 14

Fremmednøkler Barn Løpe# Navn Fdato Avd TilknPers 2 5 4 7 Lisa Trym Anne Anne 180502 030205 301102 151204 Rosa Pantern Tommeliten 9 8 Vi vil at TilknPers skal referere til forekomster i Personaletabellen 15

Fremmednøkler Fremmednøkkel: Ett eller flere attributter som peker ut/refererer et tuppel i en annen relasjon. Barn Personale Ans# Navn Fdato Pers# Avd 10 9 8 12 Gro Berit Bjørn Liv 290264 131172 150571 031079 39201 35697 34322 39201 Løpe# Navn Fdato Avd TilknPers 2 5 4 7 Lisa Trym Anne Anne 180502 030205 301102 151204 Rosa Pantern Tommeliten 9 8 16

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. Noen databasesystemer tillater også fremmednøkler til kandidatnøkler som ikke er primærnøkler. Korresponderende attributter behøver ikke å ha samme navn. Det er lov å ha fremmednøkler til «seg selv» Fremmednøkler benyttes til å uttrykke integritetsregler 17

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). I tillegg kan databasen ha andre integritetsregler, for eksempel kandidatnøkler utover primærnøklene. 18

Relasjonsdatabaser - definisjoner Relasjonsdatabaseskjema: Samling av relasjonsskjemaer + integritetsregler Relasjonsdatabaseinstans: Samling av relasjonsinstanser Relasjonsdatabase = Relasjonsdatabaseskjema + relasjonsdatabaseinstans 19

Merk: I forskjellige relasjonsskjemaer kan attributtnavn gjenbrukes Notasjon for å skille mellom attributter med like navn: R.A i 20