Das Entity- Relationship-Modell - mediendb.hjr-verlag.de ...
Das Entity- Relationship-Modell - mediendb.hjr-verlag.de ...
Das Entity- Relationship-Modell - mediendb.hjr-verlag.de ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Gunter<br />
Saake<br />
Kai-Uwe<br />
Sattler<br />
Andreas<br />
Heuer<br />
5. Auflage<br />
Datenbanken<br />
Konzepte und Sprachen
3<br />
<strong>Das</strong> <strong>Entity</strong>-<br />
<strong>Relationship</strong>-<strong>Mo<strong>de</strong>ll</strong><br />
Datenmo<strong>de</strong>lle dienen in <strong>de</strong>r Informatik <strong>de</strong>r Erfassung und Darstellung <strong>de</strong>r Informationsstruktur<br />
einer Anwendung, nicht <strong>de</strong>r Informationen selbst. Im Datenbankbereich<br />
gibt es verschie<strong>de</strong>ne Einsatzzwecke. Als Entwurfsmo<strong>de</strong>lle für<br />
die frühen Phasen <strong>de</strong>r Entwicklung von Datenbankanwendungen sind sie weitgehend<br />
unabhängig von <strong>de</strong>r späteren Implementierungsplattform und dienen<br />
auch als Mittel zur Kommunikation mit <strong>de</strong>m Anwen<strong>de</strong>r o<strong>de</strong>r Auftraggeber.<br />
Realisierungsmo<strong>de</strong>lle wer<strong>de</strong>n dagegen zur Implementierung <strong>de</strong>s Datenbankentwurfs<br />
in einem konkreten System eingesetzt und beschreiben somit die <strong>Mo<strong>de</strong>ll</strong>ierungsmöglichkeiten<br />
dieses Systems.<br />
In diesem Kapitel wer<strong>de</strong>n wir nach einigen grundlegen<strong>de</strong>n Überlegungen<br />
zur Rolle von Datenbankmo<strong>de</strong>llen zunächst das klassische Entwurfsmo<strong>de</strong>ll für<br />
Datenbanken kennenlernen – das <strong>Entity</strong>-<strong>Relationship</strong>-<strong>Mo<strong>de</strong>ll</strong>.<br />
3.1 Datenbankmo<strong>de</strong>lle<br />
Die Konzepte eines Datenbankmo<strong>de</strong>lls (im Weiteren auch als Datenmo<strong>de</strong>ll bezeichnet)<br />
zur Darstellung einer Informationsstruktur umfassen<br />
1. statische Eigenschaften wie a) Objekte und b) Beziehungen, inklusive <strong>de</strong>r<br />
Standarddatentypen, die Daten über die Beziehungen und Objekte darstellen<br />
können,<br />
2. dynamische Eigenschaften wie a) Operationen und b) Beziehungen zwischen<br />
Operationen sowie<br />
51<br />
© <strong>de</strong>s Titels »Datenbanken – Konzepte und Sprachen« (ISBN 978-3-8266-9519-3) 2013<br />
by Verlagsgruppe Hüthig Jehle Rehm GmbH, Hei<strong>de</strong>lberg.<br />
Nähere Informationen unter: http://www.mitp.<strong>de</strong>/9519
3. Integritätsbedingungen an a) Objekte und b) Operationen.<br />
Objekte sind dabei etwa (Daten über) Weine und Weingüter (Erzeuger), aber<br />
auch über Ereignisse wie die Bestellung eines Weines bei einem Händler (1a).<br />
Ein Beispiel für eine Beziehung zwischen diesen Objekten ist die Tatsache, dass<br />
ein Erzeuger einen Wein produziert (1b). Operationen auf Objekten sind das Bestellen<br />
eines Weines o<strong>de</strong>r die Berechnung <strong>de</strong>s Preises unter Einbeziehung von<br />
Steuern (2a). Beziehungen zwischen Operationen können zum Beispiel festlegen,<br />
dass ein Wein erst dann bestellt wer<strong>de</strong>n darf, wenn er produziert wird<br />
(2b). Als Integritätsbedingung können wir festlegen, dass die Bestellnummer<br />
eines Weines ein<strong>de</strong>utig sein muss (Schlüsselbedingung, 3a), dass es zu je<strong>de</strong>m<br />
Wein auch einen Erzeuger geben muss (referentielle Integrität, 3a) o<strong>de</strong>r dass<br />
das Alter eines Weines nur erhöht wer<strong>de</strong>n kann (Übergangsbedingung, 3b).<br />
Datenmo<strong>de</strong>lle sind in vielen Gebieten <strong>de</strong>r Informatik grundlegend. Beispielsweise<br />
gibt es in folgen<strong>de</strong>n Bereichen spezifische Datenmo<strong>de</strong>lle:<br />
• Programmiersprachen: Typsysteme wie in C o<strong>de</strong>r Java,<br />
• Expertensysteme: Wissensrepräsentationsmetho<strong>de</strong>n wie semantische Netze,<br />
logische Formeln o<strong>de</strong>r Framestrukturen,<br />
• Graphiksysteme: Repräsentationsmo<strong>de</strong>lle wie das Begrenzungsmo<strong>de</strong>ll<br />
(Boundary Representation, BRep) o<strong>de</strong>r die Constructive Solid Geometry<br />
(CSG),<br />
• Datenbanksysteme: Datenbankmo<strong>de</strong>lle, mit <strong>de</strong>nen wir uns in diesem Kapitel<br />
beschäftigen.<br />
Tabelle 3.1 stellt die Begriffe Datenbankmo<strong>de</strong>ll, Datenbankschema und Datenbank<br />
<strong>de</strong>r <strong>de</strong>n meisten Lesern vertrauten Begriffswelt imperativer Programmiersprachen<br />
gegenüber. Ein Datenbankmo<strong>de</strong>ll entspricht einem Typsystem<br />
einer Programmiersprache, in <strong>de</strong>m die Strukturierungskonzepte für die manipulierten<br />
Daten festgelegt wer<strong>de</strong>n. Ein Datenbankschema entspricht in dieser<br />
Analogie <strong>de</strong>n Variablen<strong>de</strong>klarationen, während die eigentliche Datenbank <strong>de</strong>n<br />
<strong>de</strong>n Variablen zugewiesenen Daten (<strong>de</strong>n Werten) entspricht.<br />
Klassische Datenbankmo<strong>de</strong>lle sind speziell geeignet für:<br />
• große Informationsmengen mit relativ starrer Struktur und<br />
• die Darstellung statischer Eigenschaften und Integritätsbedingungen (umfasst<br />
somit die Bereiche 1a, 1b und 3a).<br />
Als Operationen sind in <strong>de</strong>n klassischen Datenbankmo<strong>de</strong>llen nur die Standard-<br />
Anfrage- und Än<strong>de</strong>rungsoperationen vorhan<strong>de</strong>n, die objektspezifische Operationen<br />
nicht adäquat mo<strong>de</strong>llieren und unterschei<strong>de</strong>n können.<br />
52 3 <strong>Das</strong> <strong>Entity</strong>-<strong>Relationship</strong>-<strong>Mo<strong>de</strong>ll</strong><br />
© <strong>de</strong>s Titels »Datenbanken – Konzepte und Sprachen« (ISBN 978-3-8266-9519-3) 2013<br />
by Verlagsgruppe Hüthig Jehle Rehm GmbH, Hei<strong>de</strong>lberg.<br />
Nähere Informationen unter: http://www.mitp.<strong>de</strong>/9519
Datenbankkonzept<br />
Datenbankmo<strong>de</strong>ll<br />
Typsystem einer<br />
Programmiersprache<br />
Typsystem<br />
Relation, Attribut . . . int, struct ...<br />
Datenbankschema<br />
Variablen<strong>de</strong>klaration<br />
relation WEIN = (...)<br />
Datenbank<br />
WEIN(4961, ’Chardonnay’, ’Weiß’, . . . )<br />
var x: int, y: struct Wein<br />
Werte<br />
42, ’Cabernet Sauvignon’<br />
Tabelle 3.1: Gegenüberstellung von Datenbankkonzepten zu Konzepten imperativer Programmiersprachen<br />
Zu <strong>de</strong>n klassischen Datenbankmo<strong>de</strong>llen zählen abstrakte Datenbankmo<strong>de</strong>lle,<br />
die speziell für <strong>de</strong>n Datenbankentwurf geeignet sind, und konkrete Datenbankmo<strong>de</strong>lle,<br />
die zur Implementierung dieses Entwurfs mit einem konkreten<br />
Datenbanksystem bereitstehen. Tabelle 3.2 zeigt einige Beispiele und<br />
gleichzeitig <strong>de</strong>n Zusammenhang mit Programmiersprachen: Auch hier gibt es<br />
abstrakte Notationen für Algorithmen und konkrete Implementierungen als<br />
Programm in einer konkreten Programmiersprache.<br />
<strong>Mo<strong>de</strong>ll</strong>e Daten Algorithmen<br />
abstrakt <strong>Entity</strong>-<strong>Relationship</strong>-<strong>Mo<strong>de</strong>ll</strong> Struktogramme<br />
konkret Hierarchisches <strong>Mo<strong>de</strong>ll</strong> Pascal<br />
Netzwerkmo<strong>de</strong>ll<br />
C, C++<br />
Relationenmo<strong>de</strong>ll Java, C#<br />
Tabelle 3.2: <strong>Mo<strong>de</strong>ll</strong>e für Daten und Algorithmen in verschie<strong>de</strong>nen Abstraktionsstufen<br />
In diesem Kapitel und <strong>de</strong>m folgen<strong>de</strong>n Kapitel 4 wer<strong>de</strong>n wir zunächst zwei<br />
<strong>de</strong>r klassischen Datenbankmo<strong>de</strong>lle vorstellen. In <strong>de</strong>n späteren Kapiteln wer<strong>de</strong>n<br />
dann auch noch einige neuere Datenbankmo<strong>de</strong>lle eingeführt.<br />
Abbildung 3.1 beinhaltet eine historische Einordnung sowie einen Überblick<br />
über die Bezüge zwischen <strong>de</strong>n vorgestellten Datenbankmo<strong>de</strong>llen. Dabei<br />
be<strong>de</strong>uten HM: hierarchisches <strong>Mo<strong>de</strong>ll</strong>, NWM: Netzwerkmo<strong>de</strong>ll, RM: Relationenmo<strong>de</strong>ll,<br />
NF 2 : <strong>Mo<strong>de</strong>ll</strong> <strong>de</strong>r geschachtelten (Non-First-Normal-Form = NF 2 ) Relationen,<br />
eNF 2 : erweitertes NF 2 -<strong>Mo<strong>de</strong>ll</strong>, ER: <strong>Entity</strong>-<strong>Relationship</strong>-<strong>Mo<strong>de</strong>ll</strong>, SDM:<br />
semantische Datenmo<strong>de</strong>lle, OODM / C++: objektorientierte Datenmo<strong>de</strong>lle auf<br />
Basis objektorientierter Programmiersprachen wie C++, OEM: objektorientierte<br />
Entwurfsmo<strong>de</strong>lle (etwa UML), ORDM: objektrelationale Datenmo<strong>de</strong>lle.<br />
Die genannten <strong>Mo<strong>de</strong>ll</strong>e lassen sich wie folgt kurz charakterisieren:<br />
3.1 Datenbankmo<strong>de</strong>lle 53<br />
© <strong>de</strong>s Titels »Datenbanken – Konzepte und Sprachen« (ISBN 978-3-8266-9519-3) 2013<br />
by Verlagsgruppe Hüthig Jehle Rehm GmbH, Hei<strong>de</strong>lberg.<br />
Nähere Informationen unter: http://www.mitp.<strong>de</strong>/9519
ab Mitte<br />
1960<br />
implementierungsnah<br />
HM<br />
abstrakt<br />
1970<br />
NWM<br />
SQL<br />
RM<br />
ER<br />
1980<br />
1990<br />
OODM<br />
(C++)<br />
ODMG<br />
ORDM<br />
NF 2<br />
eNF 2<br />
OEM<br />
UML<br />
SDM<br />
2000<br />
SQL:1999<br />
2005<br />
SQL:2003<br />
Abbildung 3.1: Historische Einordnung und Bezüge zwischen einigen <strong>de</strong>r vorgestellten<br />
Datenbankmo<strong>de</strong>lle<br />
• Hierarchisches <strong>Mo<strong>de</strong>ll</strong> (HM)<br />
Die Datenbestän<strong>de</strong> wer<strong>de</strong>n angelehnt an hierarchisch strukturierte Dateiformate<br />
beschrieben. Beginnend in <strong>de</strong>n 70er Jahren ist das hierarchische<br />
<strong>Mo<strong>de</strong>ll</strong> (neben <strong>de</strong>m Netzwerkmo<strong>de</strong>ll) das erfolgreichste <strong>de</strong>r Datenbankmo<strong>de</strong>lle<br />
<strong>de</strong>r ersten Generation.<br />
• Netzwerkmo<strong>de</strong>ll (NWM)<br />
Der Datenbestand besteht aus verketteten Datensätzen (Records), die ein<br />
Netzwerk bil<strong>de</strong>n. Zur Verkettung wer<strong>de</strong>n zweistellige funktionale Beziehungen<br />
genutzt. Der Zugriff auf die einzelnen Datensätze geschieht mittels<br />
Navigation. Alle Programme wer<strong>de</strong>n in einer Programmiersprache (<strong>de</strong>r sogenannten<br />
Wirtssprache) geschrieben, die um spezielle Kommandos wie<br />
find (Suchen und Positionieren), get (Datentransfer zum Anwendungsprogramm)<br />
und store (Datentransfer zur Datenbank) erweitert wird.<br />
• Relationenmo<strong>de</strong>ll (RM)<br />
Im Relationenmo<strong>de</strong>ll wer<strong>de</strong>n die Daten als flache (ungeschachtelte) Tabellen<br />
dargestellt. Tabellen sind Mengen von Tupeln. Beziehungen wer<strong>de</strong>n<br />
ausschließlich über Wertegleichheit ausgedrückt.<br />
54 3 <strong>Das</strong> <strong>Entity</strong>-<strong>Relationship</strong>-<strong>Mo<strong>de</strong>ll</strong><br />
© <strong>de</strong>s Titels »Datenbanken – Konzepte und Sprachen« (ISBN 978-3-8266-9519-3) 2013<br />
by Verlagsgruppe Hüthig Jehle Rehm GmbH, Hei<strong>de</strong>lberg.<br />
Nähere Informationen unter: http://www.mitp.<strong>de</strong>/9519
• SQL-Datenmo<strong>de</strong>ll (SQL)<br />
<strong>Das</strong> SQL-Datenmo<strong>de</strong>ll erweitert das theoretische Relationenmo<strong>de</strong>ll um einige<br />
weitere Aspekte: Tabellen als Multimengen und als Mengen wer<strong>de</strong>n<br />
unterschie<strong>de</strong>n; eine Reihe von unterschiedlichen Wertebereichen (unter<br />
an<strong>de</strong>rem lange Fel<strong>de</strong>r, Strings, Datumswerte) und Nullwerte wer<strong>de</strong>n eingeführt;<br />
Gruppierung und Sortierung (im flachen Relationenmo<strong>de</strong>ll nicht<br />
ausdrückbare Operationen) wer<strong>de</strong>n in <strong>de</strong>r Anfragesprache unterstützt.<br />
• <strong>Mo<strong>de</strong>ll</strong> <strong>de</strong>r geschachtelten (Non-First-Normal-Form) Relationen (NF 2 )<br />
<strong>Das</strong> NF 2 -<strong>Mo<strong>de</strong>ll</strong> stellt eine Erweiterung <strong>de</strong>s Relationenmo<strong>de</strong>lls um hierarchische<br />
Schachtelung dar: Attribute dürfen in diesem <strong>Mo<strong>de</strong>ll</strong> Relationen<br />
als Werte haben.<br />
• Erweitertes NF 2 -<strong>Mo<strong>de</strong>ll</strong> (eNF 2 )<br />
Die Erweiterung <strong>de</strong>r geschachtelten Relationen <strong>de</strong>s NF 2 -<strong>Mo<strong>de</strong>ll</strong>s um die<br />
Kollektionstypen Liste und Multimenge sowie die orthogonale Schachtelung<br />
aller Typkonstruktoren führt zum eNF 2 -<strong>Mo<strong>de</strong>ll</strong>.<br />
• <strong>Entity</strong>-<strong>Relationship</strong>-<strong>Mo<strong>de</strong>ll</strong> (ERM)<br />
<strong>Das</strong> ER-<strong>Mo<strong>de</strong>ll</strong> ist ein abstraktes <strong>Mo<strong>de</strong>ll</strong>, in <strong>de</strong>m Datenbestän<strong>de</strong> durch abstrakte<br />
Datensätze (Entities), beliebige Beziehungen (<strong>Relationship</strong>s) und<br />
Attribute mo<strong>de</strong>lliert wer<strong>de</strong>n.<br />
Dieses <strong>Mo<strong>de</strong>ll</strong> wird hauptsächlich für <strong>de</strong>n Entwurf von Datenbanken eingesetzt.<br />
• Semantische Datenmo<strong>de</strong>lle (SDM)<br />
Semantische Datenmo<strong>de</strong>lle erweitern das ER-<strong>Mo<strong>de</strong>ll</strong> um weitere Abstraktionskonzepte<br />
(Spezialisierung, Generalisierung, komplexe Objekte) bzw.<br />
stellen Neuentwicklungen basierend auf diesen Konzepten dar. Hier wer<strong>de</strong>n<br />
auch erweiterte ER-<strong>Mo<strong>de</strong>ll</strong>e eingeordnet.<br />
Auch diese <strong>Mo<strong>de</strong>ll</strong>e wer<strong>de</strong>n primär als Entwurfsdatenmo<strong>de</strong>lle eingesetzt.<br />
• Objektorientierte Datenmo<strong>de</strong>lle auf Basis objektorientierter Programmiersprachen<br />
wie C++ (OODM)<br />
<strong>Das</strong> Typsystem <strong>de</strong>r Programmiersprache wird direkt als Datenbankmo<strong>de</strong>ll<br />
eingesetzt. Naturgemäß ist die Umsetzung in <strong>de</strong>r Datenbank sehr implementierungsnah;<br />
es existiert keine physische Datenunabhängigkeit.<br />
• Objektorientierte Entwurfsmo<strong>de</strong>lle (OEM)<br />
Objektorientierte <strong>Mo<strong>de</strong>ll</strong>ierungskonzepte (Kapselung, Metho<strong>de</strong>n, Spezialisierung,<br />
Referenzen) wer<strong>de</strong>n mit <strong>de</strong>n Konzepten von ER-<strong>Mo<strong>de</strong>ll</strong>en vereinigt<br />
(<strong>Entity</strong> = Objekt). Im Gegensatz zu <strong>de</strong>n programmiersprachenbasierten<br />
OODM-Ansätzen wird <strong>de</strong>r extensionale Aspekt von Klassen (Klasse als<br />
Kollektion von Objekten) betont.<br />
3.1 Datenbankmo<strong>de</strong>lle 55<br />
© <strong>de</strong>s Titels »Datenbanken – Konzepte und Sprachen« (ISBN 978-3-8266-9519-3) 2013<br />
by Verlagsgruppe Hüthig Jehle Rehm GmbH, Hei<strong>de</strong>lberg.<br />
Nähere Informationen unter: http://www.mitp.<strong>de</strong>/9519
• ODMG-Standard<br />
<strong>Das</strong> Datenbankmo<strong>de</strong>ll <strong>de</strong>s ODMG-Standards ist eine Weiterentwicklung<br />
<strong>de</strong>r programmiersprachenbasierten OODM-Ansätze durch Aufnahme datenbankspezifischer<br />
<strong>Mo<strong>de</strong>ll</strong>ierungskonzepte. Beson<strong>de</strong>rs bei <strong>de</strong>r Anfragesprache<br />
wur<strong>de</strong>n auch Konzepte von SQL übernommen.<br />
• Objektrelationale Datenmo<strong>de</strong>lle (ORDM) und SQL-Standard SQL:2003<br />
Objektrelationale Datenbanken stellen eine evolutionäre Erweiterung von<br />
relationalen Datenbanken um Konzepte <strong>de</strong>r Objektorientierung dar. Mit<br />
<strong>de</strong>n Standards SQL:1999 und SQL:2003 wur<strong>de</strong>n Erweiterungen <strong>de</strong>s relationalen<br />
<strong>Mo<strong>de</strong>ll</strong>s um objektorientierte Konzepte wie abstrakte Datentypen,<br />
Spezialisierungshierarchien für Tabellen sowie Objekti<strong>de</strong>ntifikatoren eingeführt.<br />
3.2 Semantikfestlegung für Datenbankmo<strong>de</strong>lle<br />
Wie legt man die Semantik eines Datenbankmo<strong>de</strong>lls fest? Als Datenbankmo<strong>de</strong>ll<br />
bezeichnen wir eine abstrakte Sprache zur Beschreibung von Datenbankschemata,<br />
und ein <strong>de</strong>rart beschriebenes Datenbankschema beschreibt mögliche<br />
Datenbanken als Instanzen sowie die Möglichkeiten, diese Datenbanken zu än<strong>de</strong>rn.<br />
In letzter Konsequenz legt ein Datenbankmo<strong>de</strong>ll somit die Semantik von<br />
Datenbankschemata fest, die wie<strong>de</strong>rum Abfolgen von Datenbanken charakterisieren,<br />
wie sie von einem Datenbankmanagementsystem verwaltet wer<strong>de</strong>n.<br />
Ein Datenbanksystem kann als lange Zeit laufen<strong>de</strong>r Prozess aufgefasst<br />
wer<strong>de</strong>n, <strong>de</strong>ssen jeweils aktueller Zustand <strong>de</strong>n Inhalt <strong>de</strong>r Datenbank festlegt.<br />
Eine formale Semantikfestlegung kann einen <strong>de</strong>rartigen Systemlauf als lineare<br />
Folge von Zustän<strong>de</strong>n mo<strong>de</strong>llieren, wobei je<strong>de</strong>r Zustand einer Datenbank entspricht,<br />
und die Übergänge die Än<strong>de</strong>rungen <strong>de</strong>r Datenbank mo<strong>de</strong>llieren, etwa<br />
das Einfügen eines Datenelements.<br />
Eine <strong>de</strong>rartige Semantikfestlegung ist uns von imperativen Programmiersprachen<br />
bekannt: Dort wer<strong>de</strong>n die Zustän<strong>de</strong> zum Teil durch die aktuellen Belegungen<br />
<strong>de</strong>r Variablen festgelegt, und ein Zustandsübergang kann diese Belegung<br />
durch <strong>de</strong>n Zuweisungsoperator än<strong>de</strong>rn. Die Semantikfestlegung für Datenbanksysteme<br />
kann somit als Erweiterung <strong>de</strong>rartiger Programmiersprachensemantiken<br />
aufgefasst wer<strong>de</strong>n: Datenbankzustän<strong>de</strong> wer<strong>de</strong>n durch Variablen zu<br />
einem strukturierten Datentyp (in <strong>de</strong>r Regel basierend auf <strong>de</strong>m Mengenkonstruktor)<br />
mo<strong>de</strong>lliert, und <strong>de</strong>r Zuweisungsoperator wird durch elementare Operationen<br />
(etwa Einfügen o<strong>de</strong>r Löschen von Elementen) auf diesen Variablen<br />
ersetzt.<br />
Abbildung 3.2 zeigt eine Zustandsfolge für einen Ausschnitt unserer Weindatenbank.<br />
Es wer<strong>de</strong>n die ersten drei Zustän<strong>de</strong> σ 0 bis σ 2 gezeigt. Beim ersten<br />
56 3 <strong>Das</strong> <strong>Entity</strong>-<strong>Relationship</strong>-<strong>Mo<strong>de</strong>ll</strong><br />
© <strong>de</strong>s Titels »Datenbanken – Konzepte und Sprachen« (ISBN 978-3-8266-9519-3) 2013<br />
by Verlagsgruppe Hüthig Jehle Rehm GmbH, Hei<strong>de</strong>lberg.<br />
Nähere Informationen unter: http://www.mitp.<strong>de</strong>/9519
(Zinfan<strong>de</strong>l, Rot,2004, Helena)<br />
(Pinot Noir, Rot, 2001, Creek)<br />
(Zinfan<strong>de</strong>l, Rot,2004, Helena)<br />
(Pinot Noir, Rot, 2001, Creek)<br />
(Creek Shiraz, Rot, 2003, Creek)<br />
σ 0<br />
σ 1<br />
σ 2<br />
(Zinfan<strong>de</strong>l, Rot,2004, Helena)<br />
(Pinot Noir, Rot, 2001, Creek)<br />
Abbildung 3.2: Beispiel für eine Datenbankzustandsfolge<br />
Zustandsübergang bleibt <strong>de</strong>r Inhalt <strong>de</strong>r Datenbank unverän<strong>de</strong>rt, beim Übergang<br />
von σ 1 auf σ 2 wird ein neuer Wein hinzugefügt.<br />
Die konkreten Semantikfestlegungen für Datenbankmo<strong>de</strong>lle sind natürlich<br />
etwas ausgefeilter als diese direkte <strong>Mo<strong>de</strong>ll</strong>ierung. Wir wer<strong>de</strong>n das Prinzip an<br />
einem einfachen Beispiel kurz erläutern und danach jeweils bei <strong>de</strong>n konkreten<br />
Datenbankmo<strong>de</strong>llen ausgereiftere Semantikfestlegungen angeben. Statt Folgen<br />
von Datenbankzustän<strong>de</strong>n wird bei <strong>de</strong>r Semantikfestlegung vereinfachend<br />
jeweils die Menge <strong>de</strong>r möglichen Datenbankzustän<strong>de</strong> festgelegt.<br />
Als Beispiel behan<strong>de</strong>ln wir ein einfaches Datenmo<strong>de</strong>ll, das als Datenbankobjekte<br />
Mengen von Tupeln betrachtet. Dieses <strong>Mo<strong>de</strong>ll</strong> ist eine vereinfachte Version<br />
<strong>de</strong>s relationalen Datenbankmo<strong>de</strong>lls, das später in diesem Buch intensiv<br />
behan<strong>de</strong>lt wer<strong>de</strong>n wird. In unserem Beispiel – wie in Abbildung 3.2 – sollen Daten<br />
über Weine gespeichert wer<strong>de</strong>n. Dazu wollen wir in <strong>de</strong>r Datenbank unter<br />
<strong>de</strong>m Begriff Wein jeweils Einträge <strong>de</strong>r Form (Name, Farbe, Jahrgang, Weingut)<br />
speichern.<br />
Als Basisdatentypen verwen<strong>de</strong>n wir die ganzen Zahlen integer sowie Zeichenketten<br />
string. Die Konstruktoren tuple und set erlauben die Konstruktion<br />
komplexerer Datenstrukturen und stellen die Basisoperationen für diese Datenstrukturen<br />
bereit, etwa insert und <strong>de</strong>lete für Mengen. Die Notation set(z)<br />
be<strong>de</strong>utet, dass <strong>de</strong>r Konstruktor set auf <strong>de</strong>n Datentyp z angewen<strong>de</strong>t wird.<br />
Für je<strong>de</strong>n Datentyp legen wir nun eine Trägermenge als Be<strong>de</strong>utung <strong>de</strong>s<br />
Datentyps fest (und Funktionen auf diesen Trägermengen als Be<strong>de</strong>utung <strong>de</strong>r<br />
Operationen). Wir bezeichnen diese Trägermengen als mögliche Werte und notieren<br />
diese Zuordnung mit <strong>de</strong>m griechischen Buchstaben µ (gesprochen mü).<br />
• µ(integer) = Z<br />
(die ganzen Zahlen Z)<br />
3.2 Semantikfestlegung für Datenbankmo<strong>de</strong>lle 57<br />
© <strong>de</strong>s Titels »Datenbanken – Konzepte und Sprachen« (ISBN 978-3-8266-9519-3) 2013<br />
by Verlagsgruppe Hüthig Jehle Rehm GmbH, Hei<strong>de</strong>lberg.<br />
Nähere Informationen unter: http://www.mitp.<strong>de</strong>/9519
• µ(string) = C ∗<br />
(Folgen von Zeichen aus C = {a,b,...,z,A,B,...,Z,...})<br />
• µ(set(z)) = 2 µ(z)<br />
(die Potenzmenge über <strong>de</strong>n Werten <strong>de</strong>s Parameterdatentyps z, o<strong>de</strong>r an<strong>de</strong>rs<br />
ausgedrückt, die Menge aller Teilmengen von möglichen Werten in µ(z)) 1<br />
• µ(tuple(z 1 ,...,z n )) = µ(z 1 ) × ··· × µ(z n )<br />
(das kartesische Produkt <strong>de</strong>r Parameterwertebereiche)<br />
Die Semantik eines Datenbankschemas ist zustandsbasiert: Eine Zustandsfunktion<br />
ˆσ (ausgesprochen Sigma Dach) ordnet je<strong>de</strong>r „Datenbankvariablen“ in<br />
je<strong>de</strong>m Zustand einen Wert zu. Allgemein entspricht eine Datenbankentwicklung<br />
einer Folge<br />
ˆσ = 〈σ 0 ,σ 1 ,...,σ i ,...〉<br />
<strong>Das</strong> Dach über <strong>de</strong>m Sigma soll die aufgespannte Folge von einzelnen Zustän<strong>de</strong>n<br />
σ i an<strong>de</strong>uten. Im Datenbankbereich gehen wir in <strong>de</strong>r Regel von unendlichen<br />
Folgen aus – die Datenbestän<strong>de</strong> sind beliebig lange persistent. Als Menge <strong>de</strong>r<br />
Datenbankzustän<strong>de</strong> nehmen wir Punkte einer Zeitachse T (in <strong>de</strong>r Regel die<br />
natürlichen Zahlen), so dass wir für eine Datenbankvariable db Folgen<strong>de</strong>s erhalten:<br />
ˆσ(db): T → µ(typ(db))<br />
wobei typ(db) <strong>de</strong>n Datentyp <strong>de</strong>r Datenbankvariablen bezeichnet. In unserem<br />
konkreten Beispiel <strong>de</strong>r Weindatenbank haben wir die Funktion<br />
ˆσ(WEINE): T → 2 C∗ ×C ∗ ×ZZ×C ∗<br />
als Semantik unseres einfachen Datenbankschemas. Ein konkreter Zustandswert,<br />
etwa zum Zeitpunkt 42, könnte dann wie folgt lauten:<br />
ˆσ(WEINE)(42) = {(’Zinfan<strong>de</strong>l’,’Rot’,2004,’Helena’),<br />
(’Pinot Noir’,’Rot’,2001,’Creek’)}<br />
Dieses Beispiel sollte die prinzipielle Vorgehensweise an<strong>de</strong>uten, mit <strong>de</strong>r man<br />
die Semantik von Datenbankschemata festlegen kann. Wir folgen <strong>de</strong>n prinzipiellen<br />
Konventionen (µ für mögliche Werte, σ für Zustän<strong>de</strong>) in <strong>de</strong>n weiteren<br />
1 Genau genommen nur die endlichen Teilmengen <strong>de</strong>r Potenzmenge 2 µ(z) : Wir haben an dieser<br />
Stelle eine vereinfachte Darstellung gewählt, um <strong>de</strong>n verwen<strong>de</strong>ten mathematischen Apparat<br />
nicht unnötig aufzublähen.<br />
58 3 <strong>Das</strong> <strong>Entity</strong>-<strong>Relationship</strong>-<strong>Mo<strong>de</strong>ll</strong><br />
© <strong>de</strong>s Titels »Datenbanken – Konzepte und Sprachen« (ISBN 978-3-8266-9519-3) 2013<br />
by Verlagsgruppe Hüthig Jehle Rehm GmbH, Hei<strong>de</strong>lberg.<br />
Nähere Informationen unter: http://www.mitp.<strong>de</strong>/9519
Kapiteln, wer<strong>de</strong>n aber die Notationen jeweils an die Konventionen <strong>de</strong>r betrachteten<br />
Datenmo<strong>de</strong>lle anpassen. Des weiteren betrachten wir in <strong>de</strong>r Regel einen<br />
festen Datenbankzustand ˆσ(i), ohne dass <strong>de</strong>m i eine beson<strong>de</strong>re Be<strong>de</strong>utung zuzuordnen<br />
sei, und notieren diesen Zustand abkürzend als σ.<br />
3.3 Grundlagen <strong>de</strong>s <strong>Entity</strong>-<strong>Relationship</strong>-<strong>Mo<strong>de</strong>ll</strong>s<br />
Der Begriff <strong>de</strong>s <strong>Entity</strong>-<strong>Relationship</strong>-<strong>Mo<strong>de</strong>ll</strong>s (kurz ER-<strong>Mo<strong>de</strong>ll</strong>) geht zurück auf<br />
einen grundlegen<strong>de</strong>n Artikel von P. P. Chen im Jahre 1976 [Che76]. Seit dieser<br />
Zeit hat sich dieses Datenmo<strong>de</strong>ll fest im Bereich <strong>de</strong>r Datenbankmo<strong>de</strong>lle<br />
etabliert und wird – in abgewan<strong>de</strong>lten Formen – heutzutage faktisch als Standardmo<strong>de</strong>ll<br />
für frühe Entwurfsphasen <strong>de</strong>r Datenbankentwicklung eingesetzt.<br />
Zum ER-<strong>Mo<strong>de</strong>ll</strong> gehört eine graphische Notation, mit <strong>de</strong>r<br />
(Datenbank-)Schemata mo<strong>de</strong>lliert wer<strong>de</strong>n können, die – wie im vorigen Abschnitt<br />
erläutert – die Struktur <strong>de</strong>r Datenbank auf einer noch abstrakten,<br />
implementierungsunabhängigen Ebene beschreiben. Ein solches ER-Schema<br />
o<strong>de</strong>r auch ER-Diagramm (ERD) ist aufgrund <strong>de</strong>r wenigen benötigten Konzepte<br />
und <strong>de</strong>r einfachen Notation auch für Nicht-Datenbankspezialisten (d.h. die<br />
Anwen<strong>de</strong>r o<strong>de</strong>r Auftraggeber – die Domänenexperten) verständlich und daher<br />
sehr gut für die frühen Entwurfsphasen und die Kommunikation mit diesen<br />
Nutzern geeignet.<br />
3.3.1 Grundkonzepte <strong>de</strong>s klassischen ER-<strong>Mo<strong>de</strong>ll</strong>s<br />
<strong>Das</strong> <strong>Entity</strong>-<strong>Relationship</strong>-<strong>Mo<strong>de</strong>ll</strong> basiert auf <strong>de</strong>n drei Grundkonzepten <strong>Entity</strong> als<br />
zu mo<strong>de</strong>llieren<strong>de</strong> Informationseinheit, <strong>Relationship</strong> zur <strong>Mo<strong>de</strong>ll</strong>ierung von Beziehungen<br />
zwischen <strong>Entity</strong>s und Attribut als Eigenschaft von einem <strong>Entity</strong> o<strong>de</strong>r<br />
einer Beziehung. Neben <strong>de</strong>m englischen Lehnwort <strong>Entity</strong> sind in <strong>de</strong>utschsprachigen<br />
Dokumenten die Begriffe Objekt, Ding o<strong>de</strong>r gar Entität vorgeschlagen.<br />
Wir verzichten auf diese Ein<strong>de</strong>utschungen, da die Begriffe zum Teil in <strong>de</strong>r allgemeinen<br />
Informatik an<strong>de</strong>rs belegt sind (etwa Objekt), zum an<strong>de</strong>ren Teil in <strong>de</strong>r<br />
Umgangssprache (Ding) o<strong>de</strong>r <strong>de</strong>m Fremdwörtergebrauch (Entität) 2 an<strong>de</strong>rs verwen<strong>de</strong>t<br />
wer<strong>de</strong>n. Neben <strong>de</strong>m Begriff <strong>Relationship</strong> sind die Begriffe Beziehung<br />
und Relation mit verbreitet.<br />
2 Gebräuchliche Be<strong>de</strong>utungen <strong>de</strong>s Begriffs Entität sind etwa die folgen<strong>de</strong>n:<br />
• Brockhaus Enzyklopädie, Band 6: Entität [mlat.] die, -/-en, Philosophie: die bestimmte Seinsverfassung<br />
(Wesen) <strong>de</strong>s einzelnen Seien<strong>de</strong>n, auch dieses selbst.<br />
• Du<strong>de</strong>n Fremdwörterbuch: Entität [lat.-mlat.] die, -, -en: 1. <strong>Das</strong>ein im Unterschied zum Wesen<br />
eines Dinges (Philos.). 2. [gegebene] Größe<br />
Trotz dieses sehr spezifischen Fremdwortgebrauchs wird Entität wie<strong>de</strong>rholt als <strong>de</strong>utsches Gegenstück<br />
zu <strong>Entity</strong> vorgeschlagen.<br />
3.3 Grundlagen <strong>de</strong>s <strong>Entity</strong>-<strong>Relationship</strong>-<strong>Mo<strong>de</strong>ll</strong>s 59<br />
© <strong>de</strong>s Titels »Datenbanken – Konzepte und Sprachen« (ISBN 978-3-8266-9519-3) 2013<br />
by Verlagsgruppe Hüthig Jehle Rehm GmbH, Hei<strong>de</strong>lberg.<br />
Nähere Informationen unter: http://www.mitp.<strong>de</strong>/9519
Die drei Basisbegriffe <strong>Entity</strong>, <strong>Relationship</strong> und Attribut können wie folgt<br />
charakterisiert wer<strong>de</strong>n:<br />
<strong>Entity</strong> ist ein Objekt <strong>de</strong>r realen o<strong>de</strong>r <strong>de</strong>r Vorstellungswelt, über das Informationen<br />
zu speichern sind, z.B. ein Wein, ein Weingut, ein Produkt, ein<br />
Kun<strong>de</strong> o<strong>de</strong>r auch ein Stu<strong>de</strong>nt o<strong>de</strong>r Professor. Auch Informationen über Ereignisse<br />
wie Bestellungen o<strong>de</strong>r Prüfungen können Objekte im Sinne <strong>de</strong>s<br />
ER-<strong>Mo<strong>de</strong>ll</strong>s sein.<br />
<strong>Relationship</strong> repräsentiert eine Beziehung zwischen <strong>Entity</strong>s, z.B. ein Weingut<br />
produziert einen Wein, ein Kun<strong>de</strong> bestellt ein Produkt o<strong>de</strong>r ein Dozent<br />
hält eine Vorlesung.<br />
Attribut entspricht einer Eigenschaft von <strong>Entity</strong>s o<strong>de</strong>r Beziehungen, z.B. Farbe<br />
und Jahrgang eines Weines, <strong>de</strong>r Name eines Weingutes, die ISBN eines<br />
Buchs, <strong>de</strong>r Titel einer Vorlesung.<br />
<strong>Entity</strong>s sind in einer Datenbank allerdings nicht direkt darstellbar, son<strong>de</strong>rn<br />
nur über ihre Eigenschaften beobachtbar. Dies be<strong>de</strong>utet einfach nur, dass etwa<br />
ein Wein nicht selbst in <strong>de</strong>r Datenbank gespeichert wer<strong>de</strong>n kann – nur Informationen<br />
über seine Eigenschaften (Name, Farbe, Jahrgang usw.) lassen sich<br />
erfassen.<br />
Daher benötigen wir Werte als direkt darstellbare, primitive Datenelemente.<br />
Wertemengen sind beschrieben durch Datentypen, die neben einer Wertemenge<br />
auch die Grundoperationen auf diesen Werten charakterisieren.<br />
Im ER-<strong>Mo<strong>de</strong>ll</strong> gehen wir von einer Reihe vorgegebener Standarddatentypen<br />
aus, etwa die ganzen Zahlen integer, die Zeichenketten string, Datumswerte<br />
date etc. Je<strong>de</strong>r Datentyp stellt einen Wertebereich µ(D) mit Operationen<br />
und Prädikaten dar, zum Beispiel:<br />
µ(int): <strong>de</strong>n Wertebereich Z (die ganzen Zahlen) mit +,−,·,÷,=, < ...<br />
µ(string): <strong>de</strong>n Wertebereich C ∗ (Folgen von Zeichen aus <strong>de</strong>r Menge C) mit +,=<br />
,< ...<br />
Der Wertebereich wird auch Interpretation (Be<strong>de</strong>utung) genannt und beschreibt<br />
die möglichen Werte, die eine <strong>Entity</strong>-Eigenschaft annehmen kann.<br />
<strong>Entity</strong>-Typen<br />
<strong>Entity</strong>s sind die in einer Datenbank zu repräsentieren<strong>de</strong>n Informationseinheiten.<br />
Sie wer<strong>de</strong>n nicht einzeln in ihren Ausprägungen (ein konkreter Wein Zinfan<strong>de</strong>l,<br />
rot, 2004 im Barossa Valley produziert) mo<strong>de</strong>lliert, son<strong>de</strong>rn Objekte mit<br />
gleichen Eigenschaften wer<strong>de</strong>n zu <strong>Entity</strong>-Typen zusammengefasst, beispielsweise<br />
Wein o<strong>de</strong>r Rotwein, allgemein also etwa E 1 ,E 2 ....<br />
60 3 <strong>Das</strong> <strong>Entity</strong>-<strong>Relationship</strong>-<strong>Mo<strong>de</strong>ll</strong><br />
© <strong>de</strong>s Titels »Datenbanken – Konzepte und Sprachen« (ISBN 978-3-8266-9519-3) 2013<br />
by Verlagsgruppe Hüthig Jehle Rehm GmbH, Hei<strong>de</strong>lberg.<br />
Nähere Informationen unter: http://www.mitp.<strong>de</strong>/9519
In <strong>de</strong>r graphischen Notation wer<strong>de</strong>n <strong>Entity</strong>-Typen als Rechtecke dargestellt,<br />
wobei <strong>de</strong>r Name <strong>de</strong>s Typs in das Rechteck eingetragen wird (siehe Abbildung<br />
3.3).<br />
Wein<br />
Abbildung 3.3: Graphische Darstellung eines <strong>Entity</strong>-Typs<br />
Die Semantik eines <strong>Entity</strong>-Typs wird, wie in Abschnitt 3.2 dargestellt,<br />
durch die Deklaration <strong>de</strong>r möglichen Exemplare und durch Zustän<strong>de</strong> festgelegt,<br />
die jeweils eine aktuell existieren<strong>de</strong> Menge von Exemplaren beschreiben. Die<br />
Semantik eines <strong>Entity</strong>-Typs E wird somit durch zwei Definitionen bestimmt:<br />
µ(E) Die Menge <strong>de</strong>r möglichen <strong>Entity</strong>s vom Typ E. Die Werte <strong>de</strong>r Menge µ(E)<br />
wer<strong>de</strong>n hier nicht festgelegt; wir gehen von einer hinreichen<strong>de</strong>n Anzahl<br />
möglicher Werte aus, etwa einer Menge isomorph zu <strong>de</strong>n natürlichen Zahlen.<br />
σ(E) Die Menge <strong>de</strong>r aktuellen <strong>Entity</strong>s vom Typ E in einem Zustand σ, d.h., die<br />
aktuelle Ausprägung <strong>de</strong>s <strong>Entity</strong>-Typs (σ, <strong>de</strong>r griechische Buchstabe Sigma,<br />
steht für englisch state (Zustand)).<br />
Aktuelle <strong>Entity</strong>s müssen mögliche Elemente sein, also gilt σ(E) ⊆ µ(E). Ferner<br />
for<strong>de</strong>rn wir, dass in je<strong>de</strong>m Zustand nur eine endliche Menge aktueller<br />
<strong>Entity</strong>s existiert, also σ(E) endlich ist.<br />
Beziehungstypen<br />
Auch Beziehungen zwischen <strong>Entity</strong>s wer<strong>de</strong>n in einem ER-Schema nicht für je<strong>de</strong><br />
Ausprägung mo<strong>de</strong>lliert, son<strong>de</strong>rn zu Beziehungstypen zusammengefasst. Es<br />
wird also nur <strong>de</strong>r Sachverhalt beschrieben, dass ein Wein von einem Erzeuger<br />
produziert wird und nicht, dass <strong>de</strong>r 2004er Zinfan<strong>de</strong>l von <strong>de</strong>r Creek Winery<br />
hergestellt wur<strong>de</strong>. Ein Beziehungstyp muss min<strong>de</strong>stens zwei <strong>Entity</strong>-Typen<br />
miteinan<strong>de</strong>r verbin<strong>de</strong>n, allgemein kann jedoch eine beliebige Anzahl n ≥ 2 von<br />
<strong>Entity</strong>-Typen an einem Beziehungstyp teilhaben. Im ersten Fall spricht man<br />
auch von binären Beziehungstypen, im allgemeinen Fall entsprechend von n-<br />
stelligen Beziehungstypen.<br />
Zu je<strong>de</strong>m n-stelligen Beziehungstyp R gehören n <strong>Entity</strong>-Typen E 1 ,...,E n .<br />
Auch hier wird die Semantik über die möglichen bzw. aktuellen Ausprägungen<br />
festgelegt. Für je<strong>de</strong>n Beziehungstyp R wer<strong>de</strong>n die möglichen Ausprägungen als<br />
die Elemente <strong>de</strong>s kartesischen Produkts über <strong>de</strong>n möglichen <strong>Entity</strong>s festgelegt:<br />
3.3 Grundlagen <strong>de</strong>s <strong>Entity</strong>-<strong>Relationship</strong>-<strong>Mo<strong>de</strong>ll</strong>s 61<br />
© <strong>de</strong>s Titels »Datenbanken – Konzepte und Sprachen« (ISBN 978-3-8266-9519-3) 2013<br />
by Verlagsgruppe Hüthig Jehle Rehm GmbH, Hei<strong>de</strong>lberg.<br />
Nähere Informationen unter: http://www.mitp.<strong>de</strong>/9519
µ(R) = µ(E 1 ) × ··· × µ(E n )<br />
Die Menge <strong>de</strong>r aktuellen Beziehungen σ(R) in einem Zustand ist wie<strong>de</strong>r<br />
eine Teilmenge <strong>de</strong>r möglichen Beziehungen µ(R). Wir verschärfen diese Bedingung<br />
dahingehend, dass aktuelle Beziehungen nur zwischen aktuellen <strong>Entity</strong>s<br />
bestehen, also:<br />
σ(R) ⊆ σ(E 1 ) × ··· × σ(E n )<br />
Beziehungstypen wer<strong>de</strong>n graphisch als Raute dargestellt, in die <strong>de</strong>r Name<br />
<strong>de</strong>s Typs eingetragen wird. Die Verbindungen zu <strong>de</strong>n beteiligten <strong>Entity</strong>-Typen<br />
erfolgt über Linien typischerweise von <strong>de</strong>n Ecken <strong>de</strong>r Raute. Bei <strong>de</strong>r Wahl <strong>de</strong>s<br />
Typnamens ist es oft sinnvoll, die Leserichtung (von links nach rechts, von oben<br />
nach unten) zu berücksichtigen, allerdings sind Beziehungen grundsätzlich bidirektional.<br />
In Abbildung 3.4 ist die Notation von Beziehungstypen an zwei Beispielen<br />
dargestellt. Der binäre Beziehungstyp in Abbildung 3.4 a) ordnet einem Wein<br />
<strong>de</strong>n Erzeuger zu (Erzeuger produziert Wein), <strong>de</strong>r dreistellige (ternäre) Beziehungstyp<br />
in Abbildung 3.4 b) drückt aus, dass ein Kritiker einen Wein zu einem<br />
Gericht empfiehlt. Die Beispiele sollen auch noch einmal ver<strong>de</strong>utlichen,<br />
dass <strong>Entity</strong>-Typen nicht direkt, son<strong>de</strong>rn nur über Beziehungstypen miteinan<strong>de</strong>r<br />
verbun<strong>de</strong>n wer<strong>de</strong>n können.<br />
Erzeuger<br />
produziert<br />
Wein<br />
(a) Binärer Beziehungstyp<br />
Kritiker<br />
empfiehlt<br />
Wein<br />
Gericht<br />
(b) n-stelliger Beziehungstyp<br />
Abbildung 3.4: Graphische Darstellung von Beziehungstypen<br />
Neben <strong>de</strong>r gezeigten graphischen Notation ist auch eine Textnotation<br />
möglich, die für einen Beziehungstyp R die Form R(E 1 ,...,E n ) hat, z.B.<br />
62 3 <strong>Das</strong> <strong>Entity</strong>-<strong>Relationship</strong>-<strong>Mo<strong>de</strong>ll</strong><br />
© <strong>de</strong>s Titels »Datenbanken – Konzepte und Sprachen« (ISBN 978-3-8266-9519-3) 2013<br />
by Verlagsgruppe Hüthig Jehle Rehm GmbH, Hei<strong>de</strong>lberg.<br />
Nähere Informationen unter: http://www.mitp.<strong>de</strong>/9519
produziert(Erzeuger, Wein). Man beachte, dass in <strong>de</strong>r Textnotation eine Reihenfolge<br />
<strong>de</strong>r beteiligten <strong>Entity</strong>-Typen festgelegt wird – in <strong>de</strong>r graphischen Notation<br />
wird dieses offen gelassen.<br />
Ist ein <strong>Entity</strong>-Typ mehrfach an einem Beziehungstyp beteiligt (etwa in <strong>de</strong>r<br />
Beziehung grenzt_an(Anbaugebiet, Anbaugebiet)), können Rollennamen vergeben<br />
wer<strong>de</strong>n:<br />
grenzt_an(Gebiet1: Anbaugebiet, Gebiet2: Anbaugbiet)<br />
Während in <strong>de</strong>r Textnotation dieser Rollenname durch die Parameterposition<br />
ersetzt wer<strong>de</strong>n könnte (etwa steht im grenzt_an-Beziehungstyp das nördlichere<br />
o<strong>de</strong>r westlichere Gebiet vorn), ist in <strong>de</strong>r graphischen Notation in diesen<br />
Fällen die Vergabe von Rollennamen zwingend. Die Rollennamen wer<strong>de</strong>n an<br />
die Verbindungslinie zwischen Beziehungstyp-Symbol und <strong>Entity</strong>-Typ-Symbol<br />
geschrieben (Abbildung 3.5).<br />
Gebiet1<br />
Anbaugebiet<br />
grenzt an<br />
Gebiet2<br />
Abbildung 3.5: Beziehungstyp mit Rollennamen<br />
Attribute<br />
Attribute mo<strong>de</strong>llieren Eigenschaften von <strong>Entity</strong>s o<strong>de</strong>r auch Beziehungen. Alle<br />
<strong>Entity</strong>s eines <strong>Entity</strong>-Typs haben dieselben Arten von Eigenschaften. Attribute<br />
wer<strong>de</strong>n somit für <strong>Entity</strong>-Typen <strong>de</strong>klariert.<br />
In <strong>de</strong>r graphischen Notation wird ein Attribut als Oval dargestellt und über<br />
eine Linie <strong>de</strong>m <strong>Entity</strong>-Typ zugeordnet. In Abbildung 3.6 ist dies für <strong>de</strong>n <strong>Entity</strong>-<br />
Typ Wein mit <strong>de</strong>n Attributen Name, Farbe und Jahrgang dargestellt. Optional<br />
kann zum Attribut A noch <strong>de</strong>r Wertebereich D in <strong>de</strong>r Form A : D angegeben<br />
wer<strong>de</strong>n.<br />
Im klassischen ER-<strong>Mo<strong>de</strong>ll</strong> nehmen Attribute „druckbare“ Werte an, also<br />
Werte <strong>de</strong>r Standarddatentypen wie int o<strong>de</strong>r string. Die tatsächliche Menge <strong>de</strong>r<br />
angebotenen Datentypen schwankt je nach zugrun<strong>de</strong>liegen<strong>de</strong>r Literaturquelle<br />
und wird darum von uns offen gelassen.<br />
Die Semantik einer Attribut<strong>de</strong>klaration wird wie folgt festgelegt: Ein Attribut<br />
A eines <strong>Entity</strong>-Typs E stellt im Zustand σ eine Abbildung dar:<br />
3.3 Grundlagen <strong>de</strong>s <strong>Entity</strong>-<strong>Relationship</strong>-<strong>Mo<strong>de</strong>ll</strong>s 63<br />
© <strong>de</strong>s Titels »Datenbanken – Konzepte und Sprachen« (ISBN 978-3-8266-9519-3) 2013<br />
by Verlagsgruppe Hüthig Jehle Rehm GmbH, Hei<strong>de</strong>lberg.<br />
Nähere Informationen unter: http://www.mitp.<strong>de</strong>/9519
Name<br />
Farbe<br />
Wein<br />
Jahrgang<br />
Abbildung 3.6: Attributnotation für <strong>Entity</strong>-Typen<br />
σ(A) : σ(E) → µ(D)<br />
Eine Attribut<strong>de</strong>klaration entspricht somit in einem Zustand σ einer Funktion,<br />
die je<strong>de</strong>m aktuellen <strong>Entity</strong> aus σ(E) einen Wert <strong>de</strong>s Datentyps D zuordnet.<br />
Attribute von Beziehungen wer<strong>de</strong>n analog behan<strong>de</strong>lt. Attribut<strong>de</strong>klarationen<br />
wer<strong>de</strong>n beim Beziehungstyp vorgenommen; eine Attribut<strong>de</strong>klaration gilt<br />
auch hier für alle Ausprägungen eines Beziehungstyps. Derartige Attribute<br />
wer<strong>de</strong>n auch als Beziehungsattribute bezeichnet. Die Semantik von Beziehungsattributen<br />
wird analog zu <strong>Entity</strong>-Attributen festgelegt. Ein Attributtyp A<br />
eines Beziehungstyps R stellt im Zustand σ eine Abbildung dar:<br />
σ(A) : σ(R) → µ(D)<br />
Man beachte, dass die Attributfunktion nur für Beziehungsausprägungen <strong>de</strong>finiert<br />
sind, die im aktuellen Zustand enthalten sind.<br />
Die Notation wird im Beispiel in Abbildung 3.7 gezeigt – dieser Beziehungstyp<br />
gibt an, dass ein Wein zu einem bestimmten Anteil aus einer Rebsorte hergestellt<br />
ist. Beispielsweise sind Bor<strong>de</strong>aux-Weine meist sogenannte Cuvees –<br />
eine Kombination (Verschnitt) aus drei bis fünf verschie<strong>de</strong>nen Rebsorten. <strong>Das</strong><br />
Attribut Anteil gibt in unserem Beispiel an, zu wieviel Prozent eine bestimmte<br />
Rebsorte beteiligt ist. Offensichtlich kann dieses Attribut we<strong>de</strong>r <strong>de</strong>m <strong>Entity</strong>-<br />
Typ Wein noch <strong>de</strong>m <strong>Entity</strong>-Typ Rebsorte zugeordnet wer<strong>de</strong>n: im ersten Fall wäre<br />
<strong>de</strong>r Anteil für alle an <strong>de</strong>r Beziehung beteiligten Rebsorten gleich, im zweiten<br />
Fall wäre eine Rebsorte bei allen beteiligten Weinen zu gleichen Anteilen vertreten.<br />
In <strong>de</strong>r Textnotation wer<strong>de</strong>n <strong>Entity</strong>-Typen E mit Attributen A 1 ,...A m und<br />
<strong>de</strong>n jeweiligen Wertebereichen D 1 ,...,D m wie folgt notiert:<br />
E(A 1 : D 1 ,...,A m : D m )<br />
Oft wer<strong>de</strong>n die Wertebereiche (wie auch in <strong>de</strong>r graphischen Notation, vergleiche<br />
Abbildung 3.6) weggelassen, also:<br />
E(A 1 ,...,A m )<br />
64 3 <strong>Das</strong> <strong>Entity</strong>-<strong>Relationship</strong>-<strong>Mo<strong>de</strong>ll</strong><br />
© <strong>de</strong>s Titels »Datenbanken – Konzepte und Sprachen« (ISBN 978-3-8266-9519-3) 2013<br />
by Verlagsgruppe Hüthig Jehle Rehm GmbH, Hei<strong>de</strong>lberg.<br />
Nähere Informationen unter: http://www.mitp.<strong>de</strong>/9519
Anteil<br />
Wein<br />
hergestellt<br />
aus<br />
Rebsorte<br />
Abbildung 3.7: Attributnotation für Beziehungstypen<br />
Deklarationen von Beziehungstypen R mit Attributen wer<strong>de</strong>n entsprechend notiert,<br />
in<strong>de</strong>m sie an die Liste <strong>de</strong>r <strong>Entity</strong>-Typen angefügt wer<strong>de</strong>n (hier sind die<br />
Wertebereiche weggelassen):<br />
R(E 1 ,...,E n ;A 1 ,...,A p )<br />
Zur besseren Unterscheidbarkeit können die beteiligten <strong>Entity</strong>-Typen von <strong>de</strong>n<br />
Attributen wie hier durch ein Semikolon anstelle eines Kommas getrennt wer<strong>de</strong>n.<br />
I<strong>de</strong>ntifizierung durch Schlüssel<br />
In <strong>de</strong>r Regel haben wir bei einer Beschreibung im ER-<strong>Mo<strong>de</strong>ll</strong> <strong>de</strong>n Effekt, dass<br />
einige Attribute mit ihren Werten bereits eine ein<strong>de</strong>utige I<strong>de</strong>ntifizierung für<br />
<strong>Entity</strong>s eines <strong>Entity</strong>-Typs bil<strong>de</strong>n – so wird ein Wein etwa durch <strong>de</strong>n Namen,<br />
<strong>de</strong>n Jahrgang und das Weingut ein<strong>de</strong>utig i<strong>de</strong>ntifiziert, ein Buch durch die zugehörige<br />
ISBN und ein Stu<strong>de</strong>nt durch seine Matrikelnummer 3 . Wir bezeichnen<br />
eine <strong>de</strong>rartige I<strong>de</strong>ntifikation durch eine Attributmenge als Schlüssel 4 für <strong>de</strong>n<br />
betreffen<strong>de</strong>n <strong>Entity</strong>-Typ.<br />
Für einen <strong>Entity</strong>-Typ E(A 1 ,...,A m ) sei eine Teilmenge {S 1 ,...,S k } <strong>de</strong>r gesamten<br />
Attribute gegeben, die sogenannten Schlüsselattribute. Es gilt also:<br />
{S 1 ,...,S k } ⊆ {A 1 ,...,A m }<br />
In je<strong>de</strong>m Datenbankzustand i<strong>de</strong>ntifizieren die aktuellen Werte <strong>de</strong>r Schlüsselattribute<br />
ein<strong>de</strong>utig Instanzen <strong>de</strong>s <strong>Entity</strong>-Typs E. Formal kann diese Bedingung<br />
wie folgt geschrieben wer<strong>de</strong>n:<br />
∀e 1 ,e 2 ∈ σ(E) : (σ(S 1 )(e 1 ) = σ(S 1 )(e 2 ) ∧ ... ∧ σ(S k )(e 1 ) = σ(S k )(e 2 )) =⇒ (e 1 = e 2 )<br />
3 Die Festlegung einer i<strong>de</strong>ntifizieren<strong>de</strong>n Schlüsselbedingung ist eine <strong>Mo<strong>de</strong>ll</strong>ierungsentscheidung<br />
für eine konkrete Datenbankanwendung – für je<strong>de</strong> <strong>de</strong>r drei Beispieli<strong>de</strong>ntifizierungen lassen sich<br />
in <strong>de</strong>r Realität Gegenbeispiele fin<strong>de</strong>n.<br />
4 Im Relationenmo<strong>de</strong>ll wird die Definition noch exakter getroffen. Dort wird auch noch die Minimalität<br />
<strong>de</strong>r Attributmenge festgelegt.<br />
3.3 Grundlagen <strong>de</strong>s <strong>Entity</strong>-<strong>Relationship</strong>-<strong>Mo<strong>de</strong>ll</strong>s 65<br />
© <strong>de</strong>s Titels »Datenbanken – Konzepte und Sprachen« (ISBN 978-3-8266-9519-3) 2013<br />
by Verlagsgruppe Hüthig Jehle Rehm GmbH, Hei<strong>de</strong>lberg.<br />
Nähere Informationen unter: http://www.mitp.<strong>de</strong>/9519
Sowohl in <strong>de</strong>r textuellen als auch in <strong>de</strong>r graphischen Notation markieren wir<br />
Schlüsselattribute durch Unterstreichungen, also textuell durch:<br />
E(...,S 1 ,...,S i ,...)<br />
Die graphische Variante <strong>de</strong>r Schlüssel<strong>de</strong>finition ist in Abbildung 3.8 dargestellt.<br />
In vielen Anwendungen haben wir verschie<strong>de</strong>ne mögliche Schlüssel, etwa<br />
können Weine wie im obigen Beispiel durch Namen, Jahrgang und Weingut,<br />
aber auch durch eine intern vergebene Weini<strong>de</strong>ntifikationsnummer i<strong>de</strong>ntifiziert<br />
wer<strong>de</strong>n. Wir sprechen in diesem Zusammenhang von mehreren Schlüsselkandidaten<br />
o<strong>de</strong>r kurz Schlüsseln. Wir wählen einen <strong>de</strong>r Schlüsselkandidaten aus<br />
und bezeichen ihn als Primärschlüssel. Dieser hat die oben eingeführte einfache<br />
graphische Repräsentation. Falls mehrere Schlüssel graphisch dargestellt<br />
wer<strong>de</strong>n sollen, verbin<strong>de</strong>t man die Kanten zu ihren Attributen jeweils mit einem<br />
Querbalken (siehe [Heu97]).<br />
Die vier Konzepte Werte, <strong>Entity</strong>s, Beziehungen und Attribute ermöglichen die<br />
Beschreibung beliebig strukturierter Weltausschnitte. Wir wer<strong>de</strong>n in <strong>de</strong>n folgen<strong>de</strong>n<br />
Abschnitten allerdings sehen, dass diese Konzepte für eine ausdrucksstarke<br />
und realitätsnahe <strong>Mo<strong>de</strong>ll</strong>ierung weiter verfeinert wer<strong>de</strong>n müssen.<br />
3.3.2 Ein einfaches Beispiel für ein ER-Schema<br />
Bevor wir die erweiterten ER-<strong>Mo<strong>de</strong>ll</strong>ierungskonzepte behan<strong>de</strong>ln, wollen wir zunächst<br />
die bisher eingeführten Konstrukte in einem zusammenhängen<strong>de</strong>n Beispiel<br />
betrachten, das wir später in geeigneter Weise noch verfeinern wer<strong>de</strong>n.<br />
Als Anwendungsdomäne dient wie<strong>de</strong>r unser Weinkeller.<br />
<strong>Das</strong> komplette Schema ist in Abbildung 3.8 dargestellt. Zentraler <strong>Entity</strong>-<br />
Typ ist Wein mit <strong>de</strong>n Attributen Name, Farbe, Jahrgang und Restsüße. Ein Wein<br />
wird aus einer o<strong>de</strong>r mehreren Rebsorte(n) hergestellt (Beziehungstyp), wobei<br />
<strong>de</strong>r Anteil <strong>de</strong>r Rebsorte als Attribut <strong>de</strong>s Beziehungstyps repräsentiert wird (siehe<br />
vorigen Abschnitt). Rebsorte ist ebenfalls ein <strong>Entity</strong>-Typ und wird mit <strong>de</strong>n<br />
Attributen Name und Farbe mo<strong>de</strong>lliert. Weiterhin wird ein Wein von einem Erzeuger<br />
produziert – auch dies wird über einen Beziehungstyp dargestellt. Der<br />
<strong>Entity</strong>-Typ Erzeuger besitzt die Attribute Weingut und eine zunächst nicht weiter<br />
strukturierte Adresse. Als Erweiterung zu unserem bisherigen Beispiel wird<br />
auch das Anbaugebiet als <strong>Entity</strong>-Typ mit <strong>de</strong>n Attributen Name, Region und Land<br />
mo<strong>de</strong>lliert: beispielsweise ist <strong>de</strong>r Ort Saint-Emilion in <strong>de</strong>r Region Bor<strong>de</strong>aux in<br />
Frankreich eine Instanz dieses Typs (d.h. ein konkretes <strong>Entity</strong>). Die Zuordnung<br />
zwischen Erzeuger und Anbaugebiet – also <strong>de</strong>r Sachverhalt, dass ein bestimmtes<br />
Weingut in einem Anbaugebiet angesie<strong>de</strong>lt ist – wird durch <strong>de</strong>n Beziehungstyp<br />
sitzt in erfasst. Schließlich ist <strong>de</strong>n Erzeugern noch eine Lizenz zugeordnet,<br />
die ihnen erlaubt, eine bestimmte Menge Wein zu produzieren.<br />
66 3 <strong>Das</strong> <strong>Entity</strong>-<strong>Relationship</strong>-<strong>Mo<strong>de</strong>ll</strong><br />
© <strong>de</strong>s Titels »Datenbanken – Konzepte und Sprachen« (ISBN 978-3-8266-9519-3) 2013<br />
by Verlagsgruppe Hüthig Jehle Rehm GmbH, Hei<strong>de</strong>lberg.<br />
Nähere Informationen unter: http://www.mitp.<strong>de</strong>/9519
Farbe<br />
Name<br />
Land<br />
Bezeichnung<br />
Gericht<br />
[0,*]<br />
Beilage<br />
Name<br />
Rebsorte<br />
[0,*]<br />
hergestellt<br />
aus<br />
Anteil<br />
Farbe<br />
Name<br />
Anbaugebiet<br />
sitzt in<br />
Region<br />
[1,7]<br />
empfiehlt<br />
[0,*]<br />
Wein<br />
produziert<br />
von<br />
Erzeuger<br />
[0,*]<br />
Restsüße<br />
Jahrgang<br />
Weingut<br />
Adresse<br />
Kritiker<br />
besitzt<br />
Name<br />
LizenzNr<br />
Organisation<br />
Menge<br />
Lizenz<br />
Abbildung 3.8: Beispiel für ein ER-Schema<br />
Im linken Teil <strong>de</strong>s Diagramms sind die Empfehlungen mo<strong>de</strong>lliert. Wir nehmen<br />
hierbei vereinfachend an, dass ein Kritiker einen bestimmten Wein zu einem<br />
Gericht empfiehlt, also beispielsweise, dass ein weißer Chardonnay aus Kalifornien<br />
gut zu Lamm passt. Kritiker und Gericht sind daher als <strong>Entity</strong>-Typen<br />
repräsentiert, die über <strong>de</strong>n Beziehungstyp mit <strong>de</strong>m <strong>Entity</strong>-Typ Wein verbun<strong>de</strong>n<br />
sind.<br />
Die Notation <strong>de</strong>r Pfeilspitzen sowie die zusätzlichen Informationen an <strong>de</strong>n<br />
Verbindungslinien wer<strong>de</strong>n wir in <strong>de</strong>n folgen<strong>de</strong>n Abschnitten noch erläutern.<br />
3.3.3 Semantik eines ER-Schemas<br />
Nach<strong>de</strong>m die einzelnen Konzepte erläutert wur<strong>de</strong>n, können wir nun die Semantik<br />
eines kompletten Schemas im ER-<strong>Mo<strong>de</strong>ll</strong> betrachten. Wie in Abschnitt<br />
3.3 Grundlagen <strong>de</strong>s <strong>Entity</strong>-<strong>Relationship</strong>-<strong>Mo<strong>de</strong>ll</strong>s 67<br />
© <strong>de</strong>s Titels »Datenbanken – Konzepte und Sprachen« (ISBN 978-3-8266-9519-3) 2013<br />
by Verlagsgruppe Hüthig Jehle Rehm GmbH, Hei<strong>de</strong>lberg.<br />
Nähere Informationen unter: http://www.mitp.<strong>de</strong>/9519
3.2 beschrieben, beschränken wir uns auf die Festlegung <strong>de</strong>r Menge aller möglichen<br />
ER-Zustän<strong>de</strong> σ für ein gegebenes ER-Schema.<br />
Je<strong>de</strong>r Zustand σ eines ER-Schemas ist eine Zuordnung<br />
E ↦→ σ(E) ⊆ µ(E)<br />
R(E 1 ,...,E n ;...) ↦→ σ(R) ⊆ σ(E 1 ) × ... × σ(E n )<br />
E(...,A i : D,...) ↦→ σ(A i ) : σ(E) → µ(D),...<br />
R(...;...,A i : D,...) ↦→ σ(A i ) : σ(R) → µ(D),...<br />
bei gegebener fester Interpretation µ <strong>de</strong>r Datentypen durch Wertebereiche<br />
und <strong>de</strong>r <strong>Entity</strong>-Typen durch vorgegebene Mengen möglicher <strong>Entity</strong>s.<br />
Nach diesen allgemeinen Festlegungen wen<strong>de</strong>n wir uns speziellen Aspekten<br />
und zusätzlichen Notationen zu.<br />
3.4 Eigenschaften von Beziehungen<br />
Wie das Beispiel in Abbildung 3.8 zeigt, können sich Beziehungstypen hinsichtlich<br />
ihrer Eigenschaften unterschei<strong>de</strong>n. So sind an <strong>de</strong>r empfiehlt-Beziehung drei<br />
<strong>Entity</strong>-Typen beteiligt, während alle an<strong>de</strong>ren Beziehungstypen in diesem Schema<br />
binär sind.<br />
Allgemein lassen sich Beziehungen durch zwei wesentliche Eigenschaften<br />
beschreiben:<br />
• die Stelligkeit gibt an, wie viele <strong>Entity</strong>-Typen mit einem Beziehungstyp<br />
verbun<strong>de</strong>n sind, während<br />
• die Funktionalität bzw. Kardinalität beschreibt, wieviele Instanzen eines<br />
<strong>Entity</strong>-Typs jeweils in die Beziehung eingehen.<br />
Im Folgen<strong>de</strong>n wer<strong>de</strong>n wir diese Eigenschaften genauer vorstellen.<br />
3.4.1 Stelligkeit<br />
Die Stelligkeit o<strong>de</strong>r <strong>de</strong>r Grad eines Beziehungstyps beschreibt die Anzahl <strong>de</strong>r<br />
am Beziehungstyp beteiligten <strong>Entity</strong>-Typen, also in <strong>de</strong>r graphischen Notation<br />
die Anzahl <strong>de</strong>r Verbinungslinien. Die zweifellos häufigste Variante sind dabei<br />
binäre (zweistellige) Beziehungstypen. Einige Vorschläge für spezielle ER-<br />
<strong>Mo<strong>de</strong>ll</strong>e und zugehörige Werkzeugsysteme boten daher nur zweistellige Beziehungstypen<br />
als Einschränkung <strong>de</strong>r allgemeineren n-stelligen Beziehungen an.<br />
So stellt sich die Frage, ob mehrstellige Beziehungen eventuell durch mehrere<br />
zweistellige Beziehungen ersetzt wer<strong>de</strong>n können.<br />
68 3 <strong>Das</strong> <strong>Entity</strong>-<strong>Relationship</strong>-<strong>Mo<strong>de</strong>ll</strong><br />
© <strong>de</strong>s Titels »Datenbanken – Konzepte und Sprachen« (ISBN 978-3-8266-9519-3) 2013<br />
by Verlagsgruppe Hüthig Jehle Rehm GmbH, Hei<strong>de</strong>lberg.<br />
Nähere Informationen unter: http://www.mitp.<strong>de</strong>/9519
Gericht<br />
Gericht<br />
G-W<br />
empfiehlt<br />
Wein<br />
G-K<br />
Wein<br />
Kritiker<br />
Kritiker<br />
K-W<br />
(a) Ternärer Beziehungstyp<br />
(b) Drei binäre Beziehungstypen<br />
Abbildung 3.9: Ternäre vs. binäre Beziehungen im ER-<strong>Mo<strong>de</strong>ll</strong><br />
Hierzu betrachten wir in Abbildung 3.9 ein Beispiel aus unserer Weindomäne:<br />
nämlich <strong>de</strong>n Beziehungstyp mit <strong>de</strong>n Empfehlungen von Weinen zu bestimmten<br />
Speisen durch Weinkritiker, links wie im vorigen Abschnitt als dreistellige<br />
(ternäre) Beziehung, rechts in Form von drei zweistelligen Beziehungen<br />
jeweils zwischen zwei <strong>Entity</strong>-Typen dargestellt.<br />
Zur Beantwortung unserer Frage betrachten wir in Abbildung 3.10 die Instanzen:<br />
die Ovale symbolisieren die <strong>Entity</strong>-Mengen, die Linien repräsentieren<br />
Beziehungen zwischen einigen ausgewählten <strong>Entity</strong>s. Die unterschiedlichen Linienarten<br />
in Abbildung 3.10 (b) sollen dabei nur die Zuordnung zu <strong>de</strong>n Beziehungen<br />
in Abbildung 3.10 (a) erleichtern – tatsächlich ist die Zusammengehörigkeit<br />
etwa von g 1 − w 1 und g 1 − k 1 nicht mehr gegeben!<br />
Wenn wir nun versuchen, aus <strong>de</strong>n drei binären Beziehungen in Abbildung<br />
3.11 (a) (zur Erinnerung: die unterschiedlichen Linienarten wer<strong>de</strong>n ignoriert)<br />
die ursprünglichen Beziehungen zu rekonstruieren, ergibt sich das Bild<br />
in Abbildung 3.11 (b).<br />
Die Beziehungen (1) bis (3) entsprechen offensichtlich <strong>de</strong>n Beziehungen aus<br />
Abbildung 3.10 (a). Allerdings kann auch die (neue) Beziehung (4) g 1 − w 1 − k 2<br />
abgeleitet wer<strong>de</strong>n!<br />
Wir können also feststellen, dass ein wichtiger Aspekt <strong>de</strong>r ursprünglichen<br />
Beziehungsausprägung nicht mehr rekonstruiert wer<strong>de</strong>n kann: Die Information,<br />
dass unser Kritiker k 2 <strong>de</strong>n Wein w 1 nur für das Gericht g 2 empfohlen hat,<br />
nicht aber für g 1 , ist nun verlorengegangen! Allgemein be<strong>de</strong>utet dies, dass mehrere<br />
mögliche Ausprägungen für empfiehlt auf dieselben binären Beziehungen<br />
abgebil<strong>de</strong>t wer<strong>de</strong>n. Ein weiterer, nicht beabsichtigter Nebeneffekt ist, dass<br />
wir jetzt Informationen ausdrücken können, die mit <strong>de</strong>m ursprünglichen Beziehungstyp<br />
nicht ausdrückbar waren. So können wir beispielsweise eine Be-<br />
3.4 Eigenschaften von Beziehungen 69<br />
© <strong>de</strong>s Titels »Datenbanken – Konzepte und Sprachen« (ISBN 978-3-8266-9519-3) 2013<br />
by Verlagsgruppe Hüthig Jehle Rehm GmbH, Hei<strong>de</strong>lberg.<br />
Nähere Informationen unter: http://www.mitp.<strong>de</strong>/9519
g 1<br />
g 2<br />
w 1<br />
w 2<br />
g 1<br />
g 2<br />
w 1<br />
w 2<br />
Gericht<br />
Wein<br />
Gericht<br />
Wein<br />
k 1 k 2<br />
Kritiker<br />
(a) Ternäre Beziehung<br />
k 1 k 2<br />
Kritiker<br />
(b) Binäre Beziehungen<br />
Abbildung 3.10: Beispiel für Beziehungsinstanzen zu Abbildung 3.9<br />
g 1<br />
g 2<br />
w 1<br />
w 2<br />
(1) g 1 − w 1 − k 1<br />
(2) g 1 − w 2 − k 2<br />
Gericht<br />
Wein<br />
(3) g 2 − w 1 − k 2<br />
(4) g 1 − w 1 − k 2<br />
k 1 k 2<br />
Kritiker<br />
(a) Binäre Beziehungen<br />
(b) Rekonstruierbare Beziehungen<br />
Abbildung 3.11: Rekonstruktion <strong>de</strong>r Beziehungsinstanzen<br />
ziehungsinstanz g 2 −w 2 einfügen, d.h. eine Empfehlung ohne Angabe eines Kritikers.<br />
Diese kurzen Beispiele zeigen, dass die direkte Umsetzung n-stelliger Beziehungstypen<br />
in zweistellige zu unerwünschten Effekten führen kann. Dies<br />
heißt aber nicht, dass wir prinzipiell eine geringere Ausdrucksfähigkeit haben,<br />
falls wir nur zweistellige Beziehungen erlauben – in unserem Beispiel könnten<br />
wir die dreistellige Beziehung zum Beispiel durch einen künstlichen neuen<br />
<strong>Entity</strong>-Typ Empfehlung und drei zweistellige Beziehungen ersetzen (Abbildung<br />
3.12).<br />
70 3 <strong>Das</strong> <strong>Entity</strong>-<strong>Relationship</strong>-<strong>Mo<strong>de</strong>ll</strong><br />
© <strong>de</strong>s Titels »Datenbanken – Konzepte und Sprachen« (ISBN 978-3-8266-9519-3) 2013<br />
by Verlagsgruppe Hüthig Jehle Rehm GmbH, Hei<strong>de</strong>lberg.<br />
Nähere Informationen unter: http://www.mitp.<strong>de</strong>/9519
Gericht<br />
G-E<br />
Empfehlung<br />
W-E<br />
Wein<br />
K-E<br />
Kritiker<br />
Abbildung 3.12: Dreistellige Beziehung durch künstlichen <strong>Entity</strong>-Typ<br />
<strong>Das</strong> Prinzip dieser Umsetzung entspricht <strong>de</strong>r Transformation vom ER-<br />
<strong>Mo<strong>de</strong>ll</strong> in das Netzwerkmo<strong>de</strong>ll, in <strong>de</strong>m ebenfalls nur zweistellige Beziehungen<br />
erlaubt sind. Diese Transformation wird in Abschnitt 16.3 näher erläutert.<br />
Auch im Relationenmo<strong>de</strong>ll können solche Zusammenhänge dargestellt<br />
wer<strong>de</strong>n: Verbundabhängigkeiten und die Transformationseigenschaft Verbundtreue<br />
wer<strong>de</strong>n diese Aufgabe übernehmen (siehe Abschnitt 6.3.2).<br />
3.4.2 Kardinalitäten und funktionale Beziehungen<br />
Neben <strong>de</strong>r Anzahl <strong>de</strong>r in eine Beziehung eingehen<strong>de</strong>n <strong>Entity</strong>-Typen ist die<br />
Anzahl <strong>de</strong>r beteiligten Instanzen <strong>de</strong>s jeweiligen <strong>Entity</strong>-Typs ein weiteres<br />
wichtiges Merkmal von Beziehungstypen. So kann beispielsweise für die<br />
hergestellt aus-Beziehung aus Abbildung 3.7 festgelegt wer<strong>de</strong>n, dass ein Wein<br />
aus min<strong>de</strong>stens einer Rebsorte hergestellt sein muss (an<strong>de</strong>renfalls ist es kein<br />
Wein), an<strong>de</strong>rerseits aber nicht mehr als sieben Rebsorten enthalten darf (sonst<br />
ist er maximal noch als Glühwein geeignet). Derartige Festlegungen bezeichnet<br />
man als Kardinalität einer Beziehung. Eine Kardinalitätsangabe stellt im Prinzip<br />
eine Integritätsbedingung dar, d.h. damit wird beschrieben, unter welchen<br />
Bedingungen die Daten konsistent zur realen Welt sind.<br />
Allgemein lassen sich drei Formen von Kardinalitäten unterschei<strong>de</strong>n, wobei<br />
m und n für eine beliebige Anzahl > 1 stehen:<br />
• 1:1-Beziehungen,<br />
• 1:n- bzw. n:1-Beziehungen sowie<br />
• m:n-Beziehungen.<br />
Im Folgen<strong>de</strong>n stellen wir diese Beziehungstypen genauer vor, wobei wir zunächst<br />
von einem binären Beziehungstyp R ausgehen, <strong>de</strong>r die <strong>Entity</strong>-Typen E 1<br />
und E 2 miteinan<strong>de</strong>r verbin<strong>de</strong>t.<br />
3.4 Eigenschaften von Beziehungen 71<br />
© <strong>de</strong>s Titels »Datenbanken – Konzepte und Sprachen« (ISBN 978-3-8266-9519-3) 2013<br />
by Verlagsgruppe Hüthig Jehle Rehm GmbH, Hei<strong>de</strong>lberg.<br />
Nähere Informationen unter: http://www.mitp.<strong>de</strong>/9519
Bei einer 1:1-Beziehung ist je<strong>de</strong>m <strong>Entity</strong> e 1 vom <strong>Entity</strong>-Typ E 1 maximal ein<br />
<strong>Entity</strong> e 2 vom Typ E 2 zugeordnet und umgekehrt. Abbildung 3.13 ver<strong>de</strong>utlicht<br />
dies für die <strong>Entity</strong>-Mengen von E 1 und E 2 .<br />
E 1 E 2<br />
Abbildung 3.13: 1:1-Beziehung<br />
Ein Beispiel für eine <strong>de</strong>rartige Beziehung ist „Mann ist verheiratet mit<br />
Frau“. Unter Annahme monogamer Beziehungen ist tatsächlich je<strong>de</strong>r Mann mit<br />
maximal einer Frau verheiratet und umgekehrt – allerdings kann es durchaus<br />
Männer o<strong>de</strong>r Frauen geben, die nicht verheiratet sind. In unserem Weinszenario<br />
ist die Beziehung „Erzeuger besitzt Lizenz“ ein Beispiel einer 1:1-Beziehung.<br />
Bei einer 1:n-Beziehung sind je<strong>de</strong>m <strong>Entity</strong> e 1 vom Typ E 1 beliebig viele <strong>Entity</strong>s<br />
vom Typ E 2 zugeordnet; gleichzeitig gibt es jedoch zu je<strong>de</strong>m <strong>Entity</strong> e 2 <strong>de</strong>s<br />
Typs E 2 maximal ein <strong>Entity</strong> e 1 aus E 1 (Abbildung 3.14).<br />
E 1 E 2<br />
Abbildung 3.14: 1:n-Beziehung<br />
Beispiele für <strong>de</strong>rartige Beziehungen sind etwa „eine Mutter hat Kin<strong>de</strong>r“<br />
(eine Mutter kann mehrere Kin<strong>de</strong>r haben, aber je<strong>de</strong>s Kind hat – in diesem Fall<br />
genau – eine biologische Mutter) o<strong>de</strong>r aus unserer Anwendungsdomäne die Beziehungen<br />
produziert und sitzt_in.<br />
72 3 <strong>Das</strong> <strong>Entity</strong>-<strong>Relationship</strong>-<strong>Mo<strong>de</strong>ll</strong><br />
© <strong>de</strong>s Titels »Datenbanken – Konzepte und Sprachen« (ISBN 978-3-8266-9519-3) 2013<br />
by Verlagsgruppe Hüthig Jehle Rehm GmbH, Hei<strong>de</strong>lberg.<br />
Nähere Informationen unter: http://www.mitp.<strong>de</strong>/9519
Die hierzu inverse n:1-Beziehung, bei <strong>de</strong>r je<strong>de</strong>m <strong>Entity</strong> e 1 vom Typ E 1 maximal<br />
ein <strong>Entity</strong> <strong>de</strong>s Typs E 2 zugeordnet wird, bezeichnet man auch als funktionale<br />
Beziehung. Ein solcher Beziehungstyp beschreibt eine Funktion:<br />
R : E 1 → E 2<br />
In <strong>de</strong>r Praxis kommen funktionale Beziehungen recht häufig vor. Gera<strong>de</strong> in<br />
implementierungsnäheren Datenmo<strong>de</strong>llen wie <strong>de</strong>m Netzwerkmo<strong>de</strong>ll spielen sie<br />
eine wichtige Rolle, da sie direkt zum navigieren<strong>de</strong>n Zugriff genutzt wer<strong>de</strong>n<br />
können.<br />
Da im ER-<strong>Mo<strong>de</strong>ll</strong> Beziehungen bidirektional sind, kann je<strong>de</strong> 1:n-Beziehung<br />
auch als n:1- und damit als funktionale Beziehung angesehen wer<strong>de</strong>n. So ist <strong>de</strong>r<br />
produziert_von-Beziehungstyp offensichtlich funktional, da je<strong>de</strong>m Wein maximal<br />
ein Erzeuger zugeordnet wird.<br />
Die allgemeinste Form sind m:n-Beziehungen, die (zunächst noch) keinerlei<br />
Restriktionen beinhalten. Hier können je<strong>de</strong>m <strong>Entity</strong> <strong>de</strong>r Menge E 1 mehrere<br />
Entites aus E 2 zugeordnet sein – genauso kann ein <strong>Entity</strong> aus E 2 mit mehreren<br />
E 1 -<strong>Entity</strong>s in Beziehung stehen (Abbildung 3.15).<br />
E 1 E 2<br />
Abbildung 3.15: m:n-Beziehung<br />
Ein Beispiel für m:n-Beziehung ist unsere hergestellt_aus-Beziehung: ein<br />
Wein kann aus mehrere Rebsorten hergestellt wer<strong>de</strong>n und genauso kann eine<br />
Rebsorte in verschie<strong>de</strong>nen Weinen enthalten sein.<br />
In <strong>de</strong>r graphischen Notation <strong>de</strong>s ER-<strong>Mo<strong>de</strong>ll</strong>s wer<strong>de</strong>n Kardinalitäten als<br />
zusätzliche Informationen an <strong>de</strong>n Verbindungslinien zwischen Beziehungstyp<br />
und <strong>Entity</strong>-Typen notiert. Für <strong>de</strong>n speziellen Fall <strong>de</strong>r funktionalen Beziehung<br />
wird die Funktion<br />
R : E 1 → E 2<br />
durch eine Pfeilspitze im Bildbereich E 2 <strong>de</strong>r Funktion dargestellt. Der Beziehungstyp<br />
produziert_von zwischen Weine und Erzeuger wird <strong>de</strong>mnach wie in<br />
Abbildung 3.16 notiert.<br />
3.4 Eigenschaften von Beziehungen 73<br />
© <strong>de</strong>s Titels »Datenbanken – Konzepte und Sprachen« (ISBN 978-3-8266-9519-3) 2013<br />
by Verlagsgruppe Hüthig Jehle Rehm GmbH, Hei<strong>de</strong>lberg.<br />
Nähere Informationen unter: http://www.mitp.<strong>de</strong>/9519
Wein<br />
produziert<br />
von<br />
Erzeuger<br />
Abbildung 3.16: Funktionale Beziehung im ER-<strong>Mo<strong>de</strong>ll</strong><br />
Die 1:1-Beziehung stellt einen Spezialfall <strong>de</strong>r funktionalen Beziehung dar<br />
und kann <strong>de</strong>shalb, wie in Abbildung 3.17 dargestellt, mit zwei Pfeilspitzen notiert<br />
wer<strong>de</strong>n.<br />
Erzeuger besitzt Lizenz<br />
Abbildung 3.17: Graphische Notation einer 1:1-Beziehung im ER-<strong>Mo<strong>de</strong>ll</strong><br />
Für <strong>de</strong>n allgemeinen Fall <strong>de</strong>r Kardinalitätsangabe wird häufig die<br />
[min i ,max i ]-Notation verwen<strong>de</strong>t, bei <strong>de</strong>r zu je<strong>de</strong>m an <strong>de</strong>r Beziehung R beteilgten<br />
<strong>Entity</strong>-Typ E i <strong>de</strong>r minimale (min i ) und <strong>de</strong>r maximale (max i ) Wert <strong>de</strong>r<br />
möglichen Teilnahmen <strong>de</strong>r Instanzen von E i vorgegeben wird:<br />
min i ≤ |{r | r ∈ R ∧ r.E i = e i }| ≤ max i<br />
Die Kardinalitätsangaben wer<strong>de</strong>n an <strong>de</strong>r Verbindungslinie zum jeweiligen<br />
<strong>Entity</strong>-Typ notiert und sind somit auch für beliebige n-stellige Beziehungstypen<br />
verwendbar (Abbildung 3.18).<br />
E 1<br />
[min 1 ,max 1 ] [min n ,max n ]<br />
R<br />
E n<br />
[min 2 ,max 2 ]<br />
E 2<br />
Abbildung 3.18: Kardinalitätsangabe mit [min i ,max i ]-Notation<br />
74 3 <strong>Das</strong> <strong>Entity</strong>-<strong>Relationship</strong>-<strong>Mo<strong>de</strong>ll</strong><br />
© <strong>de</strong>s Titels »Datenbanken – Konzepte und Sprachen« (ISBN 978-3-8266-9519-3) 2013<br />
by Verlagsgruppe Hüthig Jehle Rehm GmbH, Hei<strong>de</strong>lberg.<br />
Nähere Informationen unter: http://www.mitp.<strong>de</strong>/9519
Textuell können wir Kardinalitätsangaben wie folgt notieren:<br />
R(E 1 ,...,E i [min i ,max i ],...,E n )<br />
◭Beispiel 3-1◮ Betrachten wir zur Ver<strong>de</strong>utlichung die Beziehung<br />
hergestellt_aus mit <strong>de</strong>n folgen<strong>de</strong>n Kardinalitätsangaben:<br />
hergestellt_aus(Wein[1,3], Rebsorte[0,2])<br />
Nach unserer obigen Erklärung be<strong>de</strong>utet dies, dass ein Wein aus min<strong>de</strong>stens<br />
einer und maximal drei Rebsorten hergestellt sein muss (also zwischen einund<br />
dreimal in einer hergestellt_aus-Beziehung auftreten muss) bzw. dass je<strong>de</strong><br />
Rebsorte in maximal zwei Weinen verwen<strong>de</strong>t wer<strong>de</strong>n darf. Für die <strong>Entity</strong>-<br />
Mengen:<br />
wür<strong>de</strong> die Beziehungsmenge<br />
Weine = {w 1 ,w 2 } und Rebsorte = {r 1 ,r 2 ,r 3 ,r 4 }<br />
hergestellt_aus 1 = {(w 1 ,r 1 ),(w 1 ,r 2 ),(w 1 ,r 3 ),(w 2 ,r 4 )}<br />
diese For<strong>de</strong>rung erfüllen: Der Wein w 1 besteht aus <strong>de</strong>n Rebsorten r 1 ,...,r 3 , <strong>de</strong>r<br />
Wein w 2 aus r 4 . Dagegen erfüllt die Beziehungsmenge<br />
hergestellt_aus 2 = {(w 1 ,r 1 ),(w 1 ,r 2 ),(w 1 ,r 3 ),(w 1 ,r 4 )}<br />
diese For<strong>de</strong>rung nicht, da hierbei <strong>de</strong>r Wein w 1 viermal auftritt und w 2 nicht<br />
beteiligt ist.<br />
✷<br />
Eine spezielle Wertangabe für max i ist die Angabe eines ∗-Symbols, das einer<br />
unbegrenzten Anzahl entspricht. Für min i wer<strong>de</strong>n häufig 0 o<strong>de</strong>r 1 verwen<strong>de</strong>t,<br />
wobei<br />
• min i = 1 eine zwingen<strong>de</strong> Beziehung bezeichnet, d.h. je<strong>de</strong>s <strong>Entity</strong> <strong>de</strong>s betreffen<strong>de</strong>n<br />
Typs E i muss min<strong>de</strong>stens einmal an <strong>de</strong>r Beziehung teilnehmen,<br />
und<br />
• min i = 0 eine optionale Beziehung beschreibt, also ein <strong>Entity</strong> nicht unbedingt<br />
an <strong>de</strong>r Beziehung teilnehmen muss.<br />
In Abbildung 3.19 sind die verschie<strong>de</strong>nen Beziehungsarten und die korrespondieren<strong>de</strong>n<br />
Notationen dargestellt.<br />
Betrachten wir noch einige weitere Beispiele für Kardinalitätsangaben.<br />
◭Beispiel 3-2◮ Die 1:1-Beziehung besitzt zwischen Erzeuger und Lizenz ist<br />
zumin<strong>de</strong>st einseitig optional, wenn wir annehmen, dass es freie Lizenzen gibt<br />
und damit nicht je<strong>de</strong> Lizenz an <strong>de</strong>r Beziehung beteiligt ist (also min = 0). An<strong>de</strong>rerseits<br />
muss je<strong>de</strong>r Erzeuger genau eine Lizenz besitzen und somit an <strong>de</strong>r<br />
Beziehung teilnehmen:<br />
3.4 Eigenschaften von Beziehungen 75<br />
© <strong>de</strong>s Titels »Datenbanken – Konzepte und Sprachen« (ISBN 978-3-8266-9519-3) 2013<br />
by Verlagsgruppe Hüthig Jehle Rehm GmbH, Hei<strong>de</strong>lberg.<br />
Nähere Informationen unter: http://www.mitp.<strong>de</strong>/9519
Art<br />
Notation<br />
1:1-Beziehung<br />
[0,1] [0,1]<br />
E 1<br />
R<br />
E 2<br />
R(E 1 [0,1],E 2 [0,1])<br />
1:n-Beziehung<br />
[0,*] [0,1]<br />
E 1<br />
R<br />
E 2<br />
R(E 1 [0,∗],E 2 [0,1])<br />
m:n-Beziehung<br />
[0,*] [0,*]<br />
E 1<br />
R<br />
E 2<br />
R(E 1 [0,∗],E 2 [0,∗])<br />
Abbildung 3.19: [min i ,max i ]-Notation für verschie<strong>de</strong>ne Beziehungsarten<br />
besitzt(Erzeuger[1,1], Lizenz[0,1])<br />
✷<br />
◭Beispiel 3-3◮ Die funktionale Beziehung aus Abbildung 3.16 ist in<br />
[min,max]-Notation wie folgt zu notieren:<br />
produziert_von(Wein[1,1], Erzeuger[0,*])<br />
Dies be<strong>de</strong>utet, dass je<strong>de</strong>r Wein von genau einem Erzeuger hergestellt sein muss<br />
(es gibt keinen Wein ohne Erzeuger). Man spricht hier auch von einer totalen<br />
funktionalen Beziehung im Gegensatz zu partiellen Beziehungen bei <strong>de</strong>r Angabe<br />
[0,1]. Gleichzeitig kann ein Erzeuger beliebig viele Weine produzieren, wobei<br />
es auch Erzeuger ohne Wein geben kann.<br />
Wür<strong>de</strong>n wir eine Beschränkung auf maximal drei verschie<strong>de</strong>ne Weine pro<br />
Erzeuger festlegen, so ist folgen<strong>de</strong> Notation notwendig:<br />
produziert_von(Wein[1,1], Erzeuger[0,3])<br />
✷<br />
76 3 <strong>Das</strong> <strong>Entity</strong>-<strong>Relationship</strong>-<strong>Mo<strong>de</strong>ll</strong><br />
© <strong>de</strong>s Titels »Datenbanken – Konzepte und Sprachen« (ISBN 978-3-8266-9519-3) 2013<br />
by Verlagsgruppe Hüthig Jehle Rehm GmbH, Hei<strong>de</strong>lberg.<br />
Nähere Informationen unter: http://www.mitp.<strong>de</strong>/9519
◭Beispiel 3-4◮ Die m:n-Beziehung hergestellt_aus zwischen Wein und<br />
Rebsorte kann mit <strong>de</strong>r auf Seite 71 formulierten Einschränkung auf sieben<br />
Rebsorten pro Wein in folgen<strong>de</strong>r Weise verfeinert wer<strong>de</strong>n:<br />
hergestellt_aus(Wein[1,7], Rebsorte[0,*])<br />
Gleichzeitig wird damit auch ausgedrückt, dass je<strong>de</strong>r Wein min<strong>de</strong>stens eine<br />
Rebsorte enthalten muss, an<strong>de</strong>rerseits aber nicht je<strong>de</strong> Rebsorte zur Herstellung<br />
<strong>de</strong>r Weine verwen<strong>de</strong>t wer<strong>de</strong>n muss.<br />
✷<br />
Alternative Notationen<br />
Während die Notation <strong>de</strong>r ER-Grundkonzepte <strong>Entity</strong>- und Beziehungstyp sowie<br />
Attribut in <strong>de</strong>r Literatur weitgehend i<strong>de</strong>ntisch ist, gibt es für die Kardinalitätsangabe<br />
verschie<strong>de</strong>ne Varianten. So wur<strong>de</strong> in <strong>de</strong>r Originalarbeit von Chen<br />
für (binäre) 1:n-Beziehungen eine einfachere Notation verwen<strong>de</strong>t, die <strong>de</strong>r Leserichtung<br />
entspricht. In Abbildung 3.20 (b) ist dies <strong>de</strong>r [min,max]-Notation<br />
gegenübergestellt: einem <strong>Entity</strong> vom Typ E 1 sind N <strong>Entity</strong>s vom Typ E 2 zugeordnet,<br />
daher wird das N an die E 2 -Seite geschrieben.<br />
[0,*] [0,1]<br />
E 1<br />
R<br />
E 2<br />
(a) [min,max]-Notation<br />
1 N<br />
E 1<br />
R<br />
E 2<br />
(b) Chen-Notation<br />
R<br />
E 1 E 2<br />
(c) Krähenfußnotation<br />
Abbildung 3.20: Alternative Notationen für Kardinalitäten<br />
Eine weitere Alternative ist die sogenannte Krähenfußnotation, die auch<br />
von einigen kommerziellen Entwurfswerkzeugen unterstützt wird. Hierbei<br />
3.4 Eigenschaften von Beziehungen 77<br />
© <strong>de</strong>s Titels »Datenbanken – Konzepte und Sprachen« (ISBN 978-3-8266-9519-3) 2013<br />
by Verlagsgruppe Hüthig Jehle Rehm GmbH, Hei<strong>de</strong>lberg.<br />
Nähere Informationen unter: http://www.mitp.<strong>de</strong>/9519
wird die n-Seite (in unserer [min-max]-Notation die [0,1]-Seite!) mit einem Krähenfuß<br />
versehen (Abbildung 3.20 (c)).<br />
3.5 Weitere Konzepte im <strong>Entity</strong>-<strong>Relationship</strong>-<strong>Mo<strong>de</strong>ll</strong><br />
Bereits in <strong>de</strong>n ersten Vorschlägen für das ER-<strong>Mo<strong>de</strong>ll</strong> wur<strong>de</strong>n neben <strong>de</strong>n vier<br />
Basiskonzepten Werte, <strong>Entity</strong>s, Beziehungen und Attribute eine Reihe weiterer<br />
<strong>Mo<strong>de</strong>ll</strong>ierungskonzepte vorgeschlagen. Wir betrachten im Folgen<strong>de</strong>n insbeson<strong>de</strong>re<br />
abhängige <strong>Entity</strong>s, Spezialisierungen mittels <strong>de</strong>r IST-Beziehung und<br />
Optionalität von Attributen und Beziehungen.<br />
3.5.1 Abhängige <strong>Entity</strong>-Typen<br />
Neben Attributen können auch funktionale Beziehungen als Schlüssel dienen<br />
– die Definitionen übertragen sich direkt von Attributen auf funktionale Beziehungstypen,<br />
da die Semantik bei<strong>de</strong>r Konzepte durch Funktionen festgelegt<br />
wird. Der Wertebereich einer funktionalen Beziehung ist allerdings die Menge<br />
<strong>de</strong>r aktuellen Instanzen eines <strong>Entity</strong>-Typs – die I<strong>de</strong>ntifizierung durch eine<br />
funktionale Beziehung setzt also die tatsächliche aktuelle Existenz <strong>de</strong>s i<strong>de</strong>ntifizieren<strong>de</strong>n<br />
<strong>Entity</strong>s voraus!<br />
Aus diesem Grun<strong>de</strong> bezeichnen wir einen <strong>Entity</strong>-Typ, an <strong>de</strong>ssen Schlüssel<br />
eine funktionale Beziehung beteiligt ist, auch als abhängigen <strong>Entity</strong>-Typ (engl.<br />
Weak <strong>Entity</strong>). Instanzen eines <strong>de</strong>rartig abhängigen <strong>Entity</strong>-Typs können somit<br />
nur existieren in Abhängigkeit von an<strong>de</strong>ren <strong>Entity</strong>s. Als Beispiel betrachten<br />
wir einen <strong>Entity</strong>-Typ WeinJahrgang zur Darstellung konkreter Jahrgänge eines<br />
Weines, die sich aufgrund äußerer Einflüsse im Charakter unterschei<strong>de</strong>n<br />
können. Die Instanzen dieses <strong>Entity</strong>-Typs wer<strong>de</strong>n durch das Jahr und <strong>de</strong>n (abstrakten)<br />
Weineintrag, zu <strong>de</strong>m <strong>de</strong>r Jahrgang gehört, i<strong>de</strong>ntifziert. <strong>Das</strong> Beispiel<br />
ist in Abbildung 3.21 dargestellt. In <strong>de</strong>r dortigen Notation wer<strong>de</strong>n abhängige<br />
<strong>Entity</strong>-Typen durch funktionale Beziehungen als Schlüssel markiert.<br />
Abbildung 3.22 zeigt eine mögliche Ausprägung für das Beispielschema in<br />
Abbildung 3.21: <strong>Das</strong> Attribut Jahr und <strong>de</strong>r Wert <strong>de</strong>r funktionalen Beziehung<br />
gehört-zu sind zusammen Schlüssel für Wein-Jahrgänge. Weine können ohne<br />
Jahrgänge existieren, aber nicht umgekehrt.<br />
Viele Vorschläge für eine graphische Darstellung von ER-Schemata sehen<br />
eine explizite graphische Notation für abhängige <strong>Entity</strong>-Typen vor. Abbildung<br />
3.23 zeigt das Beispiel aus Abbildung 3.21 in <strong>de</strong>r von Elmasri und Navathe<br />
in [EN02] vorgeschlagenen Darstellung, in <strong>de</strong>r das <strong>Entity</strong>-Symbol und<br />
das <strong>Relationship</strong>-Symbol durch doppelte Linien, und die funktionale Beziehung<br />
durch die Angaben 1 und N gekennzeichnet sind. <strong>Das</strong> zusätzlich i<strong>de</strong>ntifizieren-<br />
78 3 <strong>Das</strong> <strong>Entity</strong>-<strong>Relationship</strong>-<strong>Mo<strong>de</strong>ll</strong><br />
© <strong>de</strong>s Titels »Datenbanken – Konzepte und Sprachen« (ISBN 978-3-8266-9519-3) 2013<br />
by Verlagsgruppe Hüthig Jehle Rehm GmbH, Hei<strong>de</strong>lberg.<br />
Nähere Informationen unter: http://www.mitp.<strong>de</strong>/9519
WeinJahrgang<br />
gehört-zu<br />
Wein<br />
Jahr<br />
Name<br />
Restsüße<br />
Farbe<br />
Abbildung 3.21: Abhängige <strong>Entity</strong>s im ER-<strong>Mo<strong>de</strong>ll</strong>: Funktionale Beziehung als Schlüssel<br />
gehört-zu<br />
Jahr: 2004<br />
Restsüße: 1,2<br />
Name: Pinot Noir<br />
Farbe: Rot<br />
gehört-zu<br />
Jahr: 2003<br />
Restsüße: 1,4<br />
Name: Zinfan<strong>de</strong>l<br />
Farbe: Rot<br />
gehört-zu<br />
Jahr: 1999<br />
Restsüße: 6,7<br />
Name: Riesling Reserve<br />
Farbe: Weiß<br />
Abbildung 3.22: Mögliche Ausprägung für abhängige <strong>Entity</strong>s<br />
<strong>de</strong> Attribut Jahr wird dort als partieller Schlüssel bezeichnet und gestrichelt<br />
markiert.<br />
3.5.2 Die IST-Beziehung<br />
Eine weitere, in vielen Anwendungen auftauchen<strong>de</strong> Beziehung zwischen <strong>Entity</strong>s<br />
ist die Spezialisierungs-/Generalisierungsbeziehung, auch als IST-Beziehung<br />
bekannt (engl. is-a relationship). Zur Erläuterung betrachten wir das folgen<strong>de</strong><br />
Beispiel. In unsere Datenbank wollen wir zusätzlich Schaumweine aufnehmen,<br />
die sich von normalen Weinen durch <strong>de</strong>n Gehalt an Kohlendioxid unterschei<strong>de</strong>n,<br />
das durch spezielle Herstellungsverfahren eingebracht wird. Der<br />
Zusammenhang ist in Abbildung 3.24 (a) dargestellt:<br />
• Je<strong>de</strong>r Schaumwein (w 1 ,w 2 ,w 4 ) ist offensichtlich ein Wein (bzw. einer Instanz<br />
vom <strong>Entity</strong>-Typ Wein zugeordnet).<br />
• Aber nicht je<strong>de</strong>r Wein ist zugleich ein Schaumwein (wie z.B. w 3 ,w 5 ,w 6 ).<br />
3.5 Weitere Konzepte im <strong>Entity</strong>-<strong>Relationship</strong>-<strong>Mo<strong>de</strong>ll</strong> 79<br />
© <strong>de</strong>s Titels »Datenbanken – Konzepte und Sprachen« (ISBN 978-3-8266-9519-3) 2013<br />
by Verlagsgruppe Hüthig Jehle Rehm GmbH, Hei<strong>de</strong>lberg.<br />
Nähere Informationen unter: http://www.mitp.<strong>de</strong>/9519
WeinJahrgang<br />
N<br />
gehört-zu<br />
1<br />
Wein<br />
Jahr<br />
Name<br />
Restsüße<br />
Farbe<br />
Abbildung 3.23: Abhängige <strong>Entity</strong>s im ER-<strong>Mo<strong>de</strong>ll</strong>: Alternative graphische Notation<br />
Name<br />
w 1<br />
w 2<br />
Wein<br />
Farbe<br />
w 1<br />
w 2<br />
w 4<br />
w 3<br />
w 4<br />
Schaumweine<br />
w 5<br />
w 6<br />
Weine<br />
(a) Beispiel einer IST-Beziehung<br />
IST<br />
Herstellung<br />
Schaumwein<br />
(b) Notation im ER-<strong>Mo<strong>de</strong>ll</strong><br />
Abbildung 3.24: IST-Beziehung im ER-<strong>Mo<strong>de</strong>ll</strong><br />
Abbildung 3.24(b) zeigt eine mögliche graphische Notation im ER-<strong>Mo<strong>de</strong>ll</strong>.<br />
Der <strong>Entity</strong>-Typ Wein bleibt wie bisher, <strong>de</strong>r <strong>Entity</strong>-Typ Schaumwein ist über eine<br />
funktionale IST-Beziehung zugeordnet und Instanzen dieses Typs wer<strong>de</strong>n auch<br />
über diese Beziehung i<strong>de</strong>ntifiziert. Es han<strong>de</strong>lt sich somit um einen Spezialfall<br />
eines abhängigen <strong>Entity</strong>-Typs!<br />
Weiterhin treffen die Attribute von Wein auch auf Schaumwein zu, auch wenn<br />
sie dort nicht explizit notiert sind. Wir sprechen hier von vererbten Attributen.<br />
Der <strong>Entity</strong>-Typ Schaumwein hat ein zusätzliches Attribut Herstellung, welches<br />
das Verfahren zum Einbringen <strong>de</strong>s Kohlendioxid kennzeichnet (z.B. Asti-<br />
Metho<strong>de</strong>, Champagner-Metho<strong>de</strong>). Insgesamt besitzt Schaumwein also folgen<strong>de</strong><br />
Attribute:<br />
80 3 <strong>Das</strong> <strong>Entity</strong>-<strong>Relationship</strong>-<strong>Mo<strong>de</strong>ll</strong><br />
© <strong>de</strong>s Titels »Datenbanken – Konzepte und Sprachen« (ISBN 978-3-8266-9519-3) 2013<br />
by Verlagsgruppe Hüthig Jehle Rehm GmbH, Hei<strong>de</strong>lberg.<br />
Nähere Informationen unter: http://www.mitp.<strong>de</strong>/9519
Schaumwein(Name, Farbe, Herstellung)<br />
} {{ }<br />
von Wein<br />
Darüber hinaus ist zu beachten, dass nicht nur die Attribut<strong>de</strong>klarationen vererbt<br />
wer<strong>de</strong>n, son<strong>de</strong>rn auch jeweils die aktuellen Werte für eine Instanz in einem<br />
Zustand.<br />
In <strong>de</strong>r Textnotation schreiben wir E 1 IST E 2 als Deklaration einer Spezialisierungsbeziehung.<br />
Semantisch entspricht eine IST-Beziehung einer injektiven<br />
funktionalen Beziehung. In diesem Spezialfall können wir die Funktion σ(R) als<br />
Einbettung einer Menge in einer Obermenge auffassen und legen die Semantik<br />
wie folgt fest:<br />
σ(E 1 ) ⊆ σ(E 2 )<br />
Die Funktion σ(R) ist hier also die I<strong>de</strong>ntitätsfunktion. Um die spezielle Rolle<br />
<strong>de</strong>r IST-Beziehung graphisch hervorzuheben, wird in <strong>de</strong>r graphischen Notation<br />
oft anstelle <strong>de</strong>r Beziehungstyp-Raute ein fetter Funktionspfeil benutzt (wie in<br />
Abbildung 3.25).<br />
Herstellung<br />
Name<br />
Farbe<br />
Schaumwein<br />
Wein<br />
Abbildung 3.25: Alternative Notation für IST-Beziehung im ER-<strong>Mo<strong>de</strong>ll</strong><br />
3.5.3 Optionalität von Attributen<br />
Analog zur Optionalität von Beziehungen (Abschnitt 3.4.2), die ausdrückt, dass<br />
<strong>Entity</strong>s eines Typs nicht zwingend an einer Beziehung teilnehmen müssen,<br />
können auch Attribute optional sein. Dies ist <strong>de</strong>r Fall, wenn das Attribut nicht<br />
für alle <strong>Entity</strong>s einen <strong>de</strong>finierten Wert annehmen muss. Nicht-optionale Attribute<br />
wer<strong>de</strong>n entsprechend als total bezeichnet. Auch für die Optionalität (bzw.<br />
Totalität) sind mehrere graphische Notationen verbreitet. Wir folgen <strong>de</strong>r Notation<br />
von Hohenstein [Hoh93], in <strong>de</strong>r Optionalität durch kleine Kreise an <strong>de</strong>r<br />
Verbindungslinie zwischen Attributsymbol und <strong>Entity</strong>-Typ-Symbol markiert<br />
wird. Totalität wird nicht geson<strong>de</strong>rt gekennzeichnet. Ein Beispiel zeigt Abbildung<br />
3.26. Hier wird mo<strong>de</strong>lliert, dass bei kleineren Län<strong>de</strong>rn die Anbaugebiete<br />
nicht in Regionen unterteilt sind, das Attribut Region somit optional ist.<br />
3.5 Weitere Konzepte im <strong>Entity</strong>-<strong>Relationship</strong>-<strong>Mo<strong>de</strong>ll</strong> 81<br />
© <strong>de</strong>s Titels »Datenbanken – Konzepte und Sprachen« (ISBN 978-3-8266-9519-3) 2013<br />
by Verlagsgruppe Hüthig Jehle Rehm GmbH, Hei<strong>de</strong>lberg.<br />
Nähere Informationen unter: http://www.mitp.<strong>de</strong>/9519
Weingut<br />
Adresse<br />
Name<br />
Land<br />
Region<br />
Erzeuger<br />
sitzt in<br />
Anbaugebiet<br />
Abbildung 3.26: Optionale Attribute im ER-<strong>Mo<strong>de</strong>ll</strong><br />
Semantisch be<strong>de</strong>utet die Optionalitätsangabe, dass die Funktion σ(A) eine<br />
partielle Funktion ist, somit nicht für alle <strong>Entity</strong>s aus σ(E) einen <strong>de</strong>finierten<br />
Wert annehmen muss.<br />
Analog kann die vorgestellte graphische Notation auch für Optionalität bei<br />
Beziehungstypen eingesetzt wer<strong>de</strong>n. Um Totalität explizit graphisch zu markieren,<br />
könnte etwa ein ausgefüllter Kreis verwen<strong>de</strong>t wer<strong>de</strong>n.<br />
3.6 Zusammenfassung<br />
In diesem Kapitel haben wir mit <strong>de</strong>m ER-<strong>Mo<strong>de</strong>ll</strong> ein Entwurfsmo<strong>de</strong>ll für Datenbanken<br />
kennengelernt, das trotz seines Alters immer noch eine wichtige Rolle<br />
spielt und auch durch eine Vielzahl (kommerzieller) Werkzeuge unterstützt<br />
wird. In Tabelle 3.3 sind noch einmal die wichtigsten Konzepte mit ihrer Be<strong>de</strong>utung<br />
dargestellt.<br />
Wie wir in späteren Kapiteln noch sehen wer<strong>de</strong>n, orientieren sich auch<br />
neuere Entwicklungen aus <strong>de</strong>m Bereich objektorientierter Entwurfsmo<strong>de</strong>lle am<br />
ER-<strong>Mo<strong>de</strong>ll</strong>, sodass wir diese Konzepte – wenn auch unter einem an<strong>de</strong>ren Namen<br />
– wie<strong>de</strong>rfin<strong>de</strong>n wer<strong>de</strong>n.<br />
3.7 Vertiefen<strong>de</strong> Literatur<br />
<strong>Das</strong> <strong>Entity</strong>-<strong>Relationship</strong>-<strong>Mo<strong>de</strong>ll</strong> wur<strong>de</strong> in einem grundlegen<strong>de</strong>n Artikel von P.P.<br />
Chen im Jahre 1976 [Che76] beschrieben. Seit<strong>de</strong>m wur<strong>de</strong> es sehr oft in Lehrbüchern<br />
und Übersichtsartikeln behan<strong>de</strong>lt. Zu empfehlen ist insbeson<strong>de</strong>re die<br />
Einführung im Buch von Elmasri und Navathe [EN02]. Dort wird auch auf eine<br />
Reihe von Erweiterungen und Varianten <strong>de</strong>s ER-<strong>Mo<strong>de</strong>ll</strong>s verwiesen und weiterführen<strong>de</strong><br />
Literatur angegeben.<br />
82 3 <strong>Das</strong> <strong>Entity</strong>-<strong>Relationship</strong>-<strong>Mo<strong>de</strong>ll</strong><br />
© <strong>de</strong>s Titels »Datenbanken – Konzepte und Sprachen« (ISBN 978-3-8266-9519-3) 2013<br />
by Verlagsgruppe Hüthig Jehle Rehm GmbH, Hei<strong>de</strong>lberg.<br />
Nähere Informationen unter: http://www.mitp.<strong>de</strong>/9519
Begriff<br />
<strong>Entity</strong><br />
<strong>Entity</strong>-Typ<br />
Beziehungstyp<br />
Attribut<br />
Schlüssel<br />
Kardinalitäten<br />
Stelligkeit<br />
funktionale Beziehung<br />
abhängige <strong>Entity</strong>s<br />
IST-Beziehung<br />
Optionalität<br />
Informale Be<strong>de</strong>utung<br />
zu repräsentieren<strong>de</strong><br />
Informationseinheit<br />
Gruppierung von <strong>Entity</strong>s mit<br />
gleichen Eigenschaften<br />
Gruppierung von Beziehungen<br />
zwischen <strong>Entity</strong>s<br />
datenwertige Eigenschaft eines<br />
<strong>Entity</strong>s o<strong>de</strong>r einer Beziehung<br />
i<strong>de</strong>ntifizieren<strong>de</strong> Eigenschaft von<br />
<strong>Entity</strong>s<br />
Einschränkung von Beziehungstypen<br />
bezüglich <strong>de</strong>r mehrfachen Teilnahme<br />
von <strong>Entity</strong>s an <strong>de</strong>r Beziehung<br />
Anzahl <strong>de</strong>r an einem Beziehungstyp<br />
beteiligten <strong>Entity</strong>-Typen<br />
Beziehungstyp mit<br />
Funktionseigenschaft<br />
<strong>Entity</strong>s, die nur abhängig von<br />
an<strong>de</strong>ren <strong>Entity</strong>s existieren können<br />
Spezialisierung von <strong>Entity</strong>-Typen<br />
Attribute o<strong>de</strong>r funktionale<br />
Beziehungen als partielle Funktionen<br />
Tabelle 3.3: Wichtige Begriffe <strong>de</strong>s ER-<strong>Mo<strong>de</strong>ll</strong>s<br />
3.8 Übungsaufgaben<br />
Übung 3-1 <strong>Mo<strong>de</strong>ll</strong>ieren Sie folgen<strong>de</strong>n Sachverhalt in einem ER-Schema. Geben<br />
Sie dabei speziell die Kardinalitäten <strong>de</strong>r Beziehungstypen in [min,max]-<br />
Notation an:<br />
Ein Würfel ist durch 6 Flächen beschrieben, die wie<strong>de</strong>rum jeweils<br />
durch 4 Kanten begrenzt sind. Je<strong>de</strong> Kante wird durch 2 Punkte repräsentiert,<br />
wobei je<strong>de</strong>r Punkt aus x-, y- und z-Koordinate besteht.<br />
Zwei aneinan<strong>de</strong>r grenzen<strong>de</strong> Flächen haben eine Kante gemeinsam,<br />
zwei zusammenstoßen<strong>de</strong> Kanten teilen sich einen Punkt.<br />
Übung 3-2 <strong>Mo<strong>de</strong>ll</strong>ieren Sie die Informationsstruktur <strong>de</strong>r folgen<strong>de</strong>n Anwendung<br />
im ER-<strong>Mo<strong>de</strong>ll</strong>.<br />
✷<br />
3.8 Übungsaufgaben 83<br />
© <strong>de</strong>s Titels »Datenbanken – Konzepte und Sprachen« (ISBN 978-3-8266-9519-3) 2013<br />
by Verlagsgruppe Hüthig Jehle Rehm GmbH, Hei<strong>de</strong>lberg.<br />
Nähere Informationen unter: http://www.mitp.<strong>de</strong>/9519
Es han<strong>de</strong>lt sich um eine Datenbank über Bankkonten und zugehörige<br />
Banktransaktionen. <strong>Mo<strong>de</strong>ll</strong>iert wer<strong>de</strong>n sollen verschie<strong>de</strong>ne Arten<br />
von Konten (Sparkonto, Girokonto usw.), die Informationen über<br />
die Kun<strong>de</strong>n und die Buchungen enthalten. Kun<strong>de</strong>n können mehrere<br />
Konten besitzen, aber nur ein Girokonto, und bei Sparkonten können<br />
mehrere Besitzer eingetragen sein. Scheckkarten wer<strong>de</strong>n nur<br />
für Girokonten ausgegeben, und nur bei diesen sind Abbuchungen<br />
über Geldautomaten möglich. Neben Auszahlungen und Einzahlungen<br />
sind insbeson<strong>de</strong>re Buchungen von einem Konto auf ein an<strong>de</strong>res<br />
möglich. Auszahlungen, Einzahlungen, Buchungen sowie Kontoeröffnung<br />
wer<strong>de</strong>n mit Datum protokolliert.<br />
Welche Beschreibungsaspekte können im ER-<strong>Mo<strong>de</strong>ll</strong> nicht o<strong>de</strong>r nur schlecht<br />
umgesetzt wer<strong>de</strong>n?<br />
✷<br />
Übung 3-3 Geben Sie aus einem Ihnen bekannten Szenario (Universität, Bibliothek<br />
usw.) je ein Beispiel für eine<br />
1. m:n-Beziehung,<br />
2. 1:n-Beziehung,<br />
3. 1:1-Beziehung,<br />
4. mehrstellige Beziehung. ✷<br />
Übung 3-4 Bei <strong>de</strong>r ER-<strong>Mo<strong>de</strong>ll</strong>ierung bestehen trotz <strong>de</strong>r Beschränkung auf wenige<br />
Konzepte einige Freiheiten. So gibt es oft folgen<strong>de</strong> Alternativen:<br />
1. <strong>Entity</strong>-Typ vs. Attribut,<br />
2. abhängiger <strong>Entity</strong>-Typ vs. selbständiger <strong>Entity</strong>-Typ,<br />
3. mehrstelliger Beziehungstyp vs. zusätzlicher <strong>Entity</strong>-Typ und binäre Beziehungen,<br />
4. Attribut vs. IST-Beziehung.<br />
Geben Sie für je<strong>de</strong> dieser Möglichkeiten zum ER-Schema aus Abbildung 3.8<br />
ein Beispiel an und diskutieren Sie Vor- und Nachteile.<br />
✷<br />
84 3 <strong>Das</strong> <strong>Entity</strong>-<strong>Relationship</strong>-<strong>Mo<strong>de</strong>ll</strong><br />
© <strong>de</strong>s Titels »Datenbanken – Konzepte und Sprachen« (ISBN 978-3-8266-9519-3) 2013<br />
by Verlagsgruppe Hüthig Jehle Rehm GmbH, Hei<strong>de</strong>lberg.<br />
Nähere Informationen unter: http://www.mitp.<strong>de</strong>/9519