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

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

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

Den redundansfri datamodellen

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

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

Datamodellering med ORM

Datamodellering med UML

The Unified Modeling Language - 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

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

Hva vi i alle fall bør huske fra INF1050

Fra uryddig verden til strukturert stoppestedsdatabase

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

Skranker og avledninger

Skranker og avledninger

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

Informasjonsbærende representasjoner

Signalgrensesnitt for Trafikanten Pluss

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

UNIVERSITETET. Relasjonsdatabasedesign

Relasjonsdatabasedesign

Relasjonsdatabasedesign

UNIVERSITETET I OSLO

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

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

INF1300 Introduksjon til databaser

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

Språk for dataorientert modellering

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

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

INF1300 Introduksjon til databaser

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

INF1300 Introduksjon til databaser

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

Normalisering. Hva er normalisering?

Normalisering. Hva er normalisering?

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

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

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

INF1300 Introduksjon til databaser

Databaser: Relasjonsmodellen, del I

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker

Relasjonsdatabasedesign

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

Normalisering. Hva er normalisering?

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

Databaser. - Normalisering -

UNIVERSITETET I OSLO

IN2090 Introduksjon til databaser

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Verdiskranker Mengdeskranker

INF1300 Introduksjon til databaser

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

INF1300 Introduksjon til databaser

Relasjonsdatabasedesign

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

Vegard Nossum. 21. oktober 2010

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

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

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

Relasjonsdatabasedesign

Utvikling fra kjernen og ut

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

Utvikling fra kjernen og ut

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

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

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

INF1300 Introduksjon til databaser

1. Relasjonsmodellen Kommentarer til læreboka

INF1050 Klasseromsoppgave Uke 7

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

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

Kart og andre umodne objekter

Realiseringsalgoritmen fra ORM til relasjoner Intro til mengdeskranker i ORM

Notater: INF1300. Veronika Heimsbakk 8. januar 2013

Utvikling fra kjernen og ut

Dagens tema: Oppdateringsanomalier Normalformer

Oppdateringsanomalier Normalformer

IN2090 Introduksjon til databaser

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Relasjonsdatabasedesign

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

Kap3: Klassemodellering

INF1300 Introduksjon til databaser

HØGSKOLEN I SØR-TRØNDELAG

INF1010 våren 2008 Uke 4, 22. januar Arv og subklasser

UNIVERSITETET I OSLO

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

Databaser. Relasjonsmodellen 1 Læreboka: Kap. 2 Relasjonsmodellen Faglærere: Tore Mallaug, Kjell Toft Hansen

Utvikling fra kjernen og ut

INF212 - Databaseteori. Kursinnhold

UNIVERSITETET I OSLO. Relasjonsmodellen. Relasjoner og funksjonelle avhengigheter. Institutt for Informatikk. INF Ellen Munthe-Kaas 1

Transkript:

Dagens tema Individer i interesseområdet Den redundansfri datamodellen Redundansfrihet ingen dobbeltlagringer eller avledninger Gruppering, normalisering eller intuisjon? jfr. Systemutvikling fra kjernen og ut, fra skallet og inn kapittel 6 Begrepsdannelse Høyere ordens assosiasjoner Litt om tid Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri- Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-2 Modellenes to formål Figur 5-2. Ogdens trekant Interesseområdet Thoughts of Reference Begreper Beskrivelse Bil Døgn Oppfatningen av interesseområdet Foreskrivelse 8076543873 DF 2345 7. febr. 2007 2007-02-7 Informasjonssystem Brukere Symbol Lingvistiske elementer representasjoner Referent Fenomener i interesseområdet Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-3 Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-4

Fra naturlig språk til datamodell Drammen ligger i Buskerud Den grunnleggende konstruksjonen det elementære utsagnet By med bynavn Drammen ligger i fylke med fylkenavn Buskerud Begrep identifikatordel {id} min..max rolle min..max rolle2 Begrep2 identifikatordel2 {id} By by ligger-i ligger_i fylke Drammen Buskerud Fylke fylke Greitt, men hvordan bygger vi modeller med den? Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-5 Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-6 Datamodellererens tre bud Identifiserbare begrepsforekomster. Du skal kunne identifisere begrepsforekomstene! 2. Du skal ikke ha dobbeltlagringer! 3. Du skal ikke ha avledninger! Begrep? {id} rolle?? Hvilke individer (begrepsforekomster) skal vi vite noe om? Hvis du allikevel (av effektivitetsgrunner) har dobbeltlagringer og avledninger i databasen, må de være under kontroll! Hvordan representerer vi disse individene? Eksempel: Hvordan ser vi på en haug med binders? Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-7 Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-8

Eksempel på dobbeltlagring av opplysning poststed navn Dal Li Fjell Storgata 7 Lilleveien 3 Nyveien 20 400 400 500 innebygd elementært utsagn poststed Ski Ski Moss Dobbeltlagrede opplysninger åpner for inkonsistens i forekomstene! orgnr {id} omfatter avdnr {id} Eksempel på avledet opplysning Firma tilhører Avdeling OBS! jobber-i Ansatt jobber-i Avdeling Avdeling tilhører Firma Ansatt jobber-i Firma /jobber-i Ansatt Avledet assosiasjon Avledede opplysninger åpner for inkonsistens i forekomstene! Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-9 Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-0 Eksempel på ikke avledet opplysning En unormalisert modell orgnr {id} omfatter Firma tilhører har-oppdrag-for poststed Funksjonell avhengighet avdnr {id} Avdeling jobber-i Ansatt jobber-i Avdeling Avdeling tilhører Firma Ansatt har-oppdrag-for Firma Ansatt Det er altså ikke nok å se på bare hvordan modellen ser ut! navn Dal Li Fjell Storgata 7 Lilleveien 3 Nyveien 20 400 400 500 poststed Ski Ski Moss En datamodell (og en database) som ikke er normalisert, vil åpne for dobbeltlagring av opplysninger Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri- Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-2

En funksjonell avhengighet skjuler en assosiasjon som skilles ut {fk} poststedsnavn {id} poststedsnavn 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) Funksjonell avhengighet Å finne funksjonelle assosiasjoner og å finne funksjonelle avhengigheter det er samme sak The key, the whole key and nothing but the key, so help me Codd! Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-3 Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-4 Alternativet: Gruppering av ugruppert modell Ugruppert og gruppert modell - eksempel {id} Gateadresse {id} snavn poststeds {fk} {id} poststedsnavn 0.. antall_ emnekode {fk}{id} antall_{fk}{null} 0.. antall_ Trinn Trinn 2 emnekode {fk}{id} antall_ {null}. Generere fremmednøkler 2. Sløyfe overflødige klasser og fjerne {fk} Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-5 Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-6

Ugruppert modell Ugrupperte og grupperte modeller fremmednøkler generering fjerning generering fjerning referanser Gruppert modell (tabellorientert) Gruppert modell (???-orientert) unyttige klasser med assosiasjoner fjerning generering fjerning generering Gruppert modell (tabellorientert) med vanlige attributter Gruppert modell (???-orientert) med vanlige attributter Fra normalisert modell til relasjonsdatabase {id} Li navn Dal Fjell Storgata 7 Lilleveien 3 Nyveien 20 Gateadresse {id} snavn poststeds 400 400 500 400 500 poststed Ski Moss {fk} {id} poststedsnavn Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-7 Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-8 {id} Gruppering eller normalisering? Gateadresse {id} snavn poststeds Normalisering poststedsnavn Ulike veier til den redundansfri modellen Modellering med elementære utsagn Interesseområdet Intuisjon Alt i én tabell Gruppering {fk} {id} poststedsnavn Elementære utsagn Gruppering Redundansfri (normalisert) modell Normalisering Universalrelasjonen Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-9 Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-20

Kontroll av grupperte modeller Hvis du går direkte på en gruppert modell, 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 Institutt for informatikk Gerhard Skagestein 4. februar 2007 Hvordan faller denne kontrollen ut for klassen? dmredundansfri-2 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! dmredundansfri-22 Begrepsdannelse Mange-til-mange-assosiasjon med assosiasjonsklasse En mange-til-mange-assosiasjon kan tolkes som et begrep OBS! Materialgjenvinning _i 0.. gjenvunnet mengde Mengde # tonn {id} gjenvunnet_materiale material gjenvunnet_materiale material jfr. lærebokas figur 5-7 og 5-8 Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-23 Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-24

Figur 5-9. Assosiasjonsklassen erstattes med en vanlig klasse Materialgjenvinning _i 0.. gjenvunnet mengde Mengde # tonn {id} Høyere ordens assosiasjoner Noen ganger er det behov for assosiasjoner mellom mer enn to klasser/begreper gjenvunnet_materiale material Typisk dreier det seg da om begreper av typen Hvem, Hva, Hvor, Når Eksempel: Meget viktig konvertering! Materialgjenvinning _i gjenvunnet_ materiale 0.. gjenvunnet mengde material Mengde # tonn {id} o AS Gjenvinning gjenvinner papir i Oslo kan vanligvis ikke brytes ned til o AS Gjenvinning gjenvinner papir o AS Gjenvinning gjenvinner i Oslo o papir gjenvinnes i Oslo Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-25 Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-26 En ternær assosiasjon En ternær assosiasjon sett som tabell/relasjon material material gjenvunnet_ materiale Avfallsselskap selskaps avfalls_ innsamler område Avfallsselskap selskaps Materialgjenvinning avfallsinnsamler gjenvunnet_ materiale område Materialgjenvinning Unngå UML-assosiasjoner mellom mer enn to klasser! Alle avfallsinnsamlere kan gjenvinne alle materialer i alle områder Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-27 Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-28

Fjern høyere ordens assosiasjoner vha. nye begreper material Overlappende entydighetsskranker Time ukedag,timenr {id} Avfallsselskap selskaps gjenvunnet_ materiale Material- fying» «identi- avfallsinnsamlegjenvinning område Lærer ansattnr {id} Forelesning fying» «identi- Rom romnr {id} Lang entydighetsskranke konverteres til identifiserende assosiasjoner avfallsinnsamler gjenvunnet_ materiale område Hvordan viser vi dette i UML? lærer time rom Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-29 Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-30 Den eksterne entydighetsskranken systemet (forts.) Lærer ansattnr {id} {unique} Time ukedag,timenr {id} {unique} Forelesning Rom romnr {id} Student anbefalte-forkunnskaper tar tas-av Hovedlærer Warmer & Kleppe foreslår lignende grafiske notasjoner for lignende skranker Warmer & Kleppe: The Object Constraint Language. Addison-Wesley 999 OBS! /antall_ 0.. Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-3 Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-32

systemet begrepsdannelse tar tas-av Påmelding hovedlærer /antall_ 0.. systemet konvertere assosiasjonsklasser hoved lærer Påmelding /antall_ 0.. Dermed er modellen ferdig Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-33 Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-34 systemet gruppering etterfølger {fk}{id} forgjenger {fk}{id} hoved lærer Påmelding emnekode {fk}{id} semesterkode {fk}{id} student {fk}{id} emnekode {fk}{id} semesterkode {fk}{id} hovedlærer {fk}{id} anbefalteforkunnskaper anbefalteforkunnskaper anbefalteforkunnskaper emnekode {fk}{id} /antall_stud{fk}{null} Institutt for informatikk Gerhard Skagestein 4. februar 2007 /antall_ 0.. Unyttig klasse dmredundansfri-35 For å finne fram til tabellene i en tabelldatabase må vi først generere fremmednøklene Påmelding systemet tabelldatabasen emnekode emnekode emnekode emnekode semesterkode semesterkode semesterkode antall-stud student hovedlærer Institutt for informatikk Gerhard Skagestein 4. februar 2007 etterfølger forgjenger navn En tabell for hver klasse dmredundansfri-36

systemet tabelldatabasen emnekode INF00 INF040 INF050 emnekode INF00 INF050 semesterkode vår2006 vår2006 antall-stud 457 277 etterfølger INF050 INF050 INF00 Eksempler på forekomster forgjenger INF000 INF040 INF000 Litt om tid Tiden er kontinuerlig derfor må den deles opp i små stykker den mådiskretiseres (jf. læreboka figur 2-3) Mulig verdi Diskretisert verdi x Virkelig verdi Størrelsen på stykkene bestemmer oppløsningsevnen (jf. læreboka figur 2-4) Hendelse x Hendelse2 x Hendelse3 x t x Som regel velger vi inndelinger som er kjent fra kalender og klokke Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-37 Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-38 Datamodell med tidsdimensjon Relasjonsdatabase med tidsdimensjon År jf. lærebokas figur 5-0 navn årstall {id} Materialgjenvinning _iår gjenvunnet_ materiale 0.. gjenvunnet mengde material Mengde # tonn {id} Materialgjenvinning _iår NOT NULL kommunenr kommunenavn kommunenr materialnavn år gjenvunnet_mengde kommune Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-39 Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-40

hoved lærer systemet (forts.) Påmelding semesterkode{id} 0.. /antall_ Tidsbegrepet kan være skjult hoved lærer systemet med tidsbegrep Påmelding semesterkode{id} semesterkode{id} 0.. /antall_ Semester som tidsbegrep Semester anbefalteforkunnskaper anbefalteforkunnskaper Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-4 Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-42 Homogenitetsregelen Underbegreper Alle tenkelige forekomster av et begrep skal kunne spille alle roller som er tilknyttet begrepet. Jfr. Fra kjernen og ut, fra skallet og inn avsnitt 5.3 og 5.4.4 Vi krever ikke alltid at datamodellen tilfredsstiller homogenitetsregelen, men den blir mer presis hvis den gjør det. Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-43 Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-44

Figur 5-. Spesialisering og generalisering Underbegreper Mann a) Generalisering Kvinne Spesialisering ektemann hustru ektemann b) hustru Kjønn kjønnskode {id} Bruk av homogenitetsregelen kjønn 0.. antall fødsler Fornavn c) Mann ektemann hustru {disjoint, complete} Kvinne Institutt for informatikk Gerhard Skagestein 4. februar 2007 Underbegrepet arver representasjonen til superbegrepet. Ingen representasjon i underbegrepene! dmredundansfri-45 Kjønn kjønnskode {id} /kjønn Hvorfor minimumsmultiplisitet = 0? Mann {disjoint, complete} Kvinne Institutt for informatikk Gerhard Skagestein 4. februar 2007 antall fødsler Fornavn dmredundansfri-46 Figur 7-25. Underbegrep med diskriminerende assosiasjon Kjønn kjønnskode {id} diskriminerende assosiasjon 0.. {disjoint, complete} Fornavn a) Separasjon Figur 5-9. Håndtering av underbegreper NOT NULL fødselsnr kjønn fornavn NOT NULL Mann fødselsnr Kvinne fødselsnr antall_fødsler Mann {kjønn='m'} ektemann Mann.kjønn = M Kvinne.kjønn = K {kjønn='k'} hustru Kvinne antall fødsler b) Absorpsjon NOT NULL fødselsnr kjønn fornavn antall_fødsler nil hvis kjønn = m c) Partisjonering fødselsnr Mann NOT NULL Kan sløyfes, ingen forekomster Kan sløyfes, overflødig NOT NULL fødselsnr kjønn fornavn Kvinne fødselsnr kjønn fornavn antall_fødsler Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-47 Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-48

systemet innføring av underbegreper Lærer hoved lærer Student Er homogenitetsregelen oppfylt overalt? alle tenkelige i øyeblikket? i all tid? Institutt for informatikk Gerhard Skagestein 4. februar 2007 Påmelding semesterkode{id} anbefalteforkunnskaper dmredundansfri-49 Oppsummering Vær bevisst på hvilke individer vi skal vite noe om I en redundansfri datamodell skal det ikke finnes o dobbeltlagrede opplysninger o avledede opplysninger Redundansfrihet kan oppnås ved o gruppering av elementære utsagn o normalisering o intuisjon ( gå rett på ) Begrepsdannelse: Mange-til-mange-assosiasjoner kan oppfattes som et begrep Tid krever diskretisering Underbegreper kan avdekkes ved å bruke homogenitetsregelen Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri-50