INF Introduksjon til databaser ORM I

Like dokumenter
IN2090 Databaser og datamodellering ORM 1

INF1300 Introduksjon til databaser

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

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

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

INF1300 Introduksjon til databaser

IN2090 Introduksjon til databaser

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker

INF1300 Introduksjon til databaser

Dataorientert modellering

INF1300 Introduksjon til databaser

Notater: INF1300. Veronika Heimsbakk 8. januar 2013

Vegard Nossum. 21. oktober 2010

INF1300 Introduksjon til databaser

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Verdiskranker Mengdeskranker

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

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

Språk for dataorientert modellering

Dataorientert modellering

INF1300 Introduksjon til databaser

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

Datamodellering med ORM

IN2090: Ukeoppgaver uke 1 ( august)

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

Realiseringsalgoritmen fra ORM til relasjoner Intro til mengdeskranker i ORM

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

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

IN2090 Introduksjon til databaser

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

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

Informasjonsbærende representasjoner

Øvelser uke 35. Oppgave

INF212 - Databaseteori. Kursinnhold

INF1300 Introduksjon til databaser

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

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

INF3100 Databasesystemer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Ekvivalente stier (Equivalence of Path, EOP) i storm

INF1300 Introduksjon til databaser

Datamodellering med UML (forts.)

The Unified Modeling Language - UML

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

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

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

INF1300 Introduksjon til databaser

Datamodellering med UML

Flere skranker i ORM Integritetsregler med «CHECK» i SQL

INF3100 Databasesystemer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

Forelesning INF1300. Simen Buodd. Plenumstime 8. September 2015

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

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

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

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

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

INF1050 Klasseromsoppgave Uke 6

INF1300 Introduksjon til databaser

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

Informasjonssystemer, DBMSer og databaser

Den redundansfri datamodellen

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

INF1300 Introduksjon til databaser

Relasjonsdatabasedesign

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

INF1300 Introduksjon til databaser

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

SQL Structured Query Language

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

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

INF3100 Databasesystemer

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

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

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

UNIVERSITETET I OSLO. Det matematisk-naturvitenskapelige fakultet

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Dagens tema. Den redundansfri datamodellen. Modellenes to formål. Den grunnleggende konstruksjonen det elementære utsagnet

Fra krav til objektdesign

MATOPPSKRIFTER Obligatorisk oppgave nr. 2 i INF1300 høsten 2010

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

INF1050 Klasseromsoppgave Uke 7

UNIVERSITETET I OSLO

INF1300 Introduksjon til databaser

VÆRSTASJONER Obligatorisk oppgave nr. 2 i INF1300 høsten 2011

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

Transkript:

INF1300 - Introduksjon til databaser ORM I

Dagens tema: Grunnbegrepene i ORM Sammenheng mellom ORM og naturlig språk Elementære setninger (fakta) Faktatyper og broer Entydighetsskranker og påkrevde roller 2

ORM Object Role Modelling Tre vikgge prinsipper: 1. Ogdens trekant: Sammenhengen mellom virkelighet og modell 2. Naturlig språk: Menneskespråk/naturlig språk er det mest fundamentale kommunikasjonsverktøyet vi har. Modellen må kunne ukrykkes i naturlig språk for å sikre at den kan forstås fullt ut av informerte brukere (de som kjenner virksomhets-området) 3. 100%-prinsippet: Vi kan lage en nøyakgg nok modell av virkeligheten ved hjelp av naturlig språk 3

Universe of Discourse UoD domene interesseområde 4

For å lage et begrepsmessig skjema for UoD må vi velge hvilke begreper skjemaet skal inneholde 5

For å lage et begrepsmessig skjema for UoD må vi velge hvilke begreper skjemaet skal inneholde Fra kinobillettdomenet: Kino Film Rad Forestilling Dato Billett Sete 6

Representasjon I Gllegg må vi for hvert begrep bestemme oss for hvordan vi skal lagre informasjon om forekomster av deke begrepet 7

Representasjon I Gllegg må vi for hvert begrep bestemme oss for hvordan vi skal lagre informasjon om forekomster av deke begrepet Fra kinobillettdomenet: Kino kinonavn f.eks. Colloseum Film filmnavn f.eks. ' 七人の侍 ' Rad et naturlig tall mellom 1 og 54 Forestilling tidspunkt og navn på film og kino Dato dag, måned, år Billett billettnavn Sete - et naturlig tall mellom 1 og 29 8

Representasjon Vi kan ikke lagre kyr i databasen, så vi (eller bonden som skal registrere melkeproduksjon i en database) må finne en måte å lagre informasjon som idengfiserer hver enkelt ku 9

Representasjon En slik idengfikasjonsmåte kalles en verditype eller representasjonstype for begrepet 10

Ogdens trekant 11

Ogdens trekant Begrep Representasjon Fenomen i UoD 12

Ogdens trekant Begrep Ku MT NO 12345678 2001 Representasjon Fenomen i UoD 13

Elementære setninger En setning som ikke kan deles opp uten å miste meningsinnhold, kalles elementær Eksempel: Per liker is og brus Denne setningen er ikke elementær fordi den kan erstakes av de to elementære setningene Per liker brus Per liker is 14

Øvelse Hvilke av disse setningene er elementære? Dag er født 27. august 1996 Hans og Grete er søsken DK41050 er en hvit Toyota Yaris Anne fikk B i INF1010 Liv ble ansak som rådgiver 1.8.2003 15

Setninger og Ogdens trekant - 1 Se på setningen «Hanne tar IN1000» Det er mye informasjon som er underforståk: Hanne er navn på en student IN1000 er en emnekode Det vi mener er at studenten med navn Hanne tar emnet med emnekode IN1000 16

Setninger og Ogdens trekant - 1 Se på setningen «Hanne tar IN1000» Det er mye informasjon som er underforståk: Hanne er navn på en student IN1000 er en emnekode Det vi mener er at studenten med navn Hanne følger undervisning og er tak opp i emnet med emnekode IN1000 17

Setninger og Ogdens trekant - 2 La oss se nærmere på setningen: «Studenten med navn Hanne tar emnet med emnekode IN1000» «student» og «emne» er begreper «navn» og «emnekode» er deres verdityper (representasjonstyper) «Hanne» og «IN1000» er forekomster (data) 18

Setninger og faktatyper De to setningene under har samme meningsinnhold: «Studenten med navn Hanne tar emnet med emnekode IN1000» «Emnet med emnekode IN1000 har som deltaker studenten med navn Hanne» Vi kan forme liknende fakta ved å byke ut forekomstene: «Studenten med navn Henrik tar emnet med emnekode IN1020» (eller: «Emnet med emnekode IN1020 har som deltaker studenten med navn Henrik») I ORM tegner vi denne faktatypen slik: tar / har deltaker Student Emne 19

faktatype tar / har deltaker Student Emne Student tar / har deltaker Emne 20

Ogdens trekant og ORM I ORM tegner vi begreper og verdityper (representasjonstyper) som henholdsvis heltrukne og s)plede rektangler/sirkler/ elipser Eksempel: Begrepet Person og verditypen Fødselsnummer tegnes slik: 21

Ogdens trekant og ORM I ORM brukes ordet objekhype som en felles betegnelse på begreper og verdityper 22

Setningers aritet 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 23

Setningers aritet 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 sjeldnere, så vi gir dem ikke egne navn (n-ære setninger) 24

Setning med aritet 4 Eksempel på en elementær setning med aritet 4: 25.8.2008 lånte Per NOK 200 000 av Pål 25

Se på setningsparet: Roller og faktatyper «En person med navn Siri eier en bil med registreringsnummer DL12345» og «En bil med registreringsnummer DL12345 eies av en person med navn Siri» Her kan vi åpenbart få lignende fakta ved å byke ut forekomsten «Siri» med et annet navn og/eller forekomsten «DL12345» med et annet registreringsnummer 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 26

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

Person har førerkort 28

Student Karakter Emne fikk som resultat i 29

Person Dato Beløp er låntaker er långiver... er dato for lån... er beløp for lån 30

Broer En bro er en forbindelse mellom et begrep og en verditype (representasjonstype) Eksempel: Slik tegner vi broen mellom Person og Fødselsnummer i ORM: 31

Setningstyper Ordet setningstype er en felles betegnelse på faktatyper og broer 32

Setningstyper Ordet setningstype er en felles betegnelse på faktatyper og broer Broer er allgd binære de forbinder ek begrep og én verditype 33

Setningstyper Ordet setningstype er en felles betegnelse på faktatyper og broer Broer er allgd binære de forbinder ek begrep og én verditype Faktatyper kan ha et vilkårlig antall roller (aritet) hver rolle skal være knyket Gl nøyakgg ek begrep et begrep kan spille flere roller i samme faktatype (se f.eks. låneeksempelet ovenfor, der begrepet Person spiller rollene «er låntaker» og «er långiver») 34

Rollenavn I faktatyper bør alle rollenavn inneholde et verb (hvis ikke, er det grunn Gl å 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å 35

Fakta setningers dype struktur Person eier/eies av Bil med/på Dette diagrammet kan leses begge veier med/på Fødselsnummer Registreringsnummer 36

Person forekomsttabell eier/eies av Liv Ali Kyrre Anne Anne Anne DL12345 DL12345 ZN33344 BN65655 DK77777 DK77777 Bil 37

Person eier/eies av Liv Ali Kyrre Anne Anne Anne DL12345 DL12345 ZN33344 BN65655 DK77777 DK77777 Bil Anta at vi har en forretningsregel som sier at en bil bare kan ha én eier (mens en person kan eie flere biler) 38

Person eier/eies av Liv Kyrre Anne Anne DL12345 ZN33344 BN65655 DK77777 Bil Anta at vi har en forretningsregel som sier at en bil bare kan ha én eier (mens en person kan eie flere biler) 39

Person eier/eies av Liv Kyrre Anne Anne DL12345 ZN33344 BN65655 DK77777 Bil I ORM-diagrammet plasserer vi en strek over rollen hvor samme forekomst ikke kan gjentas i forekomskabellen 40

Person eier/eies av Bil Liv Kyrre Anne Anne DL12345 ZN33344 BN65655 DK77777 I ORM-diagrammet plasserer vi en strek over rollen hvor samme forekomst ikke kan gjentas i forekomskabellen Streken kalles en entydighetsskranke Entydighetsskranker kan gå over flere roller da er det forekomstkombinasjonen i rollene som ikke kan gjentas 41

Person eier/eies av Bil I ORM-diagrammet plasserer vi en strek over rollen hvor samme forekomst ikke kan gjentas i forekomskabellen Streken kalles en entydighetsskranke Entydighetsskranker kan gå over flere roller da er det forekomstkombinasjonen i rollene som ikke kan gjentas 42

interesseområde (UoD) begrep verditype/representasjonstype elementær setning forekomst fakta faktatype objekttype en setnings aritet rolle bro setningstype entydighetsskranke forekomsttabell påkrevd rolle perfekt bro 43

44

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)! 45

Ekteskap - 2 De fleste har vel foreslåk modellen nedenfor Lag forekomskabell 46

Monogami Vi kaller deke en 1:1 (én-gl-én) faktatype mellom (begrepene) Kvinne og Mann 47

Ekteskap - 3 En annen mulighet er nedenstående modell Lag forekomskabell 48

Polygyni Polygyni (flerkoneri) er en ikke uvanlig ekteskapsform DeKe er en n:1 (mange-gl-én) faktatype fra Kvinne Gl Mann 49

Ekteskap - 4 En tredje mulighet er nedenstående modell Lag forekomskabell 50

Polyandri Polyandri (flermanneri) forekommer blant annet i Nepal og deler av India DeKe er en 1:n (én-gl-mange) faktatype fra Kvinne Gl Mann 51

Ekteskap - 5 En siste mulighet er nedenstående modell Lag forekomskabell 52

Polygami Ekte polygami (flergike, polyamori) forekommer nok ikke, i hverlall ikke insgtusjonalisert DeKe er en m:n (mange-gl-mange) faktatype 53

54

Påkrevde roller Dersom alle biler må ha en eier, sier vi at rollen «eies av» er en påkrevd rolle for Bil og markerer det med en fet prikk på rollen Merk: Det at rollen er påkrevd, gjør at hver gang vi legger inn en bilforekomst i databasen, må vi sam/dig registrere hvem som eier bilen MatemaGkerne sier at vi har en total funksjon fra Bil Gl Person (rollen «eies av» er definert for alle forekomster av Bil). Påkrevde roller kalles derfor også totale roller 55

Perfekt bro - 1 En 1:1 bro der begrepsrollen er påkrevd, kalles en perfekt bro Perfekte broer er så vanlige at vi har en egen korlorm for dem (de implisike rollenavnene er «med/på» eller «med/for» («with/of»)): De to tegnemåtene er ekvivalente 56

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

Eksempel med blogg 58

Mer om entydighetsskranker Merk at hver setningstype (faktatype/bro) all/d skal ha minst én 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 59

Entydighetsskranker i ikke-binære setninger 60

Funksjonelle avhengigheter Det at en bil allgd har én, og bare én, eier, gjør at hvis vi vet hvilken bil vi har (dvs. at vi kjenner bilens registreringsnummer), så vet vi også hvilken person som eier bilen (det er bare ek mulig Glhørende fødselsnummer) Faktatypen mellom Bil og Person definerer altså en funksjon fra forekomstene av Bil Gl forekomstene av Person som Gl en gik bil gir oss eieren Vi sier at Person er funksjonelt avhengig av Bil, eller at vi har en FD (FuncGonal Dependency) fra Bil Gl Person 61