Modellenes to formål Interesseområdet Dataering med UML (forts.) Beskrivelse jfr. Systemutvikling fra kjernen og ut, fra skallet og inn kapittel 5 Oppfatningen av interesseområdet Foreskrivelse Informasjonssystem Brukere dmuml2- dmuml2-2 Figur 5-2. Ogdens trekant Ugrupperte og grupperte er 8076543873 DF 2345 9. febr. 2003 2003-02-9 Symbol Lingvistiske elementer representasjoner Thoughts of Reference Begreper Bil Døgn Referent Fenomener i interesseområdet Ugruppert generering/fjerning av fremmednøkler Gruppert (tabellorientert) Gruppert (???-orientert) fjerning/oppretting av referanseklasser med assosiasjoner Gruppert (tabellorientert) uten referanseklasser Gruppert (???-orientert) uten referanseklasser dmuml2-3 dmuml2-4
Ugruppert og gruppert - eksempel systemet (forts.) 0: antall_ {fk}{id} antall_{fk}{null} 0: antall_ {fk}{id} antall_ {null} Student anbefalte-forkunnskaper tar tas-av 0: Hoved dmuml2-5 dmuml2-6 Mange-til-mange-assosiasjon med assosiasjonsklasse _i 0: gjenvunnet mengde Mengde # tonn {id} material tar systemet (forts.) tas-av 0: jfr. lærebokas figur 5-7 og 5-8 hoved dmuml2-7 dmuml2-8
Figur 5-9. Assosiasjonsklassen erstattes med en vanlig klasse _i _i 0: gjenvunnet mengde 0: gjenvunnet mengde Mengde # tonn {id} material material Mengde # tonn {id} dmuml2-9 hoved systemet (forts.) 0: Dermed er en ferdig dmuml2-0 etterfølger {fk}{id} forgjenger {fk}{id} hoved systemet (forts.) {fk}{id} semesterkode {fk}{id} student {fk}{id} {fk}{id} semesterkode {fk}{id} hoved {fk}{id} {fk}{id} stud{fk}{null} 0: Unyttig klasse dmuml2- For å finne fram til tabellene i en tabelldatabase må vi først generere fremmednøklene systemet tabelldatabasen semesterkode semesterkode semesterkode IU IU antall-stud student hoved etterfølger forgjenger navn En tabell for hver klasse dmuml2-2
systemet tabelldatabasen IU IU Figur 5-0. Modell med tidsdimensjon INF00 INF040 INF050 semesterkode antall-stud etterfølger INF050 INF050 INF00 forgjenger INF000 INF040 INF000 År årstall {id} _iår material INF00 INF050 vår2004 vår2004 457 277 Eksempler på forekomster navn 0: gjenvunnet mengde Mengde # tonn {id} kommune dmuml2-3 dmuml2-4 Figur 5-20. Relasjonsdatabase med tidsdimensjon systemet (forts.) kommunenr kommunenr kommunenavn materialnavn år mengde hoved semesterkode{id} 0: dmuml2-5 dmuml2-6
hoved systemet (forts.) semesterkode{id} Semester semesterkode{id} 0: Semester som tidsbegrep Det første bud Du skal ikke ha dobbeltlagringer og avledninger! Hvis du allikevel (av effektivitetsgrunner) har dobbeltlagringer og avledninger i databasen, må de være under kontroll dmuml2-7 dmuml2-8 poststed navn Dal Li Fjell En unormalisert Storgata 7 Lilleveien 3 Nyveien 20 Funksjonell avhengighet 400 400 500 poststed Ski Ski Moss En data (og en database) som ikke er normalisert, vil åpne for dobbeltlagring av opplysninger Poststed {id} Dal Li navn Fjell Storgata 7 Lilleveien 3 Nyveien 20 Normalisert Gateadresse {id} Poststedsnavn poststeds 400 400 500 400 500 poststed Ski Moss {fk} Poststed {id} poststedsnavn dmuml2-9 dmuml2-20
Normaliseringsteori Slike oppdelinger som vi har sett et eksempel 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) The key, thewholekey and nothing but the key, so help me Codd! Kontroll av grupperte er Hvis du går direkte på en gruppert, sjekk for hvert attributt: Er det høyst én verdi for attributtet? Er verdien bestemt av primærnøkkelen, hele primærnøkkelen og intet annet enn primærnøkkelen? telefon e-post poststed Hvordan faller denne kontrollen ut for klassen? dmuml2-2 dmuml2-22 Høyere ordens assosiasjoner En ternær assosiasjon Noen ganger er det behov for assosiasjoner mellom mer enn to klasser/begreper Typisk dreier det seg da om begreper av typen Hvem, Hva, Hvor, Når Eksempel: material o AS Gjenvinning gjenvinner papir i Oslo kan vanligvis ikke brytes ned til o AS Gjenvinning gjenvinner papir Avfallsselskap selskaps avfalls_ innsamler område o AS Gjenvinning gjenvinner i Oslo o papir gjenvinnes i Oslo Unngå UML-assosiasjoner mellom mer enn to klasser! dmuml2-23 dmuml2-24
En ternær assosiasjon sett som tabell/relasjon Avfallsselskap selskaps material område Fjern høyere ordens assosiasjoner vha. nye begreper Avfallsselskap selskaps material avfallsinnsamler Material- fying» «identi- avfallsinnsamlegjenvinning område Alle avfallsinnsamlere kan gjenvinne alle r i alle områder Lang entydighetsskranke konverteres til identifiserende assosiasjoner avfallsinnsamler område dmuml2-25 dmuml2-26 Overlappende entydighetsskranker Den eksterne entydighetsskranken Time ukedag,timenr {id} Time ukedag,timenr {id} Lærer ansattnr {id} Forelesning fying» «identi- Rom romnr {id} Lærer ansattnr {id} Forelesning Rom romnr {id} Hvordan viser vi dette i UML? Bruke OCL (Object Constraint Language)? time rom Warmer & Kleppe foreslår lignende grafiske notasjoner for lignende skranker Warmer & Kleppe: The Object Constraint Language. Addison-Wesley 999 dmuml2-27 dmuml2-28
Figur 5-. Spesialisering og generalisering Underbegreper Mann a) c) Generalisering Mann Kvinne ektemann ektemann hustru Spesialisering {disjoint, complete} Kvinne ektemann hustru b) hustru dmuml2-29 Lærer hoved systemet (forts.) Student Se også eksempel i læreboka figur 5-2 semesterkode{id} dmuml2-30 Kjønn kjønnskode {id} Figur 5-7. Håndtering av underbegreper diskriminerende assosiasjon Mann 0: {disjoint, complete} Kvinne antall fødsler Fornavn a) Separasjon Figur 5-7. Håndtering av underbegreper fødselsnr kjønn fornavn Mann fødselsnr Kvinne fødselsnr antall_fødsler b) Absorpsjon fødselsnr kjønn fornavn antall_fødsler nil hvis kjønn = m c) Partisjonering fødselsnr Kan sløyfes, ingen forekomster Enhver mann har kjønnskode M Enhver kvinne har kjønnskode K Mann fødselsnr kjønn fornavn Kvinne fødselsnr kjønn fornavn antall_fødsler dmuml2-3 dmuml2-32