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