Databaser, efterår 2002 ER-modellen Troels Andreasen Datalogiafdelingen, hus 42.1 Roskilde Universitetscenter Universitetsvej 1 Postboks 260 4000 Roskilde Telefon: 4674 2000 Fax: 4674 3072 www.dat.ruc.dk
ER-modellen ER-modellen, (Entity-Relationship-modellen) modellerer problemområdet / den virkelige verden ved entiteter (entities), som personer, konti, og sammenhænge (relationships), som udfører, ejer, findes i mange varianter notation (normalt) ved diagrammer ER-diagram Database-skema Navn Pnr Navn Nr Studerende Studerer Fag Troels Andreasen 2
ER-Model, vigtigste begreber Skema: Entitets-type Attribut Sammenhæng Forekomst: Entitet Attribut-værdi Sammenhængsforekomst Troels Andreasen 3
Entitet Skema: Entitets-type (Entitetsmængde): en type for / mængde af ensartede entiteter Eksempel, Entitets-type: person konto Notation, Entitetstype: Forekomst: Entitet: en "ting", der kan skelnes og har begrebsmæssig eksistens Eksempel, Entitet: en given person: Peter en given bankkonto: Peters bankkonto Troels Andreasen 4
Attribut Skema: Attribut størrelse, der tilknyttes en entitets-type Kan tilknyttes et domæne Eksempel, attribut entitet: person, attribut: navn, domæne: {Peter, L, } entitet: person, attribut: køn, domæne: {mand, kvinde} entitet: bankkonto, attribut: saldo, domæne {reelle tal} Notation, attribut: Navn Køn Forekomst: Attribut-værdi størrelse der er tilknyttet en entitet Eksempel, Attribut-værdi. for given person, navnet: "Peter" for given person, kønnet: "mand" for given bankkonto, saldoen: - 2750,42 Troels Andreasen 5
Sammenhæng Skema: Sammenhæng (Relationship): En ordnet liste E 1,, E n af entitets-typer En given entitets-type kan optræde flere gange Notation, sammenhæng; binær (grad 2): ejer Bil n-ær (grad n): E 2 E 3 Forekomst: Sammenhængs-forekomst (sammenhængs-mængde): For sammenhæng S imellem entitetstyper E 1,, E n en mængde M af k-tupler hvert element (e 1,, e n ) i mængden M udpeger præcist et element fra hver entitetstype betyder at (e 1,, e n ) har sammenhængen S E 1 S E n Troels Andreasen 6
Sammenhæng Sammenhæng - produktbetragtning En sammenhæng er en delmængde af et kartesisk produkt, kan således noteres i tabel med kolonne pr. entitetstype f.eks. "ejer" delmængde af person bil ejer Bil "mor" delmængde af person person person bil mor person person S delmængde af E 1 E k E E 3 2 E 1 E 2 E n E 1 S E n Troels Andreasen 7
Sammenhæng Skema: Eksempel, sammenhæng: "ejer", på entitets-typerne (person, bil) ejer Bil Forekomst: Eksempel, sammenhængsforekomst: forekomst af ejer": person peter hanne bil volvo fiat "har-mor", på entitets-typerne (person, person) har-mor forekomst af "har-mor": person peter person l line l Troels Andreasen 8
Sammenhæng, Multiplicitet Multiplicitet (eller kardinalitet) begrænsning på tilladte sammenhængs-forekomster Skema: Notation en-til-en Studerende Studerer Fag Forekomst: mange-til-en Studerende Studerer Fag mange-til-mange Studerende Studerer Fag Troels Andreasen 9
Sammenhæng, Multiplicitet Læsning (læs begge veje) en-til-en Studerende Studerer Fag en studerende læser ét fag et fag læses af én studerende en-til-mange Studerende Studerer Fag mange-til-mange en studerende læser ét fag et fag læses af mange studerende Studerende Studerer Fag en studerende læser mange fag et fag læses af mange studerende Troels Andreasen 10
Sammenhæng, grad 2, 3,? grad for sammenhæng (antal indgående relationer) oftest binær (n=2), som i "ejer" og "har-mor" (ovenfor) indimellem ternær (n=3).: sjældent n 4 Eksempel med grad n = 3 Forskel på? to binære Hvem leverer vare v2 til projekt p1? Leverandør Projekt leverandør vare vare projekt l1 v1 v1 p1 leverer Vare leveres-til l1 l2 v2 v2 v2 v2 p1 p2 en ternær Leverandør leverance Projekt leverandør vare projekt l1 v1 p1 Vare l2 l2 v2 v2 p1 p2 Troels Andreasen 11
Sammenhæng, fra n-ær til binær sammenhæng S med grad n > 2 kan konverteres til entitetstype med n mange-til-en relationer til entitetstyperne i S (svarende til tabellen for sammenhængen) Eksempel leverance som ternær sammenhæng Leverandør leverance Projekt Vare leverance som entitetstype med binære sammenhænge leverance leverandøren varen projektet Leverandør Vare Projekt Troels Andreasen 12
Sammenhæng, roller Rolle (på kant/komponent) når samme entitet optræder flere gange i en sammenhæng Skema: barn har-mor mor Forekomst: af "har-mor" person (barn) b1 b2 b3 person (mor) m1 m1 m2 1 ven-med 2 Egenskaber? symmetrisk, refleksiv, transitiv, af "ven-med" person(1) p1 p2 p1 p3 p2 p1 person(2) Troels Andreasen 13
Sammenhæng Attribut på sammenhæng i princippet ikke korrekt, men i praksis ofte anvendt med følgende "semantik": Karakter Studerende Følger Kursus "forkortet" repræsentation for hvilket???: Karakter 13-skala Studerende Følger Kursus Troels Andreasen 14
Subklasse** subklasse = special-tilfælde = flere egenskaber = færre forekomster A subklasse af B A specialisering af B (eller B generalisering af A) flere egenskaber (attributter): B's + (evt.) ekstra specielle færre forekomster: alle A er B kun nogle B er A Subklasse, Notation: B **(Subklasse betegnes indimellem også "subtype") A Troels Andreasen 15
Subklasse person specialiseres i ansat og studerende ansat er en person ansat har færre forekomster og flere egenskaber end person studerende er en person studerende har færre forekomster og flere egenskaber end person Ansat Studerende Pnr Navn Løn Ansat Studerende Status Troels Andreasen 16
Subklasse, fortolkning i ER ER subklasse en entitet har en repræsentant i enhver klasse som den logisk tilhører, f.eks hvis Peter er ansat, så er han repræsenteret ved en forekomst i både Ansat og i entitetstyperne dens egenskaber (attributter) er foreningen af egenskaberne fra de entitetstyper som den tilhører, f.eks. Peter har en Løn der står i Ansat og et Pnr og et Navn der står i objekt-orienteret subklasse (til sammenligning) en entitet er repræsenteret i netop én subklasse, f.eks hvis Peter er ansat, så er han repræsenteret ved en forekomst i Ansat subklassen har arvet egenskaber fra dens superklasser, f.eks. Peter har en Løn, et Pnr og et Navn der alle står i Ansat (de to sidste er arvet fra ) Løn Ansat Studerende Pnr Navn Ansat Studerende Status Peter Troels Andreasen 17
Subklasse Multibel nedarvning, eksempel: Pnr Navn Ansat Studerende Hjælpelærer Løn Multibel nedarvning strengt taget en overflødig konstruktion bruges derfor normalt ikke giver potentielt konflikter hvis f.eks. samme attribut forekommer i flere superklasser Ansat Studerende Hjælpelærer Status Troels Andreasen 18
Subklasse opdelingstype nogle ER-notationer skelner subklasser på: disjunkte overlappende f.eks. denne notation: hvor d = disjunkt og man KAN IKKE både være ansat og studerende o = overlappende man KAN GODT være ansat og studerende Ansat alternative notationer (IKKE fra bogen): Studerende d o Ansat Studerende Ansat Studerende Troels Andreasen 19