Teil III Entity-Relationship-Modell · 3 Weitere Konzepte im ER-Modell Sattler / Saake...

44
Teil III Entity-Relationship-Modell

Transcript of Teil III Entity-Relationship-Modell · 3 Weitere Konzepte im ER-Modell Sattler / Saake...

Teil III

Entity-Relationship-Modell

Entity-Relationship-Modell

Entity-Relationship-Modell

1 Datenbankmodell

2 ER-Modell

3 Weitere Konzepte im ER-Modell

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–1

Entity-Relationship-Modell

Lernziele für heute . . .

Kenntnis der Konzepte desEntity-Relationship-ModellsFähigkeiten zur koneptuellen Modellierungeines Anwendungsbereichs

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–2

Entity-Relationship-Modell Datenbankmodell

Grundlagen von Datenbankmodellen

Ein Datenbankmodell ist ein System von Konzepten zurBeschreibung von Datenbanken. Es legt Syntax und Semantik vonDatenbankbeschreibungen für ein Datenbanksystem fest.

Datenbankbeschreibungen = Datenbankschemata

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–3

Entity-Relationship-Modell Datenbankmodell

Ein Datenbankmodell legt fest...1 statische Eigenschaften

1 Objekte2 Beziehungen

inklusive der Standard-Datentypen, die Daten über dieBeziehungen und Objekte darstellen können,

2 dynamische Eigenschaften wie1 Operationen2 Beziehungen zwischen Operationen,

3 Integritätsbedingungen an1 Objekte2 Operationen

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–4

Entity-Relationship-Modell Datenbankmodell

Datenbankmodelle

Klassische Datenbankmodelle sind speziell geeignet fürI große Informationsmengen mit relativ starrer Struktur undI die Darstellung statischer Eigenschaften und

Integritätsbedingungen (also die Bereiche 1(a), 1(b) und 3(a))

Entwurfsmodelle: (E)ER-Modell, UML, . . .Realisierungsmodelle: Relationenmodell, objektorientierteModelle, . . .

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–5

Entity-Relationship-Modell Datenbankmodell

Datenbanken versus Programmiersprachen

Datenbankkonzept Typsystem einerProgrammiersprache

Datenbankmodell TypsystemRelation, Attribut . . . int, struct ...

Datenbankschema Variablendeklarationrelation WEIN = (...) var x: int, y: struct Wein

Datenbank WerteWEIN(4961, ’Chardonnay’, ’Weiß’, . . . ) 42, ’Cabernet Sauvignon’

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–6

Entity-Relationship-Modell Datenbankmodell

Abstraktionsstufen

Modelle Daten Algorithmenabstrakt Entity-Relationship-Modell Struktogrammekonkret Hierarchisches Modell Pascal

Netzwerkmodell C, C++Relationenmodell Java, C#

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–7

Entity-Relationship-Modell Datenbankmodell

Datenbankmodelle im Überblick

HM

NWMRM

SQL

NF2

eNF2

ER

SDM

OEM

UMLORDM

SQL:1999

SQL:2003

ODMG

OODM(C++)

implementierungsnah abstrakt

2005

2000

1990

1980

1970

ab Mitte1960

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–8

Entity-Relationship-Modell Datenbankmodell

Datenbankmodelle im Überblick /2

HM: hierarchisches Modell, NWM: Netzwerkmodell, RM:RelationenmodellNF2: Modell der geschachtelten (Non-First-Normal-Form = NF2)Relationen, eNF2: erweitertes NF2-ModellER: Entity-Relationship-Modell, SDM: semantische DatenmodelleOODM / C++: objektorientierte Datenmodelle auf Basisobjektorientierter Programmiersprachen wie C++, OEM:objektorientierte Entwurfsmodelle (etwa UML), ORDM:objektrelationale Datenmodelle

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–9

Entity-Relationship-Modell ER-Modell

Das ER-Modell

Entity: Objekt der realen oder der Vorstellungswelt, über dasInformationen zu speichern sind, z.B. Produkte (Wein,Katalog), Winzer oder Kritiker; aber auch Informationenüber Ereignisse, wie z.B. Bestellungen

Relationship: beschreibt eine Beziehung zwischen Entities, z.B. einKunde bestellt einen Wein oder ein Wein wird von einemWinzer angeboten

Attribut: repräsentiert eine Eigenschaft von Entities oderBeziehungen, z.B. Name eines Kunden, Farbe einesWeines oder Datum einer Bestellung

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–10

Entity-Relationship-Modell ER-Modell

ER-BeispielRebsorte

Anbaugebiet

Wein

sitzt in

produziertvon Erzeuger

hergestellt aus

empfiehlt

Gericht

Kritiker

[0,*]

[1,7]

[0,*]

[0,*]

[0,*]

Anteil

NameFarbe

Weingut Adresse

NameRegion

Name

Restsüße

Farbe

Jahrgang

Bezeichnung

Beilage

Name

Organisation

Land

Lizenz

besitzt

LizenzNr

Menge

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–11

Entity-Relationship-Modell ER-Modell

Werte

Werte: primitive Datenelemente, die direkt darstellbar sindWertemengen sind beschrieben durch Datentypen, die nebeneiner Wertemenge auch die Grundoperationen auf diesen WertencharakterisierenER-Modell: vorgegebene Standard-Datentypen, etwa die ganzenZahlen int, die Zeichenketten string, Datumswerte date etc.jeder Datentyp stellt Wertebereich mit Operationen undPrädikaten dar

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–12

Entity-Relationship-Modell ER-Modell

Entities

Entities sind die in einer Datenbank zu repräsentierendenInformationseinheitenim Gegensatz zu Werten nicht direkt darstellbar, sondern nur überihre Eigenschaften beobachtbarEntities sind eingeteilt in Entity-Typen, etwa E1,E2 . . .

Wein

Menge der aktuellen Entities: E = {e1, e2, . . . , en}

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–13

Entity-Relationship-Modell ER-Modell

Attribute

Attribute modellieren Eigenschaften von Entities oder auchBeziehungenalle Entities eines Entity-Typs haben dieselben Arten vonEigenschaften; Attribute werden somit für Entity-Typen deklariert

Wein

Name Farbe

Jahrgang

textuelle Notation E(A1 : D1, . . . ,Am : Dm)

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–14

Entity-Relationship-Modell ER-Modell

Identifizierung durch Schlüssel

Schlüsselattribute: Teilmenge der gesamten Attribute einesEntity-Typs E(A1, . . . ,Am)

{S1, . . . , Sk} ⊆ {A1, . . . ,Am}

in jedem Datenbankzustand identifizieren die aktuellen Werte derSchlüsselattribute eindeutig Instanzen des Entity-Typs E

bei mehreren möglichen Schlüsselkandidaten: Auswahl einesPrimärschlüsselsNotation: markieren durch Unterstreichung:

E(. . . , S1, . . . , Si, . . .)

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–15

Entity-Relationship-Modell ER-Modell

Beziehungstypen

Beziehungen zwischen Entities werden zu Beziehungstypenzusammengefasstallgemein: beliebige Anzahl n ≥ 2 von Entity-Typen kann an einemBeziehungstyp teilhabenzu jedem n-stelligen Beziehungstyp R gehören n Entity-TypenE1, . . . ,En

Ausprägung R eines Beziehungstyps

R ⊆ E1 × E2 × · · · × En

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–16

Entity-Relationship-Modell ER-Modell

Beziehungstypen /2

Notation

WeinErzeuger produziert

textuelle Notation: R(E1,E2, . . . ,En)

wenn Entity-Typ mehrfach an einem Beziehungstyp beteiligt:Vergabe von Rollennamen möglich

verheiratet(Frau: Person, Mann: Person)

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–17

Entity-Relationship-Modell ER-Modell

Beziehungsattribute

Beziehungen können ebenfalls Attribute besitzenAttributdeklarationen werden beim Beziehungstyp vorgenommen;gilt auch hier für alle Ausprägungen eines Beziehungstyps Beziehungsattribute

RebsorteWeinhergestellt

aus

Anteil

textuelle Notation: R(E1, . . . ,En; A1, . . . ,Ak)

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–18

Entity-Relationship-Modell ER-Modell

Merkmale von Beziehungen

Stelligkeit oder Grad:I Anzahl der beteiligten Entity-TypenI häufig: binärI Beispiel: Lieferant liefert Produkt

Kardinalität oder Funktionalität:I Anzahl der eingehenden Instanzen eines Entity-TypsI Formen: 1:1, 1:n, m:nI stellt Integritätsbedingung darI Beispiel: maximal 5 Produkte pro Bestellung

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–19

Entity-Relationship-Modell ER-Modell

Zwei- vs. mehrstellige Beziehungen

Weinempfiehlt

Gericht

Kritiker

WeinG-K

Gericht

Kritiker

G-W

K-W

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–20

Entity-Relationship-Modell ER-Modell

Ausprägungen im Beispiel

Gericht

Kritiker

Wein

g1

g2

w1

w2

k1 k2

Gericht

Kritiker

Wein

g1

g2

w1

w2

k1 k2

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–21

Entity-Relationship-Modell ER-Modell

Rekonstruktion der Ausprägungen

Gericht

Kritiker

Wein

g1

g2

w1

w2

k1 k2

g1 – k1 – w1

g1 – k2 – w2

g2 – k2 – w1

aber auch: g1 – k2 – w1

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–22

Entity-Relationship-Modell ER-Modell

1:1-Beziehungen

jedem Entity e1 vom Entity-Typ E1 ist maximal ein Entity e2 aus E2zugeordnet und umgekehrtBeispiele: Prospekt beschreibt Produkt, Mann ist verheiratet mitFrau

E1 E2

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–23

Entity-Relationship-Modell ER-Modell

1:N-Beziehungen

jedem Entity e1 vom Entity-Typ E1 sind beliebig viele Entities E2zugeordnet, aber zu jedem Entity e2 gibt es maximal ein e1 aus E1

Beispiele: Lieferant liefert Produkt, Mutter hat Kinder

E1 E2

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–24

Entity-Relationship-Modell ER-Modell

N:1-Beziehung

invers zu 1:N, auch funktionale Beziehungzweistellige Beziehungen, die eine Funktion beschreiben:Jedem Entity eines Entity-Typs E1 wird maximal ein Entity einesEntity-Typs E2 zugeordnet.

R : E1 → E2

Weinproduziert

von Erzeuger

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–25

Entity-Relationship-Modell ER-Modell

1:1-Beziehung

Erzeuger besitzt Lizenz

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–26

Entity-Relationship-Modell ER-Modell

M:N-Beziehungen

keine RestriktionenBeispiel: Bestellung umfasst Produkte

E1 E2

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–27

Entity-Relationship-Modell ER-Modell

[min,max]-Notation

E1 EnR[min1, max1] [minn, maxn]

E2

[min2, max2]...

schränkt die möglichen Teilnahmen von Instanzen der beteiligtenEntity-Typen an der Beziehung ein, indem ein minimaler und einmaximaler Wert vorgegeben wirdNotation für Kardinalitätsangaben an einem Beziehungstyp

R(E1, . . . ,Ei[mini,maxi], . . . ,En)

Kardinalitätsbedingung: mini ≤ |{r | r ∈ R ∧ r.Ei = ei}| ≤ maxi

Spezielle Wertangabe für maxi ist ∗Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–28

Entity-Relationship-Modell ER-Modell

Kardinalitätsangaben

[0, ∗] legt keine Einschränkung fest (default)R(E1[0, 1],E2) entspricht einer (partiellen) funktionalen BeziehungR : E1 → E2, da jede Instanz aus E1 maximal einer Instanz aus E2zugeordnet isttotale funktionale Beziehung wird durch R(E1[1, 1],E2) modelliert

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–29

Entity-Relationship-Modell ER-Modell

Kardinalitätsangaben: Beispiele

partielle funktionale Beziehunglagert_in(Produkt[0,1],Fach[0,3])

„Jedes Produkt ist im Lager in einem Fach abgelegt, allerdingswird ausverkauften bzw. gegenwärtig nicht lieferbaren Produktekein Fach zugeordnet. Pro Fach können maximal drei Produktegelagert werden.“totale funktionale Beziehung

liefert(Lieferant[0,*],Produkt[1,1])

„Jedes Produkt wird durch genau einen Lieferant geliefert, aberein Lieferant kann durchaus mehrere Produkte liefern.“

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–30

Entity-Relationship-Modell ER-Modell

Alternative Kardinalitätsangabe

geliefert vonProdukt Lieferant

[1,1] [0,*]

geliefert vonProdukt Lieferant

N 1

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–31

Entity-Relationship-Modell Weitere Konzepte im ER-Modell

Abhängige Entity-Typen

abhängiger Entity-Typ: Identifikation über funktionale Beziehung

WeinJahrgang Weingehört-zu

Jahr

Restsüße

Name

Farbe

Abhängige Entities im ER-Modell: Funktionale Beziehung alsSchlüssel

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–32

Entity-Relationship-Modell Weitere Konzepte im ER-Modell

Abhängige Entity-Typen /2

Mögliche Ausprägung für abhängige Entities

Name: Pinot NoirFarbe: Rot

Name: Riesling ReserveFarbe: Weiß

Name: ZinfandelFarbe: Rot

gehört-zu

gehört-zu

gehört-zu

Jahr: 2004Restsüße: 1,2

Jahr: 2003Restsüße: 1,4

Jahr: 1999Restsüße: 6,7

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–33

Entity-Relationship-Modell Weitere Konzepte im ER-Modell

Abhängige Entity-Typen /3

Alternative Notation

NWeinJahrgang Weingehört-zu

1

Jahr

Restsüße

Name

Farbe

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–34

Entity-Relationship-Modell Weitere Konzepte im ER-Modell

Die IST-Beziehung

Spezialisierungs-/Generalisierungsbeziehung oder auch IST-Beziehung (engl. is-a relationship)textuelle Notation: E1 IST E2

IST-Beziehung entspricht semantisch einer injektiven funktionalenBeziehung

WeinSchaumwein IST

Name

Farbe

Herstellung

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–35

Entity-Relationship-Modell Weitere Konzepte im ER-Modell

Eigenschaften der IST-Beziehung

Jeder Schaumwein-Instanz ist genau eine Wein-Instanzzugeordnet Schaumwein-Instanzen werden durch die funktionale IST-Beziehung identifiziertNicht jeder Wein ist zugleich ein SchaumweinAttribute des Entity-Typs Wein treffen auch auf Schaumweine zu:„vererbte“ Attribute

Schaumwein(Name,Farbe︸ ︷︷ ︸von Wein

,Herstellung)

nicht nur die Attributdeklarationen vererben sich, sondern auchjeweils die aktuellen Werte für eine Instanz

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–36

Entity-Relationship-Modell Weitere Konzepte im ER-Modell

Ausprägung für IST-Beziehung

Schaumweine

Weine

w1

w2

w3

w1

w2

w5

w4

w6

w4

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–37

Entity-Relationship-Modell Weitere Konzepte im ER-Modell

Alternative Notation für IST-Beziehung

WeinSchaumwein

Name FarbeHerstellung

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–38

Entity-Relationship-Modell Weitere Konzepte im ER-Modell

Kardinalitätsangaben: IST

für Beziehung E1 IST E2 gilt immer: IST(E1[1, 1],E2[0, 1])

Jede Instanz von E1 nimmt genau einmal an der IST-Beziehungteil, während Instanzen des Obertyps E2 nicht teilnehmen müssenAspekte wie Attributvererbung werden hiervon nicht erfasst

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–39

Entity-Relationship-Modell Weitere Konzepte im ER-Modell

Optionalität von Attributen

Anbaugebietsitzt inErzeuger

Weingut AdresseName

RegionLand

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–40

Entity-Relationship-Modell Weitere Konzepte im ER-Modell

Konzepte im Überblick

Begriff Informale BedeutungEntity zu repräsentierende InformationseinheitEntity-Typ Gruppierung von Entitys mit gleichen EigenschaftenBeziehungstyp Gruppierung von Beziehungen zwischen EntitysAttribut datenwertige Eigenschaft eines Entitys oder einer Bezie-

hungSchlüssel identifizierende Eigenschaft von EntitysKardinalitäten Einschränkung von Beziehungstypen bezüglich der mehr-

fachen Teilnahme von Entitys an der BeziehungStelligkeit Anzahl der an einem Beziehungstyp beteiligten Entity-

Typenfunktionale Beziehung Beziehungstyp mit Funktionseigenschaftabhängige Entitys Entitys, die nur abhängig von anderen Entitys existieren

könnenIST-Beziehung Spezialisierung von Entity-TypenOptionalität Attribute oder funktionale Beziehungen als partielle Funk-

tionen

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–41

Entity-Relationship-Modell Weitere Konzepte im ER-Modell

Zusammenfassung

Datenbankmodell, Datenbankschema, Datenbank(instanz)Entity-Relationship-ModellWeitere Konzepte im ER-ModellBasis: Kapitel 3 von [SSH10]

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–42

Entity-Relationship-Modell Weitere Konzepte im ER-Modell

Kontrollfragen

Was definiert ein Datenbankmodell? Wasunterscheidet Modell und Schema?Welche Konzepte definiert dasER-Modell?Durch welche Eigenschaften sindBeziehungstypen charakterisiert?Was unterscheidet abhängigeEntity-Typen von normalen Entity-Typen?

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–43