Datenbanken Relationales Modell: 1 • beruht auf dem mathematischen Konzept der Relation • wurde von Edgar F. Codd 1970 bereits entwickelt • Alle relevanten Informationen der Datenbank sind in diesem Datenbank-Modell in Relationen abgelegt. Stephan Karczewski - Datenbanken 3. Relationales Modell Datenbanken Rückblick: Datenbank-Entwurfsprozess Semantische Datenmodellierung (vgl. Kapitel 2) Überführung des semantischen Datenmodells in das relationale Modell 2 Stephan Karczewski - Datenbanken 3. Relationales Modell Datenbanken Mathematische Grundlagen des relationalen Modells (1): Seien W1, W2, …, Wn die Wertebereiche der Attribute A1, A2, …, An. 3 • Das kartesische Produkt der Mengen W1, W2, …, Wn ist die Menge aller n-Tupel (w1, w2, …, wn), wi Wi und wird geschrieben als W1 X W2 X … X Wn. • Jede Untermenge des kartesischen Produkts W1 X W2 X … X Wn ist eine (n-stellige) Relation. Der Grad der Relation ist n. • Für jede Relation in einer relationalen Datenbank wird ein Relationenschema festgelegt, durch Angabe des Namens des Schemas und der dazugehörigen Attribute. • Eine identifizierende Attributkombination einer Relation ist eine Menge von Attributen, durch die jedes Tupel der Relation identifiziert werden kann. • Eine identifizierende Kombination von Attributen K = (A1, A2, …, Aj) heißt Schlüssel der Relation, wenn keine echte Untermenge von K eine identifizierende Attributkombination der Relation ist. Stephan Karczewski - Datenbanken 3. Relationales Modell Datenbanken Mathematische Grundlagen des relationalen Modells (2): 4 • Jede Relation besitzt mindestens einen Schlüssel. • Falls eine Relation mehrere Schlüssel besitzt, wird ein Schlüssel als Primärschlüssel (primary key, PK) ausgezeichnet. • Der Wert des Primärschlüssels ist eindeutig, nicht änderbar und darf nicht leer sein. • Der Primärschlüssel wird im Relationenschema unterstrichen. • Aus der mathematischen Definition der Relation folgt, dass zwei Tupel einer Relation paarweise verschieden (Definition als Menge!) sind, d.h. sie unterscheiden sich mindestens in einem Attribut. • Tupel sind nicht geordnet, d.h. die Reihenfolge ist bedeutungslos. Stephan Karczewski - Datenbanken 3. Relationales Modell Datenbanken Beispielrelation: Attribut (Spalte) Name des Relationenschemas Markt: Relation (Tabelleninhalt) 5 Stephan Karczewski - Datenbanken Bezeichnung Standort Kategorie Internationaler Töpfermarkt Krefeld Töpfermarkt Töpfermarkt Sommerhausen Sommerhausen Töpfermarkt Internationaler Töpfermarkt Hanau Töpfermarkt Relationenschema Tupel (Zeile) 3. Relationales Modell Datenbanken Kritik am relationalen Modell: 6 • Einfacher Aufbau des Modells wird kritisiert, da die komplexe Welt auf flache Relationen herunter gebrochen werden muss. Es ist tatsächlich so, dass Dinge der realen Welt, die man z.B. in einer Excel-Tabelle darstellen kann in einem relationalen Datenbank-System aufgrund der Normalisierungs-Regeln in verschiedene Relationen abgelegt werden müssen. • Dieser Sachverhalt bedeutet neben der unnatürlichen Verteilung auch Performance-Verlust. • Aufgrund der Kritik wurden alternative Ideen entwickelt: Objektorientierte Datenbanken (ausgehend von den objektorientierten Programmiersprachen Objekt-relationale Datenbanken (ausgehend von den relationalen Datenbanken) Stephan Karczewski - Datenbanken 3. Relationales Modell Datenbanken Integritätsbedingungen: • Die Definition von Integritätsbedingungen dient dazu, dass das Datenbanksystem diese automatisiert prüfen und einhalten kann. Auch falls die Gefahr der Verletzung einer Integritätsbedingung besteht, kann das System angemessen reagieren. • Bereits die Einhaltung des Datentyps eines Attributs kann als Integritätsbedingung aufgefasst werden. Das System erlaubt dies nicht und meldet ggfs. einen Fehler bei der Eingabe. • Bei Datenbanken unterscheidet man insbesondere zwei Sorten von Integritätsbedingungen: intralrelationale und interrelationale. • Intrarelationale Integritätsbedingungen sind Abhängigkeiten zwischen Attributen einer Relation. Bekanntestes Beispiel ist die Schlüsselabhängigkeit. Ist ein Attribut (oder eine Kombination von Attributen) als Schlüssel definiert, kann das System für die Einhaltung der Schlüsselbedingung sorgen. • 7 Interrelationale Integritätsbedingungen existieren zwischen Relationen. Bekanntes Beispiel hierfür ist die Fremdschlüsselabhängigkeit. Ein Attribut, das in einer Relation als Schlüssel definiert wurde, kann in einer assoziierten Relation als Fremdschlüssel definiert werden. Die Assoziation legt fest, dass Tupel in den beiden Relationen, die den gleichen Wert in diesem Attribut haben, ein identisches (übergeordnetes) Objekt meinen. Des Weiteren gilt, dass Tupel in der in der assoziierten Relation nur solche Werte in dem Fremdschlüsselattribut haben dürfen, die in der referenzierten Relation auch vorhanden sind. 3. Relationales Modell Stephan Karczewski - Datenbanken Datenbanken Integritätsbedingungen: Beispiel: Markt: Bezeichnung Veranstalter: Name • • 8 Standort Adresse Name Bezeichnung Kategorie Typ Das Attribut Name in der Relation Veranstalter ist Primärschlüssel, d.h. in jedem Tupel muss sich dieses von den anderen im Namen unterscheiden. Die Attribute Bezeichnung und Standort sind Primärschlüssel der Relation Markt, d.h. die Kombination der beiden Attributwerte muss sich in jedem Tupel unterscheiden. • Das Attribut Name in Markt ist Fremdschlüssel, d.h. es korrespondiert zu dem Attribut Name in Veranstalter (hier ist es Schlüssel). Dies bedeutet, dass jeder Name in Markt auch in Veranstalter vorkommen muss. Alle Attribute des Veranstalters sind relevant für den korrespondierenden Markt. • Notation: Unterstrich: Schlüssel(-attribut), Oberstrich: Fremdschlüssel(-attribut) Stephan Karczewski - Datenbanken 3. Relationales Modell Datenbanken Transformation EERM Relationales Modell: 9 • Das EERM dient der Modellierung der Realwelt aus Sicht der Anwendung. • Das relationale Modell dient als Grundlage für die Realisierung in relationalen Datenbanken. • Die Transformation EERM Relationales Modell führt uns dazu, die Wünsche des Anwenders der Datenbank näher an die physische Realisierung zu bringen. • Die im Folgenden aufgestellten Regeln erlauben eine (halb-)automatisierte Implementation. • Diese Implementation ist mit entsprechenden Software-Tools möglich. • Trotz der aufgestellten Regeln muss der Datenbank-Spezialist am Ende des Prozesses überprüfen, ob die Umsetzung sinnvoll ist. Stephan Karczewski - Datenbanken 3. Relationales Modell Datenbanken Rückblick: Datenbank-Entwurfsprozess Überführung des semantischen Datenmodells in das relationale Modell 10 Stephan Karczewski - Datenbanken 3. Relationales Modell Datenbanken Transformation EERM Relationales Modell: Folgende Regeln werden verwendet: 1. Jeder Entity-Typ wird zu einem Relationenschema 2. Strukturierte Typen von Attributen müssen in „einfache“ Relationenschemata überführt werden. 3. m:n-Beziehungen werden zu drei Relationenschemata (2 für die Entity-Typen, 1 für den Relationship-Typ) 4. m:1-Beziehungen werden zu zwei Relationenschemata (für die Entity-Typen). 5. 1:1-Beziehungen werden zu zwei Relationenschemata. 6. Rekursive Beziehungen werden konsequent wie „normale“ Beziehungen behandelt. 7. Mehrstellige Beziehungen werden wie zweistellige Beziehungen umgesetzt unter Berücksichtigung des mehrstelligen Relationship-Typ. 8. Generalisierungen/Spezialisierungen können auf zweierlei Weise umgesetzt werden, je nachdem ob die Oberklasse abstrakt oder konkret ist. 11 Stephan Karczewski - Datenbanken 3. Relationales Modell Datenbanken Transformation EERM Relationales Modell: Entity-Typ 1. 12 • Jeder Entity-Typ wird zu einem Relationenschema. • Der Name des Entity-Typs wird zum Namen des Relationenschemas • Die Attribute des Entity-Typs werden zu den Attributen des Relationenschemas • Falls Entities komplexe Attribute haben, müssen diese aufgelöst werden: Listenartige/Arrayartige Attribute werden in ein neues Relationenschema ausgelagert, welches über eine Schlüssel-/Fremdschlüssel-Beziehung verbunden wird. Recordartige Attribute werden entweder ebenfalls ausgelagert oder als jeweils einzelne Attribute behandelt. • Ein Schlüssel (falls noch nicht im EERM geschehen) wird ausgezeichnet und unterstrichen. • Die Datentypen der Attribute müssen spätestens jetzt festgelegt werden und dürfen nicht komplex (z.B. Liste, Array, Record) sein. Stephan Karczewski - Datenbanken 3. Relationales Modell Datenbanken Transformation EERM Relationales Modell: Entity-Typ (Beispiel): Markt Bezeichnung Markt: Bezeichnung Standort Kategorie Standort Kategorie Datentypen: Bezeichnung varchar(), Standort varchar(), Kategorie Aufzählungstyp 13 Stephan Karczewski - Datenbanken 3. Relationales Modell Datenbanken Transformation EERM Relationales Modell: Vornamen Entity-Typ (Beispiel): Kunde Nachname Kd-Nummer Strasse Adresse Stadt PLZ Kunde: Adresse Vornamen Kd-Nummer Nachname Strasse PLZ Stadt Vorname_1 Vorname_2 . . . Vorname_n Dieses Relationenschema ist nicht gültig, da noch komplexe Attribute (Adresse ist recordartig, Vornamen ist listenartig/arryartig) enthalten sind. 14 Stephan Karczewski - Datenbanken 3. Relationales Modell Datenbanken Transformation EERM Relationales Modell: Vornamen Entity-Typ (Beispiel, Fortsetzung): Auflösung Adresse: Kunde Nachname Es werden nur die Subattribute genutzt. Kd-Nummer Strasse 2. Auflösung Vornamen: Ein zweites Relationenschema wird gebildet Adresse und über Schlüssel-/Fremdschlüssel verbunden. Kunde: Kd-Nummer Nachname Strasse PLZ Stadt Vorname: Kd-Nummer Vorname Stadt PLZ Datentypen: Kd-Nummer integer, Nachname, Vorname, Strasse, Stadt varchar(), PLZ integer oder varchar() 15 Stephan Karczewski - Datenbanken 3. Relationales Modell Datenbanken Transformation EERM Relationales Modell: 3. Relationship-Typ: m:n-Beziehung • Die beteiligten Entity-Typen werden wie zuvor behandelt. • Der Relationship-Typ wird zu einem eigenen Relationenschema. • Die Attribute des Relationship-Typs werden zu Attributen des neuen Relationenschemas. • Zusätzlich werden die Primärschlüssel-Attribute der beteiligten Entity-Typen als Attribute des neuen Relationenschemas hinzugefügt, wobei gilt: Diese Primärschlüssel-Attribute bilden gemeinsam den Primärschlüssel des neuen Relationenschemas. Diese sind gleichzeitig Fremdschlüssel bezogen auf das Relationenschema, aus dem sie hervorgegangen sind. Zusammengefasst: Es entstehen drei Relationenschemata, eines für den Relationship-Typ und zwei für die beiden Entity-Typen. Diese sind über Schlüssel-/Fremdschlüssel-Beziehungen miteinander verbunden. Hierzu werden die Schlüssel-Attribute der beteiligten Entity-Typen in das dritte Relationenschema übertragen und dort zum Primärschlüssel. 16 Stephan Karczewski - Datenbanken 3. Relationales Modell Datenbanken Transformation EERM Relationales Modell: (0,*) m:n-Beziehung (Beispiel): (0,*) 6 Produkt Markt Produkt (Nummer, Bezeichnung, Funktion) Markt (Bezeichnung, Standort, Kategorie) 6: wird angeboten auf (Anzahl) Produkt: Nummer Markt: Bezeichnung WirdAngebotenAuf: 17 Stephan Karczewski - Datenbanken Bezeichnung Standort Nummer Funktion Kategorie Bezeichnung Standort Anzahl 3. Relationales Modell Datenbanken Transformation EERM Relationales Modell: Exkurs – Anwendung mit einem Case-Tool (Power Designer): 18 1. Modellierung einer m:n-Beziehung (Entity-Typ + Attribute): Die Notation ist unterschiedlich zu der bisher gelernten, jedoch semantisch gleich mächtig. 2. Einfügen von Attributen bei dem Relationship-Typ (change to entity) 3. Check Modell ( Überprüfen auf syntaktische Fehler) 4. (Übersetzen des Modells in das relationale Modell) Stephan Karczewski - Datenbanken 3. Relationales Modell Datenbanken Transformation EERM Relationales Modell: Exkurs – Anwendung mit einem Case-Tool (Power Designer): 1. Modellierung einer m:n-Beziehung (Entity-Typ + Attribute): Die Notation ist unterschiedlich zu der bisher gelernten, jedoch semantisch gleich mächtig. a) Demonstration am Rechner b) Ergebnis („Krähenfußdiagramm“): 0 * <pi> 19 Stephan Karczewski - Datenbanken 3. Relationales Modell Datenbanken Transformation EERM Relationales Modell: Exkurs – Anwendung mit einem Case-Tool (Power Designer): 2. Einfügen von Attributen bei dem Relationship-Typ (change to entity) a) Demonstration am Rechner b) Ergebnis: * 20 Stephan Karczewski - Datenbanken 1 3. Relationales Modell Datenbanken Transformation EERM Relationales Modell: Exkurs – Anwendung mit einem Case-Tool (Power Designer): 21 3. Check Modell ( Überprüfen auf syntaktische Fehler) 4. (Übersetzen des Modells in das relationale Modell) a) Demonstration am Rechner b) Ergebnis: enthält die gleichen Informationen wie die Tabellendarstellung Stephan Karczewski - Datenbanken 3. Relationales Modell Datenbanken Transformation EERM Relationales Modell: Aufgabe (m:n-Beziehung): Setzen Sie das folgende EERM in ein äquivalentes relationales Modell um. a) Schreiben Sie direkt die Relationenschemata auf, die entstehen. b) Gehen Sie auf Papier so vor, wie es mit dem Power Designer funktioniert. (0,*) Produkt (0,*) 7 Kunde Produkt (Produktnummer, Bezeichnung, Preis) Kunde (Nummer, Name) 7: erhält geliefert (Anzahl, Lieferdatum) 22 Stephan Karczewski - Datenbanken 3. Relationales Modell Datenbanken Transformation EERM Relationales Modell: 4. Relationship-Typ: m:1-Beziehung • Die beteiligten Entity-Typen werden zunächst wie zuvor behandelt. • Der Relationship-Typ erhält kein eigenes Relationenschema. • Das Relationenschema, dessen Tupel nur maximal ein Mal in der Beziehung vorkommen dürfen, wird um eine Spalte ergänzt. Diese Spalte erhält den Namen des Primärschlüssel der anderen Relation und wird zum Fremdschlüssel. Zusätzlich werden bei diesem Relationship-Typ evtl. vorhandene Attribute des Relationship-Typs angebracht. Zusammengefasst: Es entstehen zwei Relationenschemata. Diese sind über die Schlüssel/Fremdschlüssel-Beziehung miteinander verbunden, die durch Ergänzung der „1“-Relation um den Schlüssel der „m“-Relation entsteht. 23 Stephan Karczewski - Datenbanken 3. Relationales Modell Datenbanken Transformation EERM Relationales Modell: (1,1) m:1-Beziehung (Beispiel): (0,*) 8 Markt Veranstalter Markt (Bezeichnung, Standort, Kategorie) Veranstalter (Name, Adresse, Bezeichnung, Typ) 8: Ansprechpartner Markt: Bezeichnung Veranstalter: Name Standort Adresse Name Bezeichnung Kategorie Typ (Veranstalter-) Name wird in der Markt-Relation ergänzt und zum Fremdschlüssel. 24 Stephan Karczewski - Datenbanken 3. Relationales Modell Datenbanken Transformation EERM Relationales Modell: Exkurs – Anwendung mit einem Case-Tool (Power Designer): 1. Modellierung einer m:1-Beziehung (Entity-Typ + Attribute): a) Demonstration am Rechner b) Ergebnis („Krähenfußdiagramm“): * 0 1 <pi> 25 Stephan Karczewski - Datenbanken 3. Relationales Modell Datenbanken Transformation EERM Relationales Modell: Exkurs – Anwendung mit einem Case-Tool (Power Designer): 2. Einfügen von Attributen bei dem Relationship-Typ (change to entity) entfällt! 3. Check Modell ( Überprüfen auf syntaktische Fehler) 4. (Übersetzen des Modells in das relationale Modell) a) Demonstration am Rechner b) Ergebnis: enthält die gleichen Informationen wie die Tabellendarstellung <pk> 26 Stephan Karczewski - Datenbanken 3. Relationales Modell Datenbanken Transformation EERM Relationales Modell: Aufgabe (m:1-Beziehung): Setzen Sie das folgende EERM in ein äquivalentes relationales Modell um. a) Schreiben Sie direkt die Relationenschemata auf, die entstehen. b) Gehen Sie auf Papier so vor, wie es mit dem Power Designer funktioniert. (0,1) Produkt (0,*) 5 Dekor Produkt (Produktnummer, Bezeichnung, Größe, Preis) Dekor (Bezeichnung, Foto) 5: ist versehen mit 27 Stephan Karczewski - Datenbanken 3. Relationales Modell Datenbanken Transformation EERM Relationales Modell: 5. Relationship-Typ: 1:1-Beziehung Vorbemerkung: Es können theoretisch alle Attribute in ein Relationenschema gebracht werden, d.h. aus 2 Entity-Typen wird 1 Relationenschema. Diese Variante ist jedoch praktisch nicht sinnvoll, da es aus Anwendungssicht gute Gründe gegeben hat, zwei Entity-Typen zu erstellen. Ansonsten geht man wiefolgt vor: • Die beteiligten Entity-Typen werden zunächst wie zuvor behandelt. • Der Relationship-Typ erhält kein eigenes Relationenschema. • Eines der beiden Relationenschemata wird um eine Spalte ergänzt. Diese Spalte erhält den Namen des Primärschlüssel der anderen Relation und wird zum Fremdschlüssel. Bei der 1:1-Beziehung ist es egal welche der beiden Relationen welche Rolle übernimmt. Zusammengefasst: Es entstehen zwei Relationenschemata. Diese sind über die Schlüssel/Fremdschlüssel-Beziehung miteinander verbunden, die durch Ergänzung um ein Attribut in einer der Relationen entsteht. 28 Stephan Karczewski - Datenbanken 3. Relationales Modell Datenbanken Transformation EERM Relationales Modell: 6. Relationship-Typ: Rekursive Beziehungen • Die beteiligten Entity-Typen werden wie zuvor behandelt. • Bei m:n-Beziehungen wird der Relationship-Typ zu einem eigenen Relationenschema, bei m:1-Beziehungen ist dies nicht notwendig. • Die Attribute des Relationship-Typs werden wie bei nicht-rekursiven Beziehungen gehandhabt.. • Da die beteiligten Entity-Typen identisch sind, wird auch nur ein Relationenschema daraus erstellt. Zusammengefasst: Es entstehen zwei Relationenschemata bei einer m:n-Beziehung und nur eines bei einer m:1-Beziehung. Die Attribute und Schlüssel-/Fremd-Schlüssel werden so behandelt wie bei Beziehungen ohne Rekursion. 29 Stephan Karczewski - Datenbanken 3. Relationales Modell Datenbanken Transformation EERM Relationales Modell: Relationship-Typ: Rekursive Beziehungen Rollen Teilprodukt Produkt (0,*) (0,*) Produktgruppe m:n 4 4: besteht aus NummerO und NummerU werden zur Unterscheidung der beiden Nummern eingeführt. Sie sind jeweils Fremdschlüssel zu Nummer in Produkt. 30 Stephan Karczewski - Datenbanken Produkt: Besteht_aus: Nummer Bezeichnung NummerO Funktion NummerU Anzahl 3. Relationales Modell Datenbanken Transformation EERM Relationales Modell: Relationship-Typ: Rekursive Beziehungen Rollen Teilprodukt Produkt (0,1) (0,*) Produktgruppe m:1 4 NummerU wird zur Unterscheidung von Nummer eingeführt. Sie ist praktisch Fremdschlüssel zu Nummer in Produkt. Durch diese Konstruktion kann eine Hierarchie der Produkte (nichts anderes ist die rekursive 1:n-Beziehung) dargestellt werden. 31 Stephan Karczewski - Datenbanken 4: besteht aus Produkt: Nummer Bezeichnung Funktion NummerU 3. Relationales Modell Datenbanken Transformation EERM Relationales Modell: Exkurs – Anwendung mit einem Case-Tool (Power Designer): 1. Modellierung einer rekursiven m:n-Beziehung (Entity-Typ + Attribute): a) Demonstration am Rechner b) Ergebnis („Krähenfußdiagramm“): 0 * 1 32 Stephan Karczewski - Datenbanken 3. Relationales Modell Datenbanken Transformation EERM Relationales Modell: Exkurs – Anwendung mit einem Case-Tool (Power Designer): 33 2. Einfügen von Attributen bei dem Relationship-Typ (change to entity) entfällt! 3. Check Modell ( Überprüfen auf syntaktische Fehler) 4. (Übersetzen des Modells in das relationale Modell) a) Demonstration am Rechner b) Ergebnis: enthält die gleichen Informationen wie die Tabellendarstellung Stephan Karczewski - Datenbanken 3. Relationales Modell Datenbanken Transformation EERM Relationales Modell: Aufgabe (rekursive Beziehung): Fach (0,1) (0,*) Setzen Sie das folgende EERM in ein äquivalentes relationales Modell um. a) Schreiben Sie direkt die Relationenschemata auf, die entstehen. b) Gehen Sie auf Papier so vor, wie es mit dem Power Designer funktioniert. c) Füllen Sie die Relation mit den folgenden Inhalten Fach: FNr FName SWS CP 1 Pr1 4 5 2 Pr2 4 5 3 DB 4 5 4 Fach (FNr, FName, SWS, CP) 4: ist Voraussetzung für und den Bedingungen Tupel mit FNr 1 ist Voraussetzung für Tupel mit FNr 2, Tupel mit FNr 2 ist Voraussetzung für Tupel mit FNr 3: 34 Stephan Karczewski - Datenbanken 3. Relationales Modell Datenbanken Transformation EERM Relationales Modell: 7. Relationship-Typ: mehrstellige Beziehung (n-stellig) • Die beteiligten Entity-Typen werden wie zuvor behandelt. • Der Relationship-Typ wird zu einem eigenen Relationenschema, bei Mehrstelligkeit i.d.R. unabhängig von den Kardinalitäten. • Die Attribute des Relationship-Typs werden zu Attributen des neuen Relationenschemas. • Zusätzlich werden die Primärschlüssel-Attribute aller (also mehr als 2) beteiligten EntityTypen als Attribute des neuen Relationenschemas hinzugefügt, wobei gilt: Diese Primärschlüssel-Attribute bilden gemeinsam den Primärschlüssel des neuen Relationenschemas. Diese sind gleichzeitig Fremdschlüssel bezogen auf das Relationenschema, aus dem sie hervorgegangen sind. Zusammengefasst: Es entstehen n+1 Relationenschemata (n = Anzahl der beteiligten EntityTypen, eines für den Relationship-Typ und n für die Entity-Typen. Diese sind über Schlüssel/Fremdschlüssel-Beziehungen miteinander verbunden. Hierzu werden die SchlüsselAttribute der beteiligten Entity-Typen in das n+1. Relationenschema übertragen und dort zum Primärschlüssel. 35 Stephan Karczewski - Datenbanken 3. Relationales Modell Datenbanken Transformation EERM Relationales Modell: Aufgabe (mehrstellige Beziehung): Setzen Sie das folgende EERM in ein äquivalentes relationales Modell um. Schreiben Sie direkt die Relationenschemata auf, die entstehen. Aufgabe: Setzen Sie das folgende ERM in Relationen um. Spediteur Händler (1,*) (1,*) 1 (1,*) Rohstoff 1: liefert (Bestelldatum, Menge) 36 Stephan Karczewski - Datenbanken 3. Relationales Modell Datenbanken Transformation EERM Relationales Modell: Lösung zur Aufgabe (mehrstellige Beziehung): 37 Händler Name Adresse Firmenbezeichnung Spediteur Name Adresse Firmenbezeichnung Rohstoff: Bezeichnung Liefert: HName Stephan Karczewski - Datenbanken Art SName Bezeichnung Bestelldatum Menge 3. Relationales Modell Datenbanken Transformation EERM Relationales Modell: Relationship-Typ: Generalisierung/Spezialisierung 8. Zwei Varianten der Realisierung bei der Generalisierung/ Spezialisierung sind möglich: 1. 2. 38 Sowohl für den Generalisten als auch für die Spezialisten wird jeweils ein Relationenschema erstellt. Diese Variante ist sinnvoll bei partieller Spezialiserung und wenn eine Überlappung der Spezialisten möglich ist. Vorteil dieser Variante: keine Redundanzen. Jedes Relationen-Schema erhält alle Attribute, die der korrespondierende Entity-Typ bereits hatte. Jeder Spezialist erhält den Primärschlüssel des Generalisten als zusätzliches Attribut. Dieser ist Fremdschlüssel zu der Generalisten-Relation. Er kann auch gleichzeitig als Primärschlüssel beim Spezialisten genutzt werden (muss nicht). Nur für die Spezialisten wird jeweils ein Relationenschema erstellt. Diese Variante ist nur möglich, wenn der Generalist eine abstrakte Klasse darstellt bzw. für den Generalisten keine Tupel existieren, was bedeutet, dass eine totale Spezialisierung vorliegen muss. Bei Überlappung liegt Redundanz vor. Vorteil bei der Abfrage: Nur eine Relation wird benötigt. Jedes Relationen-Schema (nur die Spzialisten) erhält alle Attribute, die der korrespondierende Entity-Typ bereits hatte. Jeder Spezialist erhält zusätzlich alle Attribute des Generalisten-Entity-Typs. Stephan Karczewski - Datenbanken 3. Relationales Modell Datenbanken Transformation EERM Relationales Modell: Geschäftspartner Relationship-Typ: Generalisierung/Spezialisierung (Beispiel) O Variante 1: Veranstalter Für alle Spezialisten und den Generalisten werden jeweils Relationenschemata erstellt. Die Spezialisten „erben“ den Primärschlüssel des Generalisten. Bei Abfragen zu allen Attributen müssen 2 Relationen angesprochen werden. 39 Geschäftspartner: Geschaeftspartner-Nr Veranstalter: Geschaeftspartner-Nr Kunde: Geschaeftspartner-Nr Stephan Karczewski - Datenbanken Kunde Generalist: Geschäftspartner (Geschäftspartner-Nr, Adresse, Telefonnummer) Spezialisten: Veranstalter (Bezeichnung, Typ) Kunde (Name) Adresse Telefonnummer Bezeichnung Typ Name 3. Relationales Modell Datenbanken Transformation EERM Relationales Modell: Geschäftspartner Relationship-Typ: Generalisierung/Spezialisierung (Beispiel) O Veranstalter Variante 2: Nur für die Spezialisten werden RelationenSchemata erstellt. Diese übernehmen alle Attribute des Generalisten. Bei overlapping entstehen Redundanzen (Adresse, Telefonnummer). 40 Kunde Generalist: Geschäftspartner (Geschäftspartner-Nr, Adresse, Telefonnummer) Spezialisten: Veranstalter (Bezeichnung, Typ) Kunde (Name) Veranstalter: Geschaeftspartner-Nr Adresse Telefonnummer Bezeichnung Kunde: Geschäftspartner-Nr Adresse Telefonnummer Name Stephan Karczewski - Datenbanken Typ 3. Relationales Modell Datenbanken Transformation EERM Relationales Modell: Aufgabe (Generalisierung/Spezialisierung): Setzen Sie folgende Generalisierung/Spezialisierung in ein äquivalentes relationales Modell um. 41 a) Wählen Sie Variante 1. b) Wählen Sie Variante 2. Generalist: Dokument (DokumentenID, Titel, Standort) Spezialisten: Buch (ISBN, Autor) Zeitschrift (Jahrgang, ISSN) Stephan Karczewski - Datenbanken 3. Relationales Modell Datenbanken Transformation EERM Relationales Modell: Aufgabe : Quelle: Stefan Rühl 42 Stephan Karczewski - Datenbanken 3. Relationales Modell Datenbanken Transformation EERM Relationales Modell: Lösung: Building (ID, Name) Janitor (ID, Name, Phone) Room (Number, Size, Building_ID, Janitor_ID) Is-Responsible-For (Janitor_ID, Building_ID, Position) Quelle: Stefan Rühl 43 Stephan Karczewski - Datenbanken 3. Relationales Modell