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



Like dokumenter
INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

IN2090 Databaser og datamodellering ORM 1

INF Introduksjon til databaser ORM I

Dataorientert modellering

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

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

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

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

INF1300 Introduksjon til databaser

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker

INF1300 Introduksjon til databaser

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Verdiskranker Mengdeskranker

Notater: INF1300. Veronika Heimsbakk 8. januar 2013

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

Språk for dataorientert modellering

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

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

Vegard Nossum. 21. oktober 2010

INF1300 Introduksjon til databaser

Forelesning 9 mandag den 15. september

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

Dataorientert modellering

Realiseringsalgoritmen fra ORM til relasjoner Intro til mengdeskranker i ORM

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

INF1300 Introduksjon til databaser

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

Hefte med problemløsingsoppgaver. Ukas nøtt 2008/2009. Tallev Omtveit Nordre Modum ungdomsskole

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

Mer om likninger og ulikheter

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

INF1300 Introduksjon til databaser

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

Evaluering av kollokviegrupper i matematikk og programmering høsten jenter har svart på evalueringen

1.8 Digital tegning av vinkler

Legg merke til at at over de blå klossene er det flere kategorier av kommandoer i forskjellige farger, for eksempel

Emnekode: LV121A Dato: Alle skrevne og trykte hjelpemidler

Labyrint Introduksjon Scratch Lærerveiledning. Steg 1: Hvordan styre figurer med piltastene

INF1300 Introduksjon til databaser

Informasjonsbærende representasjoner

INF1300 Introduksjon til databaser

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

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

Elevens ID: Elevspørreskjema. 4. årstrinn. Institutt for lærerutdanning og skoleutvikling Universitetet i Oslo

IN2090 Introduksjon til databaser

UNIVERSITETET I OSLO

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

Repetisjon: høydepunkter fra første del av MA1301-tallteori.

Relasjonsdatabasedesign

INF1300 Introduksjon til databaser

Endring av e-postoppsett med IMAP til ny e-posttjener

Mesteparten av kodingen av Donkey Kong skal du gjøre selv. Underveis vil du lære hvordan du lager et enkelt plattform-spill i Scratch.

Preken 14. august s i treenighet Kapellan Elisabeth Lund. Tekst: Joh. 15, 13-17

Kapittel 4: Logikk (predikatlogikk)

LOGGBOK for. deltakere i praksis. Oppdag talentene dine

Grenseverdier og asymptoter. Eksemplifisert med 403, 404, 408, 409, 410, 411, 412, 414, 416, 417, 418, 419

Datamodellering med ORM

Datamodellering med UML

Niels Henrik Abels matematikkonkurranse Løsninger

UNIVERSITETET I OSLO

3. Introduksjon til prosjektet Hringr. Scratch fra scratch Enkel programmering for nybegynnere

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

Uttrykket 2 kaller vi en potens. Eksponenten 3 forteller hvor mange ganger vi skal multiplisere grunntallet 2 med seg selv. Dermed er ) ( 2) 2 2 4

Nåverdi og pengenes tidsverdi

INF1300 Introduksjon til databaser

Hvordan møte kritikk?

Vi sier også at for eksempel 16 er kvadratet av 4. Kvadrattallene kan vi framstille som figurtall av kuler på denne måten:

Kom godt i gang. Ordboksverktøyet 1.0

Institutt for lærerutdanning og skoleutvikling Universitetet i Oslo. 4. klasse

The Unified Modeling Language - UML

IN2090 Introduksjon til databaser

LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke September 2012 Siri Moe Jensen EKSEMPLER

Hva er eksamensangst?

Forelesning 22 MA0003, Mandag 5/ Invertible matriser Lay: 2.2

Flagg Erfaren Scratch Lærerveiledning

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

INF1300 Introduksjon til databaser

Høringsnotat - unntak fra reglene om beskatning av lån fra selskap til aksjonær

INF212 - Databaseteori. Kursinnhold

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

4. kurskveld: Brøk og geometri

Positiv og virkningsfull barneoppdragelse

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

Flere skranker i ORM Integritetsregler med «CHECK» i SQL

Relasjonsdatabasedesign

Når tallene varierer.

Mal for vurderingsbidrag

Arbeidstid. Medlemsundersøkelse mai Oppdragsgiver: Utdanningsforbundet

Eneboerspillet del 2. Håvard Johnsbråten, januar 2014

Vårt sosiale ansvar når mobbing skjer

Flerveis søketrær og B-trær

Matematikk Øvingsoppgaver i numerikk leksjon 7 Numerisk derivasjon

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

Startveiledning for det nye AdWords-grensesnittet En veiledning til endringene i kampanjeadministrasjonen

Transkript:

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

Ogdens trekant begrep representasjon fenomen i UoD michael@ifi.uio.no INF1300 31. august 2011 (uke 35) 2

Ogdens trekant og ORM I ORM tegner vi begreper og representasjoner som hhv. heltrukne og stiplede rektangler med runde hjørner Eksempel: Begrepet Person og representasjonen Fødselsnummer tegnes slik: Person Fødselsnummer I ORM brukes ordet objekttyper som en felles betegnelse på begreper og representasjoner michael@ifi.uio.no INF1300 31. august 2011 (uke 35) 3

ORM vs storm Verktøyet storm bruker en gammel ORM-dialekt (NIAM Natural language Information Analysis Method) I storm brukes sirkler i stedet for rektangler Et begrep kalles en NoLOT (Non Lexical Object Type) NoLOT En representasjon kalles en LOT (Lexical Object Type) LOT fenomen i UoD michael@ifi.uio.no INF1300 31. august 2011 (uke 35) 4

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 michael@ifi.uio.no INF1300 31. august 2011 (uke 35) 5

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) michael@ifi.uio.no INF1300 31. august 2011 (uke 35) 6

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 Unære setninger er tillatt i ORM, men ikke i modelleringsverktøyet storm michael@ifi.uio.no INF1300 31. august 2011 (uke 35) 7

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 michael@ifi.uio.no INF1300 31. august 2011 (uke 35) 8

Setning med aritet 4 Eksempel på en elementær setning med aritet 4: 31.8.2011 lånte Per kr 200 000 av Skandiabanken michael@ifi.uio.no INF1300 31. august 2011 (uke 35) 9

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 michael@ifi.uio.no INF1300 31. august 2011 (uke 35) 10

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 michael@ifi.uio.no INF1300 31. august 2011 (uke 35) 11

Faktatyper i ORM Vårt eksempel på en faktatype mellom begrepene Person og Bil tegnes slik i ORM1 øverst, en mer kompakt skrivemåte ORM2 (brukes i læreboka) nederst. (Microsofts Visio har maler for en variant av ORM1) De to tegnemåtene er ekvivalente og kan brukes om hverandre michael@ifi.uio.no INF1300 31. august 2011 (uke 35) 12

Broer En bro er en forbindelse mellom et begrep og en representasjon Her er de to måtene vi har i ORM for å tegne broen mellom Person og Fødselsnummer: michael@ifi.uio.no INF1300 31. august 2011 (uke 35) 13

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 michael@ifi.uio.no INF1300 31. august 2011 (uke 35) 14

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å michael@ifi.uio.no INF1300 31. august 2011 (uke 35) 15

Fakta setningers dype struktur Dette diagrammet kan leses begge veier: michael@ifi.uio.no INF1300 31. august 2011 (uke 35) 16

Faktatype med forekomsttabell Legg merke til at en faktatype med forekomsttabell gir oss like mange fakta som det er linjer i forekomsttabellen michael@ifi.uio.no INF1300 31. august 2011 (uke 35) 17

Entydighetsskranker - 1 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 michael@ifi.uio.no INF1300 31. august 2011 (uke 35) 18

Entydighetsskranker - 2 I ORM-diagrammet setter vi en pil med spiss i begge ender 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 michael@ifi.uio.no INF1300 31. august 2011 (uke 35) 19

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 michael@ifi.uio.no INF1300 31. august 2011 (uke 35) 20

Ekteskap - 1 Vi skal nå se på en faktatype mellom en kvinne og en mann kalt ekteskap Uten entydighetsskranke(r) ser modellen slik ut: Hvilke(n) entydighetsskranke(r) skal vi ha? Lag forekomsttabell og sett på entydighetsskranke( r)! michael@ifi.uio.no INF1300 31. august 2011 (uke 35) 21

Ekteskap - 2 De fleste har vel foreslått modellen nedenfor Lag forekomsttabell Kvinne gift med gift med Mann michael@ifi.uio.no INF1300 31. august 2011 (uke 35) 22

Monogami Kvinne gift med gift med Mann Miriam Rose Miriam Ali Ali Martin I Norge er dette eneste lovlige ekteskapsform Vi kaller den en 1:1 (én-til-én) faktatype mellom (begrepene) Kvinne og Mann (idag mellom Person og Person) michael@ifi.uio.no INF1300 31. august 2011 (uke 35) 23

Ekteskap - 3 En annen mulighet er nedenstående modell Vi lager forekomsttabell: Kvinne gift med gift med Mann michael@ifi.uio.no INF1300 31. august 2011 (uke 35) 24

Polygyni Kvinne gift med gift med Mann Miriam Rose Miriam Ali Ali Martin Polygyni (flerkoneri) er ikke en uvanlig ekteskapsform Dette er en n:1 (mange-til-én) faktatype fra Kvinne til Mann michael@ifi.uio.no INF1300 31. august 2011 (uke 35) 25

Ekteskap - 4 En tredje mulighet er nedenstående modell Vi lager forekomsttabell: Kvinne gift med gift med Mann michael@ifi.uio.no INF1300 31. august 2011 (uke 35) 26

Polyandri Kvinne gift med gift med Mann Miriam Rose Miriam Ali Ali Martin 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 michael@ifi.uio.no INF1300 31. august 2011 (uke 35) 27

Ekteskap - 5 En siste mulighet er nedenstående modell Vi lager forekomsttabell: Kvinne gift med gift med Mann michael@ifi.uio.no INF1300 31. august 2011 (uke 35) 28

Polygami Kvinne gift med gift med Mann Miriam Rose Miriam Ali Ali Martin Ekte polygami (flergifte) har vel aldri vært en sosialt anerkjent samlivsform. Unntaket måtte kanskje være hippietidens kollektiver. Dette er en m:n (mange-til-mange) faktatype michael@ifi.uio.no INF1300 31. august 2011 (uke 35) 29

Totale roller Person eier eies av Bil 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 kule (liten fylt sirkel) 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 michael@ifi.uio.no INF1300 31. august 2011 (uke 35) 30

Perfekt bro - 1 En 1:1 bro der begrepsrollen er total, kalles en perfekt bro Person med på Fødselsnummer Perfekte broer er så vanlige at vi har en egen kortform for dem (de implisitte rollenavnene er med/på eller med/for (with/of)): Person (Fødselsnummer) De to tegnemåtene er ekvivalente michael@ifi.uio.no INF1300 31. august 2011 (uke 35) 31

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: Person (.id) som er en kortform for Person med på PersonId michael@ifi.uio.no INF1300 31. august 2011 (uke 35) 32

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 michael@ifi.uio.no INF1300 31. august 2011 (uke 35) 33

Funksjonelle avhengigheter Person eier eies av Bil 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 michael@ifi.uio.no INF1300 31. august 2011 (uke 35) 34