Sie sind auf Seite 1von 49

Teil III

Entity-Relationship-Modell
Entity-Relationship-Modell

1. Datenbankmodelle

2. ER-Modell

3. Weitere Konzepte im ER-Modell

3-1
Lernziele fur
\" heute . . .

\bullet Kenntnis der Konzepte des


Entity-Relationship-Modells
\bullet Fähigkeiten zur konzeptuellen Modellierung eines
Anwendungsbereichs

3-2 VL Datenbanksysteme Sattler / Saake


Datenbankmodelle

3-3 VL Datenbanksysteme Sattler / Saake


Grundlagen von Datenbankmodellen

Datenbankmodell
Ein Datenbankmodell ist ein System von Konzepten zur Beschreibung
von Datenbanken. Es legt Syntax und Semantik von
Datenbankbeschreibungen für ein Datenbanksystem fest.

\bullet Datenbankbeschreibungen = Datenbankschemata

3-4 VL Datenbanksysteme Sattler / Saake


Ein Datenbankmodell legt fest...

1. statische Eigenschaften
1.1 Objekte
1.2 Beziehungen

inklusive der Standard-Datentypen, die Daten über die Beziehungen


und Objekte darstellen können,
2. dynamische Eigenschaften wie
2.1 Operationen
2.2 Beziehungen zwischen Operationen,

3. Integrit\"
atsbedingungen an
3.1 Objekte
3.2 Operationen

3-5 VL Datenbanksysteme Sattler / Saake


Datenbankmodelle

\bullet Klassische Datenbankmodelle sind speziell geeignet für

gro{\ss}e Informationsmengen mit relativ starrer Struktur und


die Darstellung statischer Eigenschaften und Integrit\"
atsbedingungen
(also die Bereiche 1(a), 1(b) und 3(a))

\bullet Entwurfsmodelle: (E)ER-Modell, UML, . . .


\bullet Realisierungsmodelle: Relationenmodell, objektorientierte Modelle,
...

3-6 VL Datenbanksysteme Sattler / Saake


Datenbanken versus Programmiersprachen

Datenbankkonzept Typsystem einer


Programmiersprache
Datenbankmodell Typsystem
Relation, Attribut . . . int, struct ...
Datenbankschema Variablendeklaration
relation WEIN = (...) var x: int,
y: struct Wein
Datenbank Werte
WEIN(4961, ’Chardonnay’, 42, ’Cabernet Sauvignon’
’Weiß’, . . . ) 42, ’Cabernet Sauvignon’

3-7 VL Datenbanksysteme Sattler / Saake


Abstraktionsstufen

Modelle Daten Algorithmen


abstrakt Entity-Relationship-Modell Struktogramme
konkret Hierarchisches Modell Pascal
Netzwerkmodell C, C++
Relationenmodell Java, C#

3-8 VL Datenbanksysteme Sattler / Saake


\"
Datenbankmodelle im Uberblick

implementierungsnah abstrakt
ab Mitte
1960 HM

NWM
1970 RM
ER
SQL

1980 NF2
SDM
eNF2
OODM
(C++)
OEM
1990
ODMG UML
ORDM

SQL:1999 XML
2000
SQL:2003
NoSQL

2010
NewSQL
SQL:2016

2020

3-9 VL Datenbanksysteme Sattler / Saake


\"
Datenbankmodelle im Uberblick /2

\bullet HM: hierarchisches Modell, NWM: Netzwerkmodell, RM:


Relationenmodell
\bullet NF2 : Modell der geschachtelten (Non-First-Normal-Form = NF2 )
Relationen, eNF2 : erweitertes NF2 -Modell
\bullet ER: Entity-Relationship-Modell, SDM: semantische Datenmodelle
\bullet OODM / C++: objektorientierte Datenmodelle auf Basis
objektorientierter Programmiersprachen wie C++, OEM:
objektorientierte Entwurfsmodelle (etwa UML), ORDM:
objektrelationale Datenmodelle

3 - 10 VL Datenbanksysteme Sattler / Saake


ER-Modell

3 - 11 VL Datenbanksysteme Sattler / Saake


Das ER-Modell

Entity: Objekt der realen oder der Vorstellungswelt, über das


Informationen 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. ein
Kunde bestellt einen Wein oder ein Wein wird von einem
Winzer angeboten
Attribut: repräsentiert eine Eigenschaft von Entities oder
Beziehungen, z.B. Name eines Kunden, Farbe eines
Weines oder Datum einer Bestellung

3 - 12 VL Datenbanksysteme Sattler / Saake


ER-Beispiel

Farbe Name Region


Rebsorte
Bezeichnung Land
[0,*]
Anbaugebiet
Beilage Anteil
hergestellt Name
Gericht aus
sitzt in
[0,*]
Name Farbe
[1,7]

[0,*] produziert
empfiehlt Wein von Erzeuger

[0,*]
Restsüße Jahrgang Weingut Adresse

Kritiker
besitzt

Name LizenzNr

Organisation
Lizenz
Menge

3 - 13 VL Datenbanksysteme Sattler / Saake


Werte

\bullet Werte: primitive Datenelemente, die direkt darstellbar sind


\bullet Wertemengen sind beschrieben durch Datentypen, die neben einer
Wertemenge auch die Grundoperationen auf diesen Werten
charakterisieren
\bullet ER-Modell: vorgegebene Standard-Datentypen, etwa die ganzen
Zahlen int, die Zeichenketten string, Datumswerte date etc.
\bullet jeder Datentyp stellt Wertebereich mit Operationen und Prädikaten
dar

3 - 14 VL Datenbanksysteme Sattler / Saake


Entities

\bullet Entities sind die in einer Datenbank zu repräsentierenden


Informationseinheiten
\bullet im Gegensatz zu Werten nicht direkt darstellbar, sondern nur über
ihre Eigenschaften beobachtbar
\bullet Entities sind eingeteilt in Entity-Typen, etwa E1 , E2 . . .

Wein

\bullet Menge der aktuellen Entities: \scrE = \{ e1 , e2 , . . . , en \}

3 - 15 VL Datenbanksysteme Sattler / Saake


Attribute

\bullet Attribute modellieren Eigenschaften von Entities oder auch


Beziehungen
\bullet alle Entities eines Entity-Typs haben dieselben Arten von
Eigenschaften; Attribute werden somit für Entity-Typen deklariert

Name Farbe

Jahrgang
Wein

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

3 - 16 VL Datenbanksysteme Sattler / Saake


Identifizierung durch Schlussel
\"

\bullet Schlüsselattribute: Teilmenge der gesamten Attribute eines


Entity-Typs E(A1 , . . . , Am )

\{ S1 , . . . , Sk \} \subseteq \{ A1 , . . . , Am \}

\bullet in jedem Datenbankzustand identifizieren die aktuellen Werte der


Schlüsselattribute eindeutig Instanzen des Entity-Typs E
\bullet bei mehreren möglichen Schlüsselkandidaten: Auswahl eines
Prim\"
arschlussels
\"
\bullet Notation: markieren durch Unterstreichung:

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

3 - 17 VL Datenbanksysteme Sattler / Saake


Beziehungstypen

\bullet Beziehungen zwischen Entities werden zu Beziehungstypen


zusammengefasst
\bullet allgemein: beliebige Anzahl n \geq 2 von Entity-Typen kann an einem
Beziehungstyp teilhaben
\bullet zu jedem n-stelligen Beziehungstyp R gehören n Entity-Typen
E1 , . . . , En
\bullet Ausprägung \scrR eines Beziehungstyps

\scrR \subseteq \scrE 1 \times \scrE 2 \times \cdot \cdot \cdot \times \scrE n

3 - 18 VL Datenbanksysteme Sattler / Saake


Beziehungstypen /2

\bullet Notation

Erzeuger produziert Wein

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


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

verheiratet(Frau: Person, Mann: Person)

3 - 19 VL Datenbanksysteme Sattler / Saake


Beziehungsattribute

\bullet Beziehungen können ebenfalls Attribute besitzen


\bullet Attributdeklarationen werden beim Beziehungstyp vorgenommen;
gilt auch hier für alle Ausprägungen eines Beziehungstyps \rightsquigarrow
Beziehungsattribute

Anteil

hergestellt
Wein Rebsorte
aus

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


3 - 20 VL Datenbanksysteme Sattler / Saake
Merkmale von Beziehungen

\bullet Stelligkeit oder Grad:

Anzahl der beteiligten Entity-Typen


h\"
aufig: bin\"
ar
Beispiel: Lieferant liefert Produkt
\bullet Kardinalit\"
at oder Funktionalität:
Anzahl der eingehenden Instanzen eines Entity-Typs
Formen: 1:1, 1:n, m:n
stellt Integrit\"
atsbedingung dar
Beispiel: maximal 5 Produkte pro Bestellung

3 - 21 VL Datenbanksysteme Sattler / Saake


Zwei- vs. mehrstellige Beziehungen

Gericht Gericht G-W

empfiehlt Wein G-K Wein

Kritiker Kritiker K-W

3 - 22 VL Datenbanksysteme Sattler / Saake


Auspr\"agungen im Beispiel

g1 w1 g1 w1

g2 w2 g2 w2

Gericht Wein Gericht Wein

k1 k2 k1 k2

Kritiker Kritiker

3 - 23 VL Datenbanksysteme Sattler / Saake


Rekonstruktion der Auspr\"agungen

g1 w1

g2 w2
\bullet g1 – k1 – w1
\bullet g1 – k2 – w2
\bullet g2 – k2 – w1
Gericht Wein
\bullet aber auch: g1 – k2 – w1

k1 k2

Kritiker

3 - 24 VL Datenbanksysteme Sattler / Saake


1:1-Beziehungen

\bullet jedem Entity e1 vom Entity-Typ E1 ist maximal ein Entity e2 aus
E2 zugeordnet und umgekehrt
\bullet Beispiele: Prospekt beschreibt Produkt, Mann ist verheiratet mit
Frau

E1 E2

3 - 25 VL Datenbanksysteme Sattler / Saake


1:N-Beziehungen

\bullet jedem Entity e1 vom Entity-Typ E1 sind beliebig viele Entities E2


zugeordnet, aber zu jedem Entity e2 gibt es maximal ein e1 aus E1
\bullet Beispiele: Lieferant liefert Produkt, Mutter hat Kinder

E1 E2

3 - 26 VL Datenbanksysteme Sattler / Saake


N:1-Beziehung

\bullet invers zu 1:N, auch funktionale Beziehung


\bullet zweistellige Beziehungen, die eine Funktion beschreiben:
Jedem Entity eines Entity-Typs E1 wird maximal ein Entity eines
Entity-Typs E2 zugeordnet.

R : E1 \rightarrow E2

produziert
Wein von Erzeuger

3 - 27 VL Datenbanksysteme Sattler / Saake


1:1-Beziehung

Erzeuger besitzt Lizenz

3 - 28 VL Datenbanksysteme Sattler / Saake


M:N-Beziehungen

\bullet keine Restriktionen


\bullet Beispiel: Bestellung umfasst Produkte

E1 E2

3 - 29 VL Datenbanksysteme Sattler / Saake


[min,max]-Notation

[min1, max1] [minn, maxn]


E1 R En

[min2, max2]
...
E2

\bullet schränkt die möglichen Teilnahmen von Instanzen der beteiligten


Entity-Typen an der Beziehung ein, indem ein minimaler und ein
maximaler Wert vorgegeben wird

3 - 30 VL Datenbanksysteme Sattler / Saake


[min,max]-Notation /2

\bullet Notation für Kardinalitätsangaben an einem Beziehungstyp

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

\bullet Kardinalitätsbedingung: mini \leq | \{ r | r \in R \wedge r.Ei = ei \} | \leq maxi


\bullet Spezielle Wertangabe für maxi ist \ast

3 - 31 VL Datenbanksysteme Sattler / Saake


Kardinalit\"atsangaben

\bullet [0, \ast ] legt keine Einschränkung fest (default)


\bullet R(E1 [0, 1], E2 ) entspricht einer (partiellen) funktionalen Beziehung
R : E1 \rightarrow E2 , da jede Instanz aus E1 maximal einer Instanz aus E2
zugeordnet ist
\bullet totale funktionale Beziehung wird durch R(E1 [1, 1], E2 ) modelliert

3 - 32 VL Datenbanksysteme Sattler / Saake


Kardinalit\"atsangaben: Beispiele

\bullet partielle funktionale Beziehung

lagert in(Produkt[0,1],Fach[0,3])

Jedes Produkt ist im Lager in einem Fach abgelegt, allerdings wird



ausverkauften bzw. gegenwärtig nicht lieferbaren Produkte kein
Fach zugeordnet. Pro Fach können maximal drei Produkte gelagert
werden.“
\bullet totale funktionale Beziehung

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

Jedes Produkt wird durch genau einen Lieferant geliefert, aber ein

Lieferant kann durchaus mehrere Produkte liefern.“

3 - 33 VL Datenbanksysteme Sattler / Saake


Alternative Kardinalit\"atsangabe

[1,1] [0,*]
geliefert
Produkt von
Lieferant

N 1
geliefert
Produkt von
Lieferant

3 - 34 VL Datenbanksysteme Sattler / Saake


Weitere Konzepte im ER-Modell

3 - 35 VL Datenbanksysteme Sattler / Saake


Abh\"angige Entity-Typen

\bullet abh\"angiger Entity-Typ: Identifikation über funktionale Beziehung

WeinJahrgang gehört-zu Wein

Jahr
Name

Restsüße Farbe

\bullet Abhängige Entities im ER-Modell: Funktionale Beziehung als


Schlüssel

3 - 36 VL Datenbanksysteme Sattler / Saake


Abh\"angige Entity-Typen /2

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

gehört-zu

Jahr: 2004 Name: Pinot Noir


Restsüße: 1,2 Farbe: Rot

gehört-zu
Jahr: 2003 Name: Zinfandel
Restsüße: 1,4 Farbe: Rot

gehört-zu
Jahr: 1999 Name: Riesling Reserve
Restsüße: 6,7 Farbe: Weiß

3 - 37 VL Datenbanksysteme Sattler / Saake


Abh\"angige Entity-Typen /3

\bullet Alternative Notation

N 1
WeinJahrgang gehört-zu Wein

Jahr
Name

Restsüße Farbe

3 - 38 VL Datenbanksysteme Sattler / Saake


Die ist-Beziehung

\bullet Spezialisierungs-/Generalisierungsbeziehung oder auch ist-


Beziehung (engl. is-a relationship)
\bullet textuelle Notation: E1 ist E2
\bullet ist-Beziehung entspricht semantisch einer injektiven funktionalen
Beziehung

Herstellung Name

Schaumwein IST Wein Farbe

3 - 39 VL Datenbanksysteme Sattler / Saake


Eigenschaften der ist-Beziehung

\bullet Jeder Schaumwein-Instanz ist genau eine Wein-Instanz zugeordnet


\rightsquigarrow Schaumwein-Instanzen werden durch die funktionale ist-
Beziehung identifiziert
\bullet Nicht jeder Wein ist zugleich ein Schaumwein
\bullet Attribute des Entity-Typs Wein treffen auch auf Schaumweine zu:
vererbte“ Attribute

Schaumwein(Name,Farbe,Herstellung)
\underbrace{} \underbrace{}
von Wein

\bullet nicht nur die Attributdeklarationen vererben sich, sondern auch


jeweils die aktuellen Werte für eine Instanz

3 - 40 VL Datenbanksysteme Sattler / Saake


Auspr\"agung fur
\" ist-Beziehung

w1
w1
w2
w2 w4

w3
w4
Schaumweine
w5

w6

Weine

3 - 41 VL Datenbanksysteme Sattler / Saake


Alternative Notation fur
\" ist-Beziehung

Herstellung Name Farbe

Schaumwein Wein

3 - 42 VL Datenbanksysteme Sattler / Saake


Kardinalit\"atsangaben: ist

\bullet für Beziehung E1 ist E2 gilt immer: ist(E1 [1, 1], E2 [0, 1])
\bullet Jede Instanz von E1 nimmt genau einmal an der ist-Beziehung
teil, während Instanzen des Obertyps E2 nicht teilnehmen müssen
\bullet Aspekte wie Attributvererbung werden hiervon nicht erfasst

3 - 43 VL Datenbanksysteme Sattler / Saake


Optionalit\"at von Attributen

Land
Region
Weingut Adresse
Name

Erzeuger sitzt in Anbaugebiet

3 - 44 VL Datenbanksysteme Sattler / Saake


\"
Konzepte im Uberblick

Begriff Informale Bedeutung


Entity zu repr\"
asentierende Informationseinheit
Entity-Typ Gruppierung von Entitys mit gleichen Eigenschaften
Beziehungstyp Gruppierung von Beziehungen zwischen Entitys
Attribut datenwertige Eigenschaft eines Entitys oder einer Bezie-
hung
Schlussel
\" identifizierende Eigenschaft von Entitys
Kardinalit\"
aten Einschr\"
ankung von Beziehungstypen bezuglich
\" der mehr-
fachen Teilnahme von Entitys an der Beziehung
Stelligkeit Anzahl der an einem Beziehungstyp beteiligten Entity-
Typen
funktionale Beziehung Beziehungstyp mit Funktionseigenschaft

3 - 45 VL Datenbanksysteme Sattler / Saake


\"
Konzepte im Uberblick /2

Begriff Informale Bedeutung


abh\"
angige Entitys Entitys, die nur abh\"
angig von anderen Entitys existieren
k\"
onnen
ist-Beziehung Spezialisierung von Entity-Typen
Optionalit\"
at Attribute oder funktionale Beziehungen als partielle
Funktionen

3 - 46 VL Datenbanksysteme Sattler / Saake


Zusammenfassung

\bullet Datenbankmodell, Datenbankschema, Datenbank(instanz)


\bullet Entity-Relationship-Modell
\bullet Weitere Konzepte im ER-Modell
\bullet Basis: Kapitel 3 von [SSH13]

3 - 47 VL Datenbanksysteme Sattler / Saake


Kontrollfragen

\bullet Was definiert ein Datenbankmodell? Was


unterscheidet Modell und Schema?
\bullet Welche Konzepte definiert das ER-Modell?
\bullet Durch welche Eigenschaften sind
Beziehungstypen charakterisiert?
\bullet Was unterscheidet abhängige Entity-Typen von
normalen Entity-Typen?

3 - 48 VL Datenbanksysteme Sattler / Saake

Das könnte Ihnen auch gefallen