Datamodellering med E/R



Like dokumenter
INF130: Datahåndtering og analyse

1. Datamodellering Kommentarer til læreboka

Databasedesign HVA? HVORDAN? E/R diagram. Begrepsmessig databasedesign. Logisk databasedesign. Fysisk databasedesign

Del 1: ER-modellering og databaseteori

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

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

Høgskolen i Telemark EKSAMEN 6102 DATABASER Tid: Hjelpemidler: Vedlegg: Eksempeldata til oppgave 1

Tabeller og enkle spørringer

Avansert bruk av SQL. Avanserte spørringer Valguttrykk Spørring på spørring Unionspørringer Delspørringer, vekselvirkende delspørringer Kvantorer

2 of :19 1 of :19 [Kurssidene] [ ABI - fagsider bibin ]

ITGK - H2010, Matlab. Dagens tema : Teori - Databaser

Kunnskapsorganisasjon og gjenfinning 1. Relasjonsmodellen og -databaser

Oppgave 1 Datamodellering 25 %

Det gjenstår nå kun å definere hva som skal være primærnøkkel i rolle rabellen.

Miniverden og ER- modell

Datamodellering noen temaer

Lærebok. Opplæring i CuraGuard. CuraGuard Opplæringsbok, - utviklet av SeniorSaken -

Oppgave 3 - normalisering

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

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

SQL og Mengdelære. Oracle, MySQL, Access, bruker forskjellige syntaks.

Brukermanual for statistikk på Asset on web: Statistikk salg pr dag, uke eller måned fordelt på alle avdelinger:

Objektorientering i ER-modeller EER-modeller Enhanced Entity Relationship Models

Hvordan designe en ER-modell med MS-VISIO

En liten rekap. Spørrespråk. I dag SELECT

UML 1. Use case drevet analyse og design Kirsten Ribu

INF1050 Klasseromsoppgave Uke 6

1. Relasjonsmodellen Kommentarer til læreboka

Kap3: Klassemodellering

Tabelldefinisjon og datamanipulering

Kapittel 7: Mer om arv

Modeller for design av Web-Applikasjoner

FORORD...III KAPITTELOVERSIKT... VI INNHOLDSFORTEGNELSE...VII DEL I SQL OG RELASJONSDATABASER INTRODUKSJON...

Dataorientert modellering

Dagens program. Kunnskapsorganisasjon og gjenfinning 1. Spørring mot databaser: SQL 2 - Spørring mot flere tabeller

1. SQL datadefinisjon og manipulering

Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

del II databasedesign Datamodellering entity-relationship (ER) ord kap. 7: ER-modell kap. 8: logisk skjema og normalisering kap.

Eksamen i IBE Databaser H 2008

FORORD... III KAPITTELOVERSIKT... VI INNHOLDSFORTEGNELSE... VII DEL I SQL OG RELASJONSDATABASER INTRODUKSJON...

Kunnskapsorganisasjon og gjenfinning 1

Soloball. Steg 1: En roterende katt. Sjekkliste. Test prosjektet. Introduksjon. Vi begynner med å se på hvordan vi kan få kattefiguren til å rotere.

LO118D Forelesning 3 (DM)

Det matematisk-naturvitenskapelige fakultet. Kontroller at oppgavesettet er komplett før du begynner å besvare det.

Spørringer mot flere tabeller

Databaser: Relasjonsmodellen, del I

while-økker while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt Eksempel 1: en enkel while-løkke

NYTT MEDLEMSSYSTEM HYPERSYS Oppstartveiledning for gruppeledere

Innhold Forord Innledning Kapittel 1 Introduksjon til databaser og databasesystem

1. Designe ER-modeller med MS Visio

1. Normalisering Kommentarer til læreboka

Klasser. Webprogrammering høsten Objekter. Eksempelklasser og -objekter. 2 of :56. 1 of :56

Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer

Databaser & objektorientering.

Prosjektoppgave: Bildedatabase. TDT4145 Datamodellering og Databasesystemer. Våren 2008

OM DATABASER DATABASESYSTEMER

Datamodellering 101 En tenkt høgskoledatabase

1. Mer om oppbyning av XML-dokument

Lykke til! Eksamen i fag TDT4140 Systemutvikling NTNU Norges teknisk-naturvitenskapelige universitet

Obbligatorisk oppgave 2 Slektsdatabase

Bruk av oppgaver og grupper i

IN2090 Databaser og datamodellering. Databasedesign og normalformer

Spesifikasjon av Lag emne

Produktrapport Gruppe 9

Introduksjon til beslutningsstrukturer

UNIVERSITETET I OSLO

SLUTTPRØVE 5602 DATABASER I (inkludert vedlegg og denne forsida) Vedlegg: A: Eksempeldata og B: Svarark til oppgave 4

Relasjonsdatabasedesign

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

Hva er datakvalitet? Hvordan skal arkivtjenesten forholde seg til det?

Kompleksitetsanalyse Helge Hafting Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for faget LO117D Algoritmiske metoder

Brødrene Dahls Assistent BDA

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

HØGSKOLEN I SØR-TRØNDELAG

Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.

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

INF1300 Introduksjon til databaser

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

[Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hio.no) 07/ Vi holder orden på verdier med hjelp av variabler

Tall og algebra Matematikk Side 1 av 6

Kanter, kanter, mange mangekanter

Introduksjon til fagfeltet

student s104111, s107911, s122357

Brukerveiledning for student skoleeksamen HIST Oppdatert 27. oktober 2014

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

INF130 INF130. INF130:Repetisjon INF130:Repetisjon 1. Tabeller og enkle spørringer. Repetisjon

BOKMÅL Side 1 av 5. KONTERINGSEKSAMEN I FAG TDT4102 Prosedyre og objektorientert programmering. Onsdag 6. august 2008 Kl

Dagens IMT 1321 IT-LEDELSE. Faglærer : Tom Røise. IMT1321 IT-Ledelse 1. Faglærers bakgrunn

Prosjektoppgave: Bildedatabase. TDT4145 Datamodellering og Databasesystemer. Våren 2007

RUTEPLANLEGGINGSSYSTEM BRUKERVEILEDNING

Databaser. Relasjonsmodellen 2 Læreboka: Kap. 2 Relasjonsmodellen

UNIVERSITETET I OSLO

En kort innføring i Lotte-Typehushold

Skilpaddefraktaler Erfaren Python PDF

LESEVERKSTEDET Damm forlag. Tina på tur. Tina er på tur i. Oversatt til Bliss symbolspråk. Leseverkstedet En serie på 18 lettlesbøker fra Damm forlag

infotorg Enkel brukermanual

MAT1140: Kort sammendrag av grafteorien

Regnskapsanalyse: Nøkkeltallsberegning TEKLED: FASE 1 ÅR 3

EKSAMEN DATABASER

Web Tips #2 november 2011

Transkript:

Datamodellering med E/R Fasene i systemutvikling og databasedesign E/R (Entity/Relationship) Entitet Attributt Identifikator Forhold og roller Kardinaliteter: 1:1, 1:M, M:N Oppløsing av mange-til-mange (M:N) forhold Svake entiteter Egenforhold Subtyper Pensum: Kapittel 7 Databaser Leksjon 6: Datamodellering med E/R - 1

Hvorfor datamodellering? Det er ikke opplagt hvilke tabeller en database bør inneholde og hvilke kolonner disse tabellene bør inneholde. Vi må prøve oss litt fram for å finne en hensiktsmessig struktur. Det har vist seg nyttig å bruke «visuelle modeller» i denne prosessen. E/R (Entity/Relationship) er et slikt visuelt modellspråk. Et E/R-diagram viser strukturen til en database. Databaser Leksjon 6: Datamodellering med E/R - 2

Eksempel på E/R-diagram BokNr ISBN Tittel Forfatter UtgittÅr AntallEks Bok I A15 A40 A30 I I Utlån UtlånsDato Levert D BL Navn Kontakt Telefon Forlag A30 A40 A8 LNr Fornavn Etternavn Gateadr Låner I A20 A30 A40 Databaser Leksjon 6: Datamodellering med E/R - 3

Først Vi har sett en del eksempler på hvordan data lar seg representere i tabeller: Databaser Leksjon 6: Datamodellering med E/R - 4

Fysiske objekter (er som regel greie å håndtere) Databaser Leksjon 6: Datamodellering med E/R - 5

Kjøretøy RegNr Merke Modell År Km LY 12345 Toyota Corolla 1998 225501 NV 54321 Toyota Avensis 2012 15238 DA 98765 Ford Focus 2009 47624 NV 67890 Nissan Micra 2007 31092 Noen fysiske objekter som bøker, personer og kjøretøy har en etablert primærnøkkel (ISBN, personnr, registreringsnr). For andre fysiske objekter er det naturlig å etablere et «løpenr» VNr for Vare, SNr for Student osv. Databaser Leksjon 6: Datamodellering med E/R - 6

Mer abstrakte objekter: Lån LNr KNr Beløp Start År Rente Type 27630364643 50401 1550000 02.09.2009 20 5.5 Serie 27630382732 50104 65000 01.01.2011 8 7.6 Annuitet 27630393982 20932 1050000 20.07.1999 20 5.0 Annuitet 27630338829 90237 300000 10.12.2007 10 6.5 Annuitet 27630391882 70238 1250000 05.08.2008 15 5.5 Serie Lån er ikke et fysisk objekt, men likevel relativt «håndfast». Er det noen fremmednøkler her? Lagrer ikke mer enn vi må: Fra opplysningene i tabellen kan vi generere en nedbetalingsplan (hva skal betales hver måned, hvor mye er avdrag og hvor mye er renter). Databaser Leksjon 6: Datamodellering med E/R - 7

Sammensatte objekter: Ordre og Ordrelinje OrdreNr Ordredato KNr 20505 20.8.2011 5022 20506 20.8.2011 5009 20507 20.9.2011 5188 Ordreskjemaet består av et «hode», der man skriver inn dato og kundenr, og et antall «linjer», der man på hver linje skriver inn varenummer og antall eksemplarer. Det er et en-til-mange forhold mellom en ordre og en linje på denne ordren. OrdreNr VNr Pris Antall 20505 10830 29.90 1 20505 77033 109.50 5 20506 10830 29.90 1 20506 44939 57.60 3 20506 65081 109.50 5 20507 12088 109.50 2 Databaser Leksjon 6: Datamodellering med E/R - 8

Tabeller som forhold: ProsjektArbeid PNr AnsNr AntTimer 1001 42 12 1001 71 44 1003 123 4 1003 42 21 1003 2 76 1003 93 59 1005 2 40 1005 19 7 1007 27 23 1012 2 15 1012 42 42 Hver rad representerer en forholdsforekomst. Tabellen representerer et mange-til-mange forhold mellom prosjekter og ansatte. Databaser Leksjon 6: Datamodellering med E/R - 9

Hendelser: Temperaturmåling StedNr Dato Temp 53 30.04.2011 7 53 12.05.2011 8 53 20.05.2011 6 54 20.05.2011 11 54 20.07.2011 4 En hendelse er noe som skjer på et bestemt sted på et bestemt tidspunkt. Hva er en hensiktsmessig primærnøkkel i tabellen? Hva om vi vil gjøre flere målinger pr. dag? Databaser Leksjon 6: Datamodellering med E/R - 10

Tabeller og hierarkier: Slektstrær Id Fornavn Mor Far 1 Ola 2 Lise 3 Per 1 4 Kari 2 5 Arne 3 6 Johanne 4 5 7 Gunnar 4 5 Ola Per Arne Gunnar Kari Johanne Lise Far-forholdet er et hierarki; et en-til-mange forhold fra far til barn. Det samme er mor-forholdet. Lar seg representere i en tabell ved at alle «peker på» sine foreldre. Er det fremmednøkler her? Databaser Leksjon 6: Datamodellering med E/R - 11

Tabeller og hierarkier: Diskusjonsforum Id Avsender Dato Melding SvarPå 1 kahn 23.02.2011 Bla bla bla... 2 ok88 23.02.2011 Bla bla bla... 1 3 jwh 24.02.2011 Bla bla bla... 1 4 kahn 24.02.2011 Bla bla bla... 3 5 kasper 24.02.2011 Bla bla bla... 6 jesper 25.02.2011 Bla bla bla... 5 1 5 2 3 4 Et forum har flere diskusjonstråder. Hver tråd er et hirerarki (et tre). Et innlegg kan få flere svar. Et innlegg starter en ny tråd, eller er svar på et bestemt innlegg. Er det fremmednøkler i tabellen? 6 Databaser Leksjon 6: Datamodellering med E/R - 12

Tabeller og grafer (nettverk): Avstandsmatrise Fra Til Km Bø Porsgrunn 63 Porsgrunn Notodden 86 Bø Notodden 34 Bø Rauland 88 En graf er en samling av noder (byer) og kanter (veier) mellom disse. Hver vei blir til en rad i tabellen. Byene kan lagres i en egen tabell. Kunne evt. lagret veiene i begge retninger. Rauland 88 34 Bø 63 Notodden 86 Porsgrunn Databaser Leksjon 6: Datamodellering med E/R - 13

Tabeller og grafer (nettverk): Fottur TurNr StartHytte Gradering 56 Glefsebu Lett 77 Høgåshytta Middels Glefsebu Storvassbui Høgåshytta Mimrebu Mimrebu Breheimen Krikut TurNr Dag TilHytte 56 1 Mimrebu 56 2 Storvassbui 77 1 Breheimen 77 2 Mimrebu 77 3 Krikut Databaser Leksjon 6: Datamodellering med E/R - 14

Så Hva går datamodellering ut på? Databaser Leksjon 6: Datamodellering med E/R - 15

Modeller og perspektiver Når man skal konstruere noe som er komplisert er det nyttig å lage en modell først. Hus-eksempel: Arkitekttegning, 3D-modell En modell er en representasjon av noe, der visse egenskaper, som er viktige for det formål representasjonen skal brukes til, er fremhevet, mens øvrige egenskaper utelates. Perspektiver: Prosessorientert: Hva skal systemet gjøre? Informasjonsorientert: Hva må systemet vite? Objektorientert: Et system består av kommuniserende objekter. Databaser Leksjon 6: Datamodellering med E/R - 16

Livsløpet til et databasesystem Et databasesystem inngår som regel i et større (edb-basert) informasjonssystem. Systemutvikling kan gjøres i faser. Forstudie: Skal vi starte utvikling? Analyse: Hva skal systemet gjøre? Design: Hvordan skal systemet bygges opp? Implementasjon: Lag (programmer) systemet! Test Drift Videreutvikling / avvikling Databaser Leksjon 6: Datamodellering med E/R - 17

Fossefallsmodellen / Smidige metoder Den «klassiske» fossefallsmodellen er kritisert for å være for «stivbeint». Smidige metoder (agile) er en mer fleksibel løsning. Mindre omfattende planlegging i starten Mange, små leveranser og hyppige tilbakemeldinger underveis Databaser Leksjon 6: Datamodellering med E/R - 18

Databasedesign HVA? Begrepsmessig databasedesign E/R diagram Logisk databasedesign HVORDAN? Fysisk databasedesign Databaser Leksjon 6: Datamodellering med E/R - 19

Databasedesign fra abstrakt til konkret Begrepsmessig databasedesign Teknologiuavhengig beskrivelse av hva databasen skal inneholde. E/R (Entity/Relationship) mye brukt som «språk». Logisk databasedesign Logisk tabellstruktur uavhengig av konkret DBHS. Fysisk databasedesign Fysisk tabellstruktur tilpasset et konkret DBHS med beskrivelse av lagringsstrukturer og aksessteknikker. E/R-diagrammer kan oversettes til tabellstruktur delvis automatisk av modelleringsverktøyet. Generate database Databaser Leksjon 6: Datamodellering med E/R - 20

Introduksjon til E/R-diagrammer E/R-diagrammer er en visuell beskrivelse av strukturen til en database. Hver entitet (boksene) svarer til en tabell. Attributter (i nederste del av boksene) svarer til kolonner. Identifikatorer er understreket og svarer til primærnøkler. Forhold (linjene) svarer til fremmednøkler. E/R-diagrammer brukes når vi planlegger hva databasen skal inneholde. Gir god oversikt. Lesbare også for de som ikke er IT-eksperter. Databaser Leksjon 6: Datamodellering med E/R - 21

Grunnleggende begreper i E/R Person Bil PersonNr Fornavn Etternavn Adresse eier eiet-av RegNr Merke Modell Årsmodell Person og Bil er entiteter. Fornavn er et attributt til Person. RegNr er identifikator i Bil. En person kan spille rollen som eier i forholdet mellom Person og Bil. Databaser Leksjon 6: Datamodellering med E/R - 22

Type og forekomst Tabellen Ansatt inneholder mange rader. Hver rad beskriver én ansatt. En entitetsforekomst svarer til en rad i en tabell. Eksempel: (AnsattNr=1, Fornavn='Hans', Etternavn='Hansen', Adresse='Hansegata 3') Entitetstypen representerer mengden av forekomster (og svarer dermed til hele tabellen). Tilsvarende skiller vi mellom type og forekomst av forhold. Forekomst: Eierforholdet mellom Ola og hans Ascona. Type: Samlingen av alle eierforhold. Databaser Leksjon 6: Datamodellering med E/R - 23

Forholdstype og forholdsforekomster Kunde 1 Kunde 2 Kunde 3 Ordre 1 Ordre 2 Ordre 3 Ordre 4 Databaser Leksjon 6: Datamodellering med E/R - 24

Kardinalitet 1:N (en-tilmange) Person PersonNr Fornavn Etternavn Adresse eier eiet-av Bil RegNr Merke Modell Årsmodell 1:1 (en-til-en) Ansatt AnsNr Fornavn Etternavn leder er-ledet-av Avdeling AvdKode AvdTlf Leder M:N (mange-tilmange) Selger AnsNr Fornavn Etternavn selger blir-solgt-av Produkt ProduktNr Betegnelse PrisPrEnhet Databaser Leksjon 6: Datamodellering med E/R - 25

Minimums- og maksimumskardinalitet En gitt person kan eie minimum 0 og maksimum mange biler. Symbol nærmest entitetene angir maksimumskardinalitet. Kråkefot betyr «mange», mens betyr 1. Innerste symbol angir minimumskardinalitet. Sirkel betyr 0 og betyr 1. Forenklet notasjon (brukes i PowerDesigner): En sirkel alene betyr maksimum=1 og minimum=0. En alene betyr maksimum=minimum=1. Generelt er det mulig å bruke andre «tall» enn 0, 1 og «mange». Eksempel: 3..7 Forskjellen på 0, 1 og «mange» avgjør tabellstruktur. Databaser Leksjon 6: Datamodellering med E/R - 26

Svake entiteter Båt Navn MaxAntPersoner MaxAntBiler har-avgang avgang-for Avgang Dato Klokkeslett GrønnAvgang En svak entitet arver deler av sin identifikator fra en annen og kan ikke eksistere uten denne. En Avgang kan ikke eksistere uten en tilhørende Båt. Avgangen forsvinner dersom båten synker Identifikatoren for Avgang er (delvis) avledet fra identifikatoren for Båt. En Avgang kan bare identifiseres med hjelp av Båt identifikatoren. Databaser Leksjon 6: Datamodellering med E/R - 27

Oppløsing av mange-til-mange forhold Selger Produkt AnsNr Fornavn Etternavn selger blir-solgt-av ProduktNr Betegnelse PrisPrEnhet Er det interessante egenskaper ved forholdet? Selger AnsNr Fornavn Etternavn SelgerProduktTilknytning Budsjett Produkt ProduktNr Betegnelse PrisPrEnhet Databaser Leksjon 6: Datamodellering med E/R - 28

Subtyper gir spesialisering Ansatt AnsNr Fornavn Etternavn Ansatt AnsNr Fornavn Etternavn disponerer firmabil-for Subtyper arver egenskapene til supertypen, og kan i tillegg ha ekstra attributter og inngå i flere forhold. Subtyper svarer til delmengder på forekomstnivå. RegNr Bil Sjekk: Sett inn «er-en»! Selger Bil Bonus disponerer firmabil-for RegNr Databaser Leksjon 6: Datamodellering med E/R - 29

Noen abstraksjonsmekanismer Spesialisering / generalisering Selger er en spesialisering av Ansatt. Ansatt er en generalisering av Selger. «Er-en» Aggregering / dekomponering Sykkel er en aggregering av hjul, ramme, sete, styre og pedaler. Dekomponering av sykkel gir Kategorisering / instansiering Ansatt er en kategorisering av Hans, Lise, Lise er en instans av Ansatt. Jmf. type og forekomst «Har-en» Databaser Leksjon 6: Datamodellering med E/R - 30

Modelleringsmønstrer Mange datamodelleringsproblemer er eksempler på noen få «klassiske problemer». Skagestein kaller dette for modelleringsmønstrer. Eksempler: «Er-en»-hierarkier ( en katt er et pattedyr ) «Har-en» hierarkier ( del er bygget opp fra ) Et papirskjema er bygget opp fra et hode og et antall linjer. Skal man kun lagre nå-situasjonen, eller også historikken? Databaser Leksjon 6: Datamodellering med E/R - 31

Hode/linje-mønsteret (master/detail) Kunde Vare Kunde Ordre Obs! Vare Kunde Ordre Ordrelinje Vare Databaser Leksjon 6: Datamodellering med E/R - 32

Entitet eller attributt? En egenskap ved et attributt kan lagres som et attributt, for eksempel hvilken avdeling en ansatt jobber i: Hva om vi vil lagre flere opplysninger om avdelingen? Databaser Leksjon 6: Datamodellering med E/R - 33

Skjema eller forekomst? Avdeling Kode Kvartal1 Kvartal2 Kvartal3 Kvartal4 Avdeling Kode Kvartal Omsetning Kvartalsvis omsetning pr. avdeling kan lagres i 4 attributter. Til høyre blir kvartalsnummer lagret som data (fra skjema til forekomst). Kan vi bruke samme identifikator? Hva om vi skal lagre omsetning pr. måned/dag? Eksempel 2: Lagre tre tlfnr pr. ansatt (privat, jobb, mobil). Databaser Leksjon 6: Datamodellering med E/R - 34

Avdeling AvdNavn Telefon Egenforhold Underavdeling UnderNavn Telefon underordnet Enhet Navn Telefon overordnet Kan antall nivåer variere? Er det en øvre grense? Kontor KontorNavn Telefon Egenforhold kan modellere vilkårlig dype hierarkier. Eksempler: Slektstrær, kataloger/mapper på en PC, diskusjonsforum. Hvilken modell gir de enkleste spørringene? Databaser Leksjon 6: Datamodellering med E/R - 35

Tid og rom Vare VareNr Pris Kun lagre nå-pris? Hva kostet varen tidligere? Lagre prisendringer, eller pris for hver dag? Håndtering av tidsperioder. Tidspunkt/sted som (del)identifikator i entiteter som representerer «hendelser» (vielse). Vare VareNr Pris Prisendring Dato Listepris Databaser Leksjon 6: Datamodellering med E/R - 36