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

Like dokumenter
Datamodellering med UML (forts.)

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

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

Den redundansfri datamodellen

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

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

Datamodellering med ORM

Datamodellering med UML

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

The Unified Modeling Language - UML

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

INF1050 Klasseromsoppgave Uke 6

Skranker og avledninger

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

Hva vi i alle fall bør huske fra INF1050

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

Fra uryddig verden til strukturert stoppestedsdatabase

Skranker og avledninger

UNIVERSITETET I OSLO

Språk for dataorientert modellering

Signalgrensesnitt for Trafikanten Pluss

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

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

Normalisering. Hva er normalisering?

Normalisering. Hva er normalisering?

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

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

UNIVERSITETET. Relasjonsdatabasedesign

Informasjonsbærende representasjoner

Relasjonsdatabasedesign

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

Normalisering. Hva er normalisering?

INF1300 Introduksjon til databaser

Kart og andre umodne objekter

Relasjonsdatabasedesign

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

Databaser: Relasjonsmodellen, del I

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

Utvikling fra kjernen og ut

Oppdateringsanomalier Normalformer

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

INF1300 Introduksjon til databaser

IN2090 Introduksjon til databaser

UNIVERSITETET I OSLO Institutt for informatikk. Masteroppgave 60 Studiepoeng. Et verktøy for å editere datamodeller i flere views.

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

SQL Structured Query Language. Definere tabeller Skranker Fylle tabeller med data

INF1300 Introduksjon til databaser

Realiseringsalgoritmen fra ORM til relasjoner Intro til mengdeskranker i ORM

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

Utvikling fra kjernen og ut

Utvikling fra kjernen og ut

Databaser. - Normalisering -

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

Dagens tema: Oppdateringsanomalier Normalformer

Relasjonsdatabasedesign

Relasjonsdatabasedesign

INF1050 Klasseromsoppgave Uke 7

Utvikling fra kjernen og ut

Datamodellering: ER-modeller ER = Enitity-Relationship del 1: Notasjon og oversetting av ulike ER-modeller til tilsvarende relasjonsmodeller

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

Datamodellering. Diskusjonspunkter. Figur 1-1. Informasjonssystemet gjenspeiler «virkeligheten» Figur 1-2. Data krever tolkning

Vegard Nossum. 21. oktober 2010

Obligatorisk oppgave nr. 3 i INF1300 høsten 2008

UNIVERSITETET I OSLO

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

Relasjonsdatabaseteori

1. Relasjonsmodellen Kommentarer til læreboka

UNIVERSITETET I OSLO

Relasjonsdatabasedesign

1. Normalisering Kommentarer til læreboka

Integritetsregler i SQL. Primærnøkler

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

Integritetsregler i SQL

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

Relasjonsdatabasedesign

INF1300 Introduksjon til databaser

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

Obligatorisk oppgave nr. 3 i INF1300 høsten 2009

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

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

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Verdiskranker Mengdeskranker

INF1300 Introduksjon til databaser

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker

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

Oppdateringsanomalier. Normalformer. Institutt for informatikk INF

INF1300 Introduksjon til databaser

Beskjed fra Skagestein

Plenum: Nøkler, normalformer og funksjonelle avhengigheter

Repetisjon: Normalformer og SQL

HØGSKOLEN I SØR-TRØNDELAG

Hva kjennetegner god relasjonsdatabasedesign? Eksempel: Grossistdatabase versjon 1

IN2090 Databaser og datamodellering ORM 1

UNIVERSITETET I OSLO

Utvikling fra kjernen og ut

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Transkript:

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