INF1300 Introduksjon til databaser



Like dokumenter
INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

INF1300. Grunnbegrepene i ORM: fakta, begreper, roller, faktatyper, broer, entydighetsskranker, totale roller, funksjonelle avhengigheter

IN2090 Databaser og datamodellering ORM 1

INF Introduksjon til databaser ORM I

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Representasjon n-1-regelen

Dataorientert modellering

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Representasjon n-1-regelen Verdiskranker Mengdeskranker

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker

Vegard Nossum. 21. oktober 2010

Notater: INF1300. Veronika Heimsbakk 8. januar 2013

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Verdiskranker Mengdeskranker Underbegreper og underbegrepsskranker Kombinerte totale roller

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

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

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

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Verdiskranker Mengdeskranker

INF1300 Introduksjon til databaser

Språk for dataorientert modellering

Dataorientert modellering

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

Informasjonsbærende representasjoner

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

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

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

IN2090 Introduksjon til databaser

Realiseringsalgoritmen fra ORM til relasjoner Intro til mengdeskranker i ORM

INF1300 Introduksjon til databaser

Dagens tema: Ekvivalente stier og joinskranker Ringskranker Informasjonsbærende representasjoner Behandling av tid

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

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

Dagens tema: Realiseringsalgoritmen (også kalt "grupperingsalgoritmen") fra ORM-diagram til relasjonsskjema

IN2090 Introduksjon til databaser

Dagens tema: Underbegreper og underbegrepsskranker Kombinerte totale roller Behandling av tid Informasjonsbærende representasjoner Ringskranker

Datamodellering med ORM

Dagens tema: Ringskranker Informasjonsbærende representasjoner Behandling av tid Tommelfingerregler

INF1300 Introduksjon til databaser

Relasjonsdatabasedesign

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

UNIVERSITETET I OSLO

INF1300 Introduksjon til databaser

Dagens tema: Ringskranker Klisjéer (mønstre) Tommelfingerregler

UNIVERSITETET I OSLO INF1300. Dagens tema: Ringskranker. Tommelfingerregler. Institutt for informatikk. INF Ellen Munthe-Kaas 1

Relasjonsdatabasedesign

Datamodellering med UML (forts.)

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

*UXSSHULQJ IRU JUDXWVNDOOHU (QYLVXHOOJXLGHJMHQQRPQRHQ DY1,$0JUXSSHULQJHQV XQGHUIXQGLJKHWHU

Forelesning INF1300. Simen Buodd. Plenumstime 8. September 2015

Relasjonsdatabasedesign

Relasjonsdatabasedesign

INF3100 Databasesystemer

Modellenes to formål. Datamodellering med UML (forts.) Fra naturlig språk til datamodell. Figur 5-2. Ogdens trekant

1. Datamodellering Kommentarer til læreboka

INF1300 Introduksjon til databaser

Relasjonsdatabasedesign

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

UNIVERSITETET I OSLO

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

Datamodellering med UML. Modellenes to formål. The Unified Modeling Language - UML

INF3100 Databasesystemer

Øvelser uke 35. Oppgave

INF212 - Databaseteori. Kursinnhold

INF1300 Introduksjon til databaser

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

Datamodellering med UML

Sensorveiledning for IN2090 og INF desember :30 18:30 (4 timer)

Dagens plan. INF3170 Logikk. Induktive definisjoner. Eksempel. Definisjon (Induktiv definisjon) Eksempel

FOL: syntaks og representasjon. 15. og 16. forelesning

UNIVERSITETET I OSLO. Det matematisk-naturvitenskapelige fakultet

Oppdateringsanomalier Normalformer

Dagens tema: Oppdateringsanomalier Normalformer

Ekvivalente stier (Equivalence of Path, EOP) i storm

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

Spesifikasjon av Lag emne

Den redundansfri datamodellen

Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer

The Unified Modeling Language - UML

Lærerveiledning. Oppgave 1. Et rektangel har sidelengder 15 cm og 9 cm. Tina klipper bort et kvadrat i hvert hjørne. Hvert kvadrat har omkrets 8 cm.

Fra krav til objektdesign

INF4170 Logikk. Forelesning 12: Automatisk bevissøk IV matriser og koblingskalkyle. Bjarne Holen. Institutt for informatikk, Universitetet i Oslo

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF3170 Logikk. Forelesning 3: Utsagnslogikk, semantikk, sekventkalkyle. Roger Antonsen. Institutt for informatikk, Universitetet i Oslo

INF INF1820. Arne Skjærholt INF1820. Dagens språk: Russisk. dyes yataya l yektsiya. Arne Skjærholt. десятая лекция

Det gjenstår nå kun å definere hva som skal være primærnøkkel i rolle rabellen.

Dagens tema. Den redundansfri datamodellen. Modellenes to formål. Individer i interesseområdet

Spesifikasjon av Lag emne. Kursregistrering bruksmønstermodell (ny versjon) Dagens forelesning. Fra krav til objektdesign

Flere skranker i ORM Integritetsregler med «CHECK» i SQL

INF1800 LOGIKK OG BEREGNBARHET

Etter uke 9 skal du. Introduksjon til objektorientert programmering. Innhold. Klasser som abstraksjoner

MAT1030 Diskret Matematikk

Innhold. INF1000 Høst Unified Modeling Language (UML) Unified Modeling Language (UML)

FASIT/LF FOR EKSAMEN TMA4140, H07

INF1300 Introduksjon til databaser

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

Transkript:

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Grunnbegrepene i ORM Sammenheng mellom ORM og vanlig språk Elementære setninger (fakta) Faktatyper og broer Entydighetsskranker og totale roller Funksjonelle avhengigheter Institutt for informatikk INF1300-18.08.2015 1

Ogdens trekant 2

Ogdens trekant og ORM I ORM tegner vi begreper og representasjoner som hhv. heltrukne og stiplede rektangler med runde hjørner Eksempel: Begrepet (Entity type) Person Representasjonen (Value type) Fødselsnummer I ORM brukes ordet objekttyper som en felles betegnelse på begreper og representasjoner 3

Setningers aritet - 1 Den elementære setningen: «Studenten med navn Anne fikk i emnet med emnekode INF1010 resultatet karakteren B» inneholder tre begreper: «student», «emne» og «resultat» Antall begreper i en setning kalles setningens aritet Vårt eksempel har aritet 3 4

Setningers aritet - 2 Setninger med aritet 1 kaller vi unære Setninger med aritet 2 kaller vi binære Setninger med aritet 3 kaller vi ternære Man kan konstruere elementære setninger med vilkårlig høy aritet Elementære setninger med aritet > 3 er sjeldne, så vi gir dem ikke egne navn (n-ære setninger) 5

Unære setninger Disse er vanlige i dagligtalen, men sjeldne i en informasjonsmodell Eksempel: En person med navn Siri sover En unær setning kan alltid erstattes av en binær setning hvor ett av begrepene har boolsk representasjon Eksempel: En person med navn Siri har sovestatus med boolsk verdi true 6

Binære setninger Disse er vanlige i dagligtalen og enda vanligere i en informasjonsmodell Eksempel: En person med navn Siri eier en bil med reg.nr DL12345 Binære (og unære) setninger er alltid elementære En ORM informasjonsmodell baserer seg nesten i sin helhet på binære setninger Vi skal neste uke se hvordan vi med et knep kan uttrykke elementære setninger med aritet n > 2 ved hjelp av binære setninger 7

Setning med aritet 4 Eksempel på en elementær setning med aritet 4: 25.8.2008 lånte Per kr 200 000 av Nordea 8

Fakta og setningers dype struktur Setningen: «En person med navn Siri eier en bil med reg.nr DL12345» kan også leses baklengs: «En bil med reg.nr DL12345 eies av en person med navn Siri» De to setningene har samme meningsinnhold Lingvistene kaller dette meningsinnholdet for setningenes dype struktur Vi informatikere kaller et slikt setningspar et faktum, og vi sier at ORM-metoden er faktaorientert informasjonsmodellering 9

Roller og faktatyper Se på setningsparet: «En person med navn Siri eier en bil med reg.nr DL12345» og «En bil med reg.nr DL12345 eies av en person med navn Siri» Her kan vi åpenbart få lignende fakta ved å bytte ut forekomsten «Siri» med et annet navn og/eller forekomsten «DL12345» med et annet reg.nr Vi sier at begrepet «Person» spiller rollen «eier» overfor begrepet «Bil», og at «Bil» spiller rollen «eies av» overfor «Person» Et slikt rollepar mellom to begreper kalles en (binær) faktatype 10

Faktatyper i ORM Vårt eksempel på en faktatype mellom begrepene Person og Bil tegner vi slik 11

Broer En bro er en forbindelse mellom et begrep og en representasjon Eksempel: Broen mellom Person og Fødselsnummer: 12

Setningstyper Ordet setningstype er en felles betegnelse på faktatyper og broer Broer er alltid binære de forbinder ett begrep og én representasjon Faktatyper kan ha vilkårlig antall roller (aritet) hver rolle skal være knyttet til eksakt ett begrep et begrep kan spille flere roller i samme faktatype 13

Rollenavn I faktatyper bør alle rollenavn inneholde et verb (Hvis ikke, er det grunn til å tro at rollenavnet er dårlig valgt) I broer er det vanlig med preposisjoner som rollenavn De to vanligste rolleparene er med/for med/på 14

Fakta setningers dype struktur Dette diagrammet kan leses begge veier: 15

Faktatype med forekomsttabell Person eier / eies av Bil Legg merke til at en faktatype med forekomsttabell gir oss like mange fakta som det er linjer i forekomsttabellen 16

Entydighetsskranker - 1 Person Bil eier / eies av Anta at vi har en forretningsregel som sier at en bil bare kan ha én eier (mens en person kan eie flere biler) Da kan ikke både Siri og Arne være eier av DL12345 17

Entydighetsskranker - 2 Person Bil eier / eies av I ORM-diagrammet setter vi en pil over rollen hvor samme forekomst ikke kan gjentas i forekomsttabellen Pilen kalles en entydighetsskranke Entydighetsskranker kan gå over flere roller da er det forekomstkombinasjonen i rollene som ikke kan gjentas 18

Bruk av forekomstdiagrammer Forekomstdiagrammer er ikke en del av ORMmodellen, men et nyttig, og ofte nødvendig, hjelpemiddel for å få riktige skranker i modellen Derfor er det ikke så nøye hvilken representasjon vi bruker i forekomsttabellene Eksempelvis kan vi ha brukt et ansattnummer eller fødselsnummer for å representere personer, mens vi i forekomsttabellene bruker navn I så fall antar vi for anledningen at alle personer har forskjellige navn 19

Ekteskap - 1 Vi skal nå se på en faktatype mellom en kvinne og en mann kalt ekteskap Uten entydighetsskranke(r) ser modellen slik ut: Kv inne Mann gift med / gift med Hvilke(n) entydighetsskranke(r) skal vi ha? Lag forekomsttabell og sett på entydighetsskranke(r)! 20

Ekteskap - 2 De fleste har vel foreslått modellen nedenfor Lag forekomsttabell Kv inne Mann gift med / gift med 21

Monogami Vi kaller den en 1:1 (én-til-én) faktatype mellom (begrepene) Kvinne og Mann Kv inne gift med / gift med Mann 22

Ekteskap - 3 En annen mulighet er nedenstående modell Lag forekomsttabell Kv inne Mann gift med / gift med 23

Polygyni Polygyni (flerkoneri) er ikke en uvanlig ekteskapsform Dette er en n:1 (mange-til-én) faktatype fra Kvinne til Mann Kv inne Mann gift med / gift med 24

Ekteskap - 4 En tredje mulighet er nedenstående modell Lag forekomsttabell Kv inne Mann gift med / gift med 25

Polyandri Polyandri (flermanneri) var nok vanligere før, men forekommer fortsatt, blant annet i Polynesia Dette er en 1:n (én-til-mange) faktatype fra Kvinne til Mann Kv inne Mann gift med / gift med 26

Ekteskap - 5 En siste mulighet er nedenstående modell Lag forekomsttabell Kv inne Mann gift med / gift med 27

Polygami Ekte polygami (flergifte) har vel aldri vært en sosialt anerkjent samlivsform Unntaket måtte være hippie-tidens kollektiver med utstrakt praktisering av fri sex Dette er en m:n (mange-til-mange) faktatype Kv inne Mann gift med / gift med 28

Totale roller Person eier / eies av Dersom alle biler har en eier, sier matematikerne at vi har en total funksjon fra Bil til Person (den er definert for alle forekomster av Bil) Vi sier at rollen «eies av» er en total rolle for Bil og markerer det med en prikk på rollen Merk: Det at rollen er total, gjør at hver gang vi legger inn en bil i databasen, må vi samtidig registrere hvem som eier bilen Bil 29

Perfekt bro - 1 En 1:1 bro der begrepsrollen er total, kalles en perfekt bro Person Fødselnummer Perfekte broer er så vanlige at vi har en egen kortform for dem (de implisitte rollenavnene er «med/på» eller «med/for» («with/of»)): De to tegnemåtene er ekvivalente 30

Perfekt bro - 2 Hvis vi har en perfekt bro hvor navnet på representasjonen er lik begrepsnavnet med et suffiks, har vi en enda mer kompakt notasjon Eksempel: er en kortform for 31

Mer om entydighetsskranker Merk at en faktatype (det gjelder også broer) alltid skal ha (minst) en entydighetsskranke Hvis ikke, kunne samme faktum bli lagret vilkårlig mange ganger Merk også at en kort entydighetsskranke er strengere enn en lang Det er feil å la en lang entydighetsskranke dekke en kort 32

Funksjonelle avhengigheter Person Bil eier / eies av Det at en bil alltid har én, og bare én, eier, gjør at hvis vi vet hvilken bil vi har (dvs. at vi kjenner bilens reg.nr), så vet vi også hvilken person som eier bilen Faktatypen fra Bil til Person definerer altså en funksjon fra forekomstene av Bil til forekomstene av Person som til en gitt bil gir oss eieren Vi sier at Person er funksjonelt avhengig av Bil, eller at vi har en FD (Functional Dependency) fra Bil til Person 33