Modellenes to formål Interesseområdet Dataering med UML (forts.) Beskrivelse jfr. Systemutvikling fra kjernen og ut, fra skallet og inn kapittel 6 Oppfatningen av interesseområdet Foreskrivelse Informasjonssystem Brukere Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmuml2- Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmuml2-2 Figur 5-2. Ogdens trekant Fra naturlig språk til data Thoughts of Reference Begreper Bil Døgn Drammen ligger i Buskerud By med bynavn Drammen ligger i fylke med fylkenavn Buskerud 8076543873 DF 2345 7. febr. 2007 2007-02-7 Symbol Lingvistiske elementer representasjoner Referent Fenomener i interesseområdet By by ligger-i ligger_i fylke Drammen Buskerud Fylke fylke Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmuml2-3 Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmuml2-4
Ugruppert Ugrupperte og grupperte er fremmednøkler generering fjerning generering fjerning referanser Gruppert (tabellorientert) Gruppert (???-orientert) unyttige klasser med assosiasjoner fjerning generering fjerning generering Gruppert (tabellorientert) med vanlige attributter Gruppert (???-orientert) med vanlige attributter Ugruppert og gruppert - eksempel 0.. antall_ {fk}{id} antall_{fk}{null} 0.. antall_ Trinn Trinn 2 {fk}{id} antall_ {null}. Generere fremmednøkler 2. Sløyfe unyttige klasser og fjerne {fk} Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmuml2-5 Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmuml2-6 Universitet universitetskode {id} Fakultet fakultetskode {id} Institutt instituttkode {id} Ansatt ansattnr {id} Assosiasjoner i et hierarki Med hva skal vi assosiere o Universitetets sentralbordnummer o ansatts jobbadresse o ansatts telefonnummer o antall? Institutt for informatikk Gerhard Skagestein 4. februar 2007 Legg assosiasjonene så høyt opp i hierarkiet som mulig! dmuml2-7 Mange-til-mange-assosiasjon med assosiasjonsklasse jfr. lærebokas figur 5-7 og 5-8 _i 0.. gjenvunnet mengde Institutt for informatikk Gerhard Skagestein 4. februar 2007 Mengde # tonn {id} material dmuml2-8
Figur 5-9. Assosiasjonsklassen erstattes med en vanlig klasse _i _i 0.. gjenvunnet mengde Institutt for informatikk Gerhard Skagestein 4. februar 2007 0.. gjenvunnet mengde Mengde # tonn {id} material material Mengde # tonn {id} dmuml2-9 kommune navn Figur 5-0. Modell med tidsdimensjon År årstall {id} _iår «identi- Institutt for informatikk Gerhard Skagestein 4. februar 2007 fying» 0.. gjenvunnet mengde material Mengde # tonn {id} dmuml2-0 Figur 5-20. Relasjonsdatabasestruktur med tidsdimensjon Databasekonstruktørens første bud Du skal ikke ha dobbeltlagringer og avledninger! kommunenr kommunenavn _iår kommunenr materialnavn år mengde Hvis du allikevel (av effektivitetsgrunner) har dobbeltlagringer og avledninger i databasen, må de være under kontroll Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmuml2- Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmuml2-2
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} Li navn Dal Fjell Storgata 7 Lilleveien 3 Nyveien 20 Normalisert Gateadresse {id} Poststedsnavn poststeds 400 400 500 400 500 poststed Ski Moss {fk} Poststed {id} poststedsnavn Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmuml2-3 Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmuml2-4 Normaliseringsteori Kontroll av grupperte er 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, the whole key and nothing but the key, so help me Codd! 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? Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmuml2-5 Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmuml2-6
Høyere ordens assosiasjoner 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: En ternær assosiasjon 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! Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmuml2-7 Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmuml2-8 En ternær assosiasjon sett som tabell/relasjon Avfallsselskap selskaps material område Alle avfallsinnsamlere kan gjenvinne alle r i alle områder Fjern høyere ordens assosiasjoner vha. nye begreper Avfallsselskap selskaps Lang entydighetsskranke konverteres til identifiserende assosiasjoner material avfallsinnsamler Material- fying» «identi- avfallsinnsamlegjenvinning område avfallsinnsamler område Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmuml2-9 Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmuml2-20
Overlappende entydighetsskranker Time ukedag,timenr {id} Den eksterne entydighetsskranken Time ukedag,timenr {id} Lærer ansattnr {id} Forelesning fying» «identi- Rom romnr {id} Lærer ansattnr {id} {unique} {unique} 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 Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmuml2-2 Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmuml2-22 Figur 5-. Spesialisering og generalisering Underbegreper Figur 5-7. Håndtering av underbegreper Mann ektemann hustru Kvinne Kjønn 0.. Fornavn a) Generalisering Spesialisering ektemann b) hustru kjønnskode {id} diskriminerende assosiasjon {disjoint, complete} c) {disjoint, complete} Mann Kvinne antall fødsler Mann ektemann hustru Kvinne Enhver mann har kjønnskode M Enhver kvinne har kjønnskode K Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmuml2-23 Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmuml2-24
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 Student anbefalte-forkunnskaper tar systemet (forts.) tas-av Hoved fødselsnr Kan sløyfes, ingen forekomster Mann fødselsnr kjønn fornavn Kvinne fødselsnr kjønn fornavn antall_fødsler 0.. Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmuml2-25 Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmuml2-26 systemet (forts.) systemet (forts.) tar tas-av hoved 0.. hoved 0.. Dermed er en ferdig Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmuml2-27 Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmuml2-28
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} Institutt for informatikk Gerhard Skagestein 4. februar 2007 0.. Unyttig klasse dmuml2-29 systemet tabelldatabasen semesterkode semesterkode semesterkode antall-stud student hoved Institutt for informatikk Gerhard Skagestein 4. februar 2007 etterfølger forgjenger navn En tabell for hver klasse dmuml2-30 systemet tabelldatabasen INF00 INF040 INF050 INF00 INF050 semesterkode vår2004 vår2004 antall-stud 457 277 etterfølger INF050 INF050 INF00 Eksempler på forekomster forgjenger INF000 INF040 INF000 hoved systemet (forts.) semesterkode{id} For å finne fram til tabellene i en tabelldatabase må vi først generere fremmednøklene 0.. Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmuml2-3 Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmuml2-32
hoved systemet (forts.) semesterkode{id} Semester semesterkode{id} 0.. Semester som tidsbegrep Lærer hoved systemet (forts.) Student semesterkode{id} Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmuml2-33 Se også eksempel i læreboka figur 5-2 Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmuml2-34