Datamodellering med ORM

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

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

Datamodellering med UML (forts.)

The Unified Modeling Language - UML

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

Datamodellering med UML

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

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

INF1050 Klasseromsoppgave Uke 6

Normalisering. Hva er normalisering?

Skranker og avledninger

Skranker og avledninger

Normalisering. Hva er normalisering?

Normalisering. Hva er normalisering?

Språk for dataorientert modellering

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

IN2090 Databaser og datamodellering ORM 1

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

INF1300 Introduksjon til databaser

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

Representasjoner. Modell uten representasjoner. Modell med representasjoner. Forekomster i interesseområdet og i informasjonssystemet

INF Introduksjon til databaser ORM I

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

Realiseringsalgoritmen fra ORM til relasjoner Intro til mengdeskranker i ORM

Databaser. - Normalisering -

Intermesso. Visjonen... samling av trådene. Veivalget. Et bedre bilde av visjonen?

1. Normalisering Kommentarer til læreboka

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

Dataorientert modellering

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

IN2090 Introduksjon til databaser

Informasjonsbærende representasjoner

Relasjonsdatabasedesign

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

Systemutfikling Revisited. Rolf Borgen Guescini, Heidi-Christin Bernhoff-Jacobsen. Fikling for Examen. Studentrapport

INF1300 Introduksjon til databaser

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

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

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

UNIVERSITETET. Relasjonsdatabasedesign

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

Oppdateringsanomalier Normalformer

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

INF1300 Introduksjon til databaser

Dagens tema: Oppdateringsanomalier Normalformer

Utvikling fra kjernen og ut

Dataorientert modellering

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

INF1300 Introduksjon til databaser

Dagsorden. Hovedtemaene i INF102. Fra kjernen og ut. Produksjon av informasjonssystemer. Produksjon av informasjonssystemer

Relasjonsdatabasedesign

INF1300 Introduksjon til databaser

Grafisk editor for automatisk gruppering og degruppering av dataorienterte klassediagrammer. Masteroppgave. Øyvind Stegard

Notater: INF1300. Veronika Heimsbakk 8. januar 2013

INF1300 Introduksjon til databaser

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

Relasjonsdatabasedesign

INF1300 Introduksjon til databaser

IN2090: Ukeoppgaver uke 1 ( august)

INF212 - Databaseteori. Kursinnhold

INF1300 Introduksjon til databaser

Relasjonsdatabaseteori

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

Løsningsforslag til eksamen i IN2090 Databaser og datamodellering og INF1300 Introduksjon til databaser 6. desember :30 18:30 (4 timer)

Relasjonsdatabasedesign

IN2090 Databaser og datamodellering. Databasedesign og normalformer

Obbligatorisk oppgave 2 Slektsdatabase

Kunnskapsorganisasjon og gjenfinning 1. Relasjonsmodellen og -databaser

UNIVERSITETET I OSLO

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

Relasjonsdatabasedesign

Databaser: Relasjonsmodellen, del I

Utvikling fra kjernen og ut

IN2090 Introduksjon til databaser

Transkript:

Figur 5-1. Datamodellen dokumenterer vår oppfatning av virkeligheten Interesset Datamodellering med ORM registrering påvirkning jfr. Systemutvikling fra kjernen og ut, fra skallet og inn kapittel 6 Oppfatningen av interesset ORM (Object Role Model) ble utviklet i Nederland 1964-1977 da under navnet NIAM (Nijssen Information Analysis Method) Informasjonssystem Brukere dmorm-1 dmorm-2 To grep: fylkenr {id} (fylkenr) Spesialsymbol for en stereotype Fra UML til ORM 1:1 omfatter omfatter Assosiasjoner oppfatter som relasjoner ligger-i 0:* ligger-i nr {id} (fylkenr) Bare hvis 1 til 1 mellom og fylkenr! dmorm-3 Påkrevd rolle Alle personer skal ha et navn, men ikke nødvendigvis en alder eller en bil (ansattnr) person abonnent bileier navn alder eiendom Navn (navn) Alder (# år) Bil (kjennetegn) Alle forekomster av begrepstypen finnes i denne rollen Påkrevd rolle opptrer nesten alltid sammen med entydighetsskranken dmorm-4

Assosiasjoner oppfattet som relasjoner åpner for assosiasjoner mellom mer enn to begreper, med presise entydighetsskranker En ubrukelig notasjon Ansatt ansattnr {id} selger salgs * * fylkenavn {id} Retur Retur Om entydighetsskranken skal være som her, avhenger av forretningsreglene! salgsvare * Produkt produktnavn {id} Bruk aldri UML-assosiasjoner mellom mer enn to klasser! dmorm-5 dmorm-6 Begrep Begrepstype Representasjonstype/ datatype (med verdi/ domene) Litt terminologi Påkrevd rolle (nr) Entydighetsskranke nr 02 Rolle(navn) navn Østfold Akershus navn (navn) Figur 6-2. Oversettelsestabell fra multiplisiteter til entydighetsskranker og påkrevde roller * UML * 1 1: * 0:1 0:1 ORM Representasjoner (verdier) * * En utsagnstype (et utsagn) med to usagnsforekomster Merk presiseringen av * * dmorm-7 dmorm-8

Figur 6-1. Et ORM-diagram Figur 6-3. Et utsagn kan leses som en setning fylke (fylkenr) fylke fylkenavn navn avfallsmengde navn (navn) navn (fylkenavn) Mengde (# tonn) (nr) 05 fylke (nr) med nr er i fylke med fylkenr innbyggertall Antall (#) dmorm-9 dmorm-10 Figur 6-4. Fra (nesten) vanlig norsk til et formalisert utsagn Begrep Representasjon Forekomst Rolle Verbaler eller substantiv som roller? Verbaler gir en mer direkte overgang mellom naturlig språk og tabell (jf. eksempel nedenfor) Substantiv gjør senere navngiving av attributter noe enklere Substantivformen kommer fram ved å svare på spørsmålet: Hvilken rolle spiller begrepet i setningen? med nr er i fylke med fylkenr med nr ligger i fylke med fylkenr fylke (fylkenr) (nr) ligger i omfatter (nr) Dette er den fundamentale ideen i ORM å formalisere setninger fra vanlig språk 05 dmorm-11 dmorm-12

Figur 6-5. Ulike beskrivelser av interesset Elementære setninger (og utsagn) a) b) c) d) med fødselsnummer 12046534722 bor i n med nr 03 (fødselsnr) (fødselsnr) bor-i 12046534722 innbygger 12046534722 fødselsnr 12046534722 huser 03 03 bosteds bosteds 03 En setning kalles elementær hvis den ikke kan deles opp uten å miste meningsinnhold o Eksempel: Setningen «Mons spiser grøt og drikker melk» kan deles opp i to elementære setninger «Mons spiser grøt» «Mons drikker melk» Konjunksjonen «og» indikerer at flere ting sies på en gang o Konjunksjonen «og» kan være godt skjult: «Wirth laget Pascal i 1971» «Wirth laget Pascal og Pascal ble laget i 1971» o Men sett ikke inn «og»-er det ikke er grunnlag for: «Per fikk hovedkarakter B i informatikk» «Per fikk hovedkarakter i informatikk, og Per fikk hovedkarakter B»??? dmorm-13 dmorm-14 Hvilke av disse setningene er elementære? Mons liker saft og melk Else leser Else leser en roman Else leser «Sult» Else leser Hamsuns roman «Sult» DE85975 er en rød Toyota På Blindern var det kl. 7.00 9 grader Celsius Eva ble ansatt som kontorsjef den 12.8.2002 Skriv om de ikkeelementære setningene i et antall elementære setninger! Observasjoner om elementære utsagn Et elementært utsagn kan ha fra en til vilkårlig mange roller (attributter), men de fleste har to roller (binære utsagn) Et utsagn er elementært dersom det ikke kan deles opp uten å miste meningsinnhold Unære og binære setninger er alltid elementære Ternære (og høyere) setninger kan være elementære I elementære utsagn er NULL ukjent Et elementært utsagn skal ha minst én entydighetsskranke som omfatter alle roller, eller alle roller unntatt en (hvis dette ikke er tilfelle, kan utsagnet splittes) dmorm-15 dmorm-16

Hvorfor elementære utsagn? Det elementære utsagnet er minste informasjonsenhet Et antall elementære utsagn kan grupperes sammen på ulike måter, avhengig av behov og teknologiske rammer Figur 6-6. ORM-diagram med mange-til-mange-utsagn Gruppering med fremmednøkler basert på maksimumsmultiplisitet 1 gir en tabelldatabase uten dobbeltlagring av opplysninger (såkalt Boyce Codd normalform) gjenvunnet _ dmorm-17 dmorm-18 Figur 6-7. Begrepsdannelse i ORM Figur 6-9. Innføring av nytt begrep for begrepsdannelsen Begrepsdannelse = innføring av assosiasjonsklasse gjenvunnet _ gjenvunnet _mengde Mengde (#tonn) * nr {id} * gjenvunnet_ materialnavn {id} ekstern entydighetsskranke jf. foil dmuml-21 * 0:1 gjenvunnet mengde Mengde # tonn {id} dmorm-19 dmorm-20

Ekstern entydighetsskranke vs «identifying» Når representasjonen ikke er 1 til 1 (fylkenr) omfatter ligger-i * * «identifying» 1 gjenvunnet_ materialnavn {id} fylkenr {id} omfatter 1:1 «identifying» 1 nr {id} nr2s Den subtile forskjellen er at den eksterne entydighetsskranken åpner for muligheten for å identifisere med nr + materialnavn ved bruk av «identifying» har vi allerede tatt beslutningen «identifying» ligger-i 0:* nr2s {id} dmorm-21 dmorm-22 (Selskapsnavn) (Selskapsnavn) Figur 6-8. Nøstede begrepsdannelser Kommunal_materialgjenvinning Figur 6-12a. Ingen funksjonelle avhengigheter utsagnet er elementært Retur Retur dmorm-23 dmorm-24

Figur 6-12b. Konvertering til binære utsagn Figur 6-13a. Determinanten er gjenstand for entydighetsskranke utsagnet er elementært I en gitt kan et gitt bare gjenvinnes Dette er samme skranke! Avfallsinnsamling av ett avfallsselskap. Funksjonell avhengighet Avfallsinnsamling Retur dmorm-25 Retur dmorm-26 Figur 6-13b. Etter konvertering til binære utsagn Figur 6-14a. Partiell funksjonell avhengighet Avfallsinnsamling Et gitt kan bare gjenvinnes av ett avfallsselskap. Retur Retur dmorm-27 dmorm-28

Figur 6-14b. og normalisering Figur 6-14c. Etter konvertering til binære utsagn Avfallsinnsamling Retur dmorm-29 dmorm-30 Figur 6-15a. Transitiv funksjonell avhengighet Figur 6-15b. og normalisering I en gitt kan det bare gjenvinnes ett. Et gitt kan bare gjenvinnes av ett avfallsselskap. Retur Retur Ulovlige forekomster Retur dmorm-31 dmorm-32

Figur 6-16a. Normalisert, men ikke elementær Figur 6-16b. - etter oppsplitting I en gitt kan det bare gjenvinnes ett. I en gitt kan det bare operere ett avfallsselskap. Retur Retur Retur Retur dmorm-33 dmorm-34 Figur 6-17a. Funksjonell avhengighet inn i en entydighet Figur 6-17b. og normalisering til BCNF I en gitt kan et gitt bare gjenvinnes av ett avfallsselskap. Et avfallsselskap kan operere bare i en. Retur Retur Retur Retur dmorm-35 dmorm-36

Figur 6-17c. Etter konvertering til binære utsagn Normaliseringsteori Avfallsinnsamling Slike oppdelinger som vi har sett eksempler på her er sentrale i forbindelse med såkalt normalisering i relasjonsdatabaseteorien. Hovedbudskapet er at verdien i et attributt skal være entydig bestemt av verdien på en av kandidatnøklene (i praksis primærnøkkelen) pga. BCNF The key, the whole key and nothing but the key, so help me Codd! dmorm-37 dmorm-38 Kjønn (kjønnskode) Figur 6-11. Underbegreper i ORM diskriminerende utsagn (fødselsnr) Hvorfor heldekkende entydighet i begrepsdannelse? (fødselsnr) eier Bilkjøp eiendom Bil (kjennetegn)? Mann ektemann hustru Kvinne bilkjøp kjøpspris Beløp (#NOK) jf. figur 5.11 fødselsnr {id} {disjoint, complete} Resultatet er et ikkeelementært utsagn! Bil (kjennetegn) Mann * * ektemann hustru Kvinne dmorm-39 (fødselsnr) eier eiendom kjøpspris Beløp (#NOK) dmorm-40