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

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

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

Den redundansfri datamodellen

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

Datamodellering med UML (forts.)

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.

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

Hva vi i alle fall bør huske fra INF1050

INF1050 Klasseromsoppgave Uke 6

Skranker og avledninger

Signalgrensesnitt for Trafikanten Pluss

Språk for dataorientert modellering

Skranker og avledninger

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

Normalisering. Hva er normalisering?

Normalisering. Hva er normalisering?

Relasjonsdatabasedesign

Fra uryddig verden til strukturert stoppestedsdatabase

UNIVERSITETET. Relasjonsdatabasedesign

Normalisering. Hva er normalisering?

Relasjonsdatabasedesign

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

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

UNIVERSITETET I OSLO

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker

1. Relasjonsmodellen Kommentarer til læreboka

Databaser. - Normalisering -

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

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

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

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

INF1300 Introduksjon til databaser

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

Databaser: Relasjonsmodellen, del I

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

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Verdiskranker Mengdeskranker

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

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

IN2090 Introduksjon til databaser

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

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

Relasjonsdatabasedesign

Utvikling fra kjernen og ut

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

Relasjonsdatabasedesign

Informasjonsbærende representasjoner

Utvikling fra kjernen og ut

Utvikling fra kjernen og ut

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

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

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

Oppdateringsanomalier Normalformer

UNIVERSITETET I OSLO

INF1300 Introduksjon til databaser

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

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

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

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

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

Dagens tema: Oppdateringsanomalier Normalformer

Relasjonsdatabasedesign

Relasjonsdatabasedesign

INF1300 Introduksjon til databaser

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

IN2090 Introduksjon til databaser

Utvikling fra kjernen og ut

INF1300 Introduksjon til databaser

Beskjed fra Skagestein

Relasjonsdatabasedesign

Realiseringsalgoritmen fra ORM til relasjoner Intro til mengdeskranker i ORM

Relasjonsdatabaseteori

Utvikling fra kjernen og ut

Relasjonsdatabasedesign

Repetisjon: Normalformer og SQL

Oppdateringsanomalier. Normalformer. Institutt for informatikk INF

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

INF1300 Introduksjon til databaser

Integritetsregler i SQL. Primærnøkler

INF1300 Introduksjon til databaser

HØGSKOLEN I SØR-TRØNDELAG

INF1300 Introduksjon til databaser

NB! Endring i undervisningsplanen

INF1300 Introduksjon til databaser

1. Normalisering Kommentarer til læreboka

Metode for ansvarsdrevet OO. Dagens forelesning. Delegering av ansvar i en trelagsarkitektur

Relasjonsdatabasedesign

SQL Structured Query Language

IN2090 Databaser og datamodellering. Databasedesign og normalformer

Integritetsregler i SQL

INF212 - Databaseteori. Kursinnhold

INF1300 Introduksjon til databaser

Dataorientert modellering

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

Transkript:

Dagens tema Individer i interesseområdet Den redundansfri dataen Redundansfrihet ingen dobbeltlagringer eller avledninger Gruppering, normalisering eller intuisjon? Begrepsdannelse jfr. Systemutvikling fra kjernen og ut, fra skallet og inn kapittel 6 Høyere ordens assosiasjoner Litt om tid Institutt for informatikk Gerhard Skagestein 5. februar 2006 dmredundansfri- Institutt for informatikk Gerhard Skagestein 5. februar 2006 dmredundansfri-2 Modellenes to formål Interesseområdet Den grunnleggende konstruksjonen det elementære utsagnet Beskrivelse Begrep identifikatordel {id} min..max rolle min..max rolle2 Begrep2 identifikatordel2 {id} Oppfatningen av interesseområdet Foreskrivelse Informasjonssystem Brukere Greitt, men hvordan bygger vi er med den? Institutt for informatikk Gerhard Skagestein 5. februar 2006 dmredundansfri-3 Institutt for informatikk Gerhard Skagestein 5. februar 2006 dmredundansfri-4

Dataererens 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 5. februar 2006 dmredundansfri-5 Institutt for informatikk Gerhard Skagestein 5. februar 2006 dmredundansfri-6 Eksempel på dobbeltlagring av opplysning navn Dal Li Fjell Storgata 7 Lilleveien 3 Nyveien 20 400 400 500 innebygd elementært utsagn 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 fødselsnr {id} Avledet assosiasjon Avledede opplysninger åpner for inkonsistens i forekomstene! Institutt for informatikk Gerhard Skagestein 5. februar 2006 dmredundansfri-7 Institutt for informatikk Gerhard Skagestein 5. februar 2006 dmredundansfri-8

Eksempel på ikke avledet opplysning En unormalisert orgnr {id} omfatter Firma tilhører har-oppdrag-for Funksjonell avhengighet avdnr {id} Avdeling jobber-i Ansatt jobber-i Avdeling Avdeling tilhører Firma Ansatt har-oppdrag-for Firma Ansatt fødselsnr {id} Det er altså ikke nok å se på bare hvordan en ser ut! navn Dal Li Fjell Storgata 7 Lilleveien 3 Nyveien 20 400 400 500 Ski Ski Moss En data (og en database) som ikke er normalisert, vil åpne for dobbeltlagring av opplysninger Institutt for informatikk Gerhard Skagestein 5. februar 2006 dmredundansfri-9 Institutt for informatikk Gerhard Skagestein 5. februar 2006 dmredundansfri-0 En funksjonell avhengighet skjuler en assosiasjon som skilles ut {fk} {id} 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 5. februar 2006 dmredundansfri- Institutt for informatikk Gerhard Skagestein 5. februar 2006 dmredundansfri-2

Alternativet: Gruppering av ugruppert Ugruppert og gruppert - eksempel {id} Gateadresse {id} snavn s {fk} {id} 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 5. februar 2006 dmredundansfri-3 Institutt for informatikk Gerhard Skagestein 5. februar 2006 dmredundansfri-4 Ugrupperte og grupperte er Ugruppert generering/fjerning av fremmednøkler Gruppert (tabellorientert) Gruppert (???-orientert) fjerning/oppretting av referanseklasser med assosiasjoner Gruppert (tabellorientert) uten referanseklasser Gruppert (???-orientert) uten referanseklasser Fra normalisert til relasjonsdatabase {id} Li navn Dal Fjell Storgata 7 Lilleveien 3 Nyveien 20 Gateadresse {id} snavn s 400 400 500 400 500 Ski Moss {fk} {id} Institutt for informatikk Gerhard Skagestein 5. februar 2006 dmredundansfri-5 Institutt for informatikk Gerhard Skagestein 5. februar 2006 dmredundansfri-6

{id} Gruppering eller normalisering? Gateadresse {id} snavn s Normalisering Ulike veier til den redundansfri en Modellering med elementære utsagn Interesseområdet Intuisjon Alt i én tabell Gruppering {fk} {id} Elementære utsagn Gruppering Redundansfri (normalisert) Normalisering Universalrelasjonen Institutt for informatikk Gerhard Skagestein 5. februar 2006 dmredundansfri-7 Institutt for informatikk Gerhard Skagestein 5. februar 2006 dmredundansfri-8 Kontroll av grupperte er Begrepsdannelse 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? En mange-til-mange-assosiasjon kan tolkes som et begrep OBS! telefon e-post Hvordan faller denne kontrollen ut for klassen? gjenvunnet_ material Institutt for informatikk Gerhard Skagestein 5. februar 2006 dmredundansfri-9 Institutt for informatikk Gerhard Skagestein 5. februar 2006 dmredundansfri-20

Mange-til-mange-assosiasjon med assosiasjonsklasse Figur 5-9. Assosiasjonsklassen erstattes med en vanlig klasse Materialgjenvinning _i 0.. gjenvunnet mengde Mengde # tonn {id} Materialgjenvinning _i 0.. gjenvunnet mengde Mengde # tonn {id} gjenvunnet_ material gjenvunnet_ material Materialgjenvinning _i gjenvunnet_ material jfr. lærebokas figur 5-7 og 5-8 Meget viktig konvertering! 0.. gjenvunnet mengde Mengde # tonn {id} Institutt for informatikk Gerhard Skagestein 5. februar 2006 dmredundansfri-2 Institutt for informatikk Gerhard Skagestein 5. februar 2006 dmredundansfri-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 gjenvunnet_ o AS Gjenvinning gjenvinner papir i Oslo kan vanligvis ikke brytes ned til o AS Gjenvinning gjenvinner papir Avfallsselskap selskaps avfalls_ innsamler Materialgjenvinning 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 5. februar 2006 dmredundansfri-23 Institutt for informatikk Gerhard Skagestein 5. februar 2006 dmredundansfri-24

En ternær assosiasjon sett som tabell/relasjon Avfallsselskap selskaps material gjenvunnet_ Materialgjenvinning 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 gjenvunnet_ Material- fying» «identi- avfallsinnsamlegjenvinning område avfallsinnsamler gjenvunnet_ område Institutt for informatikk Gerhard Skagestein 5. februar 2006 dmredundansfri-25 Institutt for informatikk Gerhard Skagestein 5. februar 2006 dmredundansfri-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} {unique} {unique} Forelesning Rom romnr {id} Hvordan viser vi dette i UML? lærer 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 5. februar 2006 dmredundansfri-27 Institutt for informatikk Gerhard Skagestein 5. februar 2006 dmredundansfri-28

systemet (forts.) systemet begrepsdannelse Student anbefalte-forkunnskaper tar tas-av OBS! /antall_ 0.. Hovedlærer Forkunnskap tar tas-av hovedlærer /antall_ 0.. Institutt for informatikk Gerhard Skagestein 5. februar 2006 dmredundansfri-29 Institutt for informatikk Gerhard Skagestein 5. februar 2006 dmredundansfri-30 systemet konvertere assosiasjonsklasser Forkunnskap hoved lærer /antall_ 0.. Dermed er en ferdig systemet gruppering Forkunnskap etterfølger {fk}{id} forgjenger {fk}{id} hoved lærer emnekode {fk}{id} semesterkode {fk}{id} student {fk}{id} emnekode {fk}{id} semesterkode {fk}{id} hovedlærer {fk}{id} anbefalteforkunnskaper anbefalteforkunnskaper anbefalteforkunnskaper For å finne fram til tabellene i en tabelldatabase må vi først generere fremmednøklene emnekode {fk}{id} /antall_stud{fk}{null} /antall_ 0.. Unyttig klasse Institutt for informatikk Gerhard Skagestein 5. februar 2006 dmredundansfri-3 Institutt for informatikk Gerhard Skagestein 5. februar 2006 dmredundansfri-32

systemet tabelldatabasen emnekode Forkunnskap etterfølger forgjenger emnekode semesterkode antall-stud navn systemet tabelldatabasen emnekode Forkunnskap etterfølger forgjenger INF00 INF050 INF000 INF040 INF050 INF040 INF050 INF00 INF000 emnekode emnekode semesterkode semesterkode student hovedlærer En tabell for hver klasse emnekode INF00 INF050 semesterkode vår2006 vår2006 antall-stud 457 277 Eksempler på forekomster Institutt for informatikk Gerhard Skagestein 5. februar 2006 dmredundansfri-33 Institutt for informatikk Gerhard Skagestein 5. februar 2006 dmredundansfri-34 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 Data med tidsdimensjon kommune navn År årstall {id} Materialgjenvinning _iår «identi- jf. lærebokas figur 5-0 fying» gjenvunnet_ 0.. gjenvunnet mengde material Mengde # tonn {id} Institutt for informatikk Gerhard Skagestein 5. februar 2006 dmredundansfri-35 Institutt for informatikk Gerhard Skagestein 5. februar 2006 dmredundansfri-36

Relasjonsdatabase med tidsdimensjon Materialgjenvinning _iår kommunenr kommunenr NOT NULL kommunenavn materialnavn år gjenvunnet_mengde Forkunnskap hoved lærer systemet (forts.) semesterkode{id} 0.. /antall_ Tidsbegrepet kan være skjult Institutt for informatikk Gerhard Skagestein 5. februar 2006 dmredundansfri-37 Institutt for informatikk Gerhard Skagestein 5. februar 2006 dmredundansfri-38 Forkunnskap hoved lærer systemet med tidsbegrep semesterkode{id} semesterkode{id} Semester anbefalteforkunnskaper anbefalteforkunnskaper 0.. /antall_ Semester som tidsbegrep Oppsummering Vær bevisst på hvilke individer vi skal vite noe om I en redundansfri data 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 Institutt for informatikk Gerhard Skagestein 5. februar 2006 dmredundansfri-39 Institutt for informatikk Gerhard Skagestein 5. februar 2006 dmredundansfri-40