Das Entity Realtionship Modell
Transcrição
Das Entity Realtionship Modell
Online-Kurs 'Datenbanken und Datenmodellierung' Das Entity-Relationship-Modell Print-Version - 15.04.2002 (c) StR S. Winter - Universität Passau Inhaltsverzeichnis 1 1.1 1.2 1.3 1.4 2 2.1 2.2 2.3 2.4 2.5 2.6 3 3.1 3.2 3.3 4 4.1 4.2 5 5.1 5.2 5.3 5.4 6 6.1 6.2 6.3 6.4 6.5 6.6 6.7 7 7.1 7.2 7.3 8 8.1 8.2 8.3 8.4 9 9.1 9.2 Allgemeine Hinweise zum Abschnitt ER-Modell Lernziele Begriffe Vorgehensweise bei der Bearbeitung Material Grundlagen des ER-Modells Das Entity-Relationship-Modell Die Idee des ER-Modells Die graphische Darstellung Rollennamen Der Begriff der Domäne Übungen Schlüssel Identifizierung von Entities Superschlüssel, Schlüsselkandidat, Primärschlüssel Übungen Mengenschreibweise von Entity- und Relationship-Typen Mengenschreibweise für Entity-Typen Mengenschreibweise für Relationship - Typen Relationship-Typen als Teilmengen kartesischer Produkte Konkatenation von Entities Das kartesische Produkt von Entity-Typen Relationship-Typ als Teilmenge eines kartesischen Produkts Übungen Funktionalität bei zweistelligen Relationship-Typen Funktionalität (Kardinalität) bei 2-stelligen Relationship-Typen 1:1 - Relationship-Typen n:1 - Relationship-Typen 1:n - Relationship-Typen n:m - Relationship-Typen Die (min, max) - Notation Übungen Mehrstellige Relationship-Typen Mehrstellige Relationship-Typen Funktionalitäten für mehrstellige Relationship-Typen Übungen Generalisierung und Spezialisierung Generalisierung Spezialisierung Die isa-Beziehung Übungen Schwache Entity-Typen Existenzabhängigkeit Schwache Entity-Typen 9.3 Diskriminator und Schlüssel schwacher Entity-Typen 9.4 Darstellung im ER-Modell 9.5 Mehrfache Abhängigkeiten 9.6 Übungen 10 Der Entwurf eines ER-Modells 10.1 Vorschlag für die Vorgehensweise 10.2 Übungen 1 Allgemeine Hinweise zum Abschnitt ER-Modell Dieser Abschnitt behandelt die Grundlagen des Entity-Relationship-Modell (ER-Modell) sowie den Entwurf eines ER-Modells. 1.1 Lernziele Nach dem Studium dieses Abschnittes sollten Sie Folgendes 1. kennen ❍ Grundlagen des ER-Modells ❍ Einordnung des ER-Modells innerhalb des Datenbankentwurfes ❍ Schlüssel ❍ Funktionalität, Kardinalität Prinzip der Generalisierung und Spezialisierung ❍ ❍ Schwache bzw. existenzabhängige Entity-Typen 2. durchführen können ❍ Erstellung eines ER-Modells zu einer vorgegebenen 'Miniwelt' ❍ Festlegung eines Primärschlüssels bei den Entity-Typen 1.2 Begriffe Zudem sollten Sie die Bedeutung folgender Begriffe kennen: ● Entity-Typ , Entity , Relationship-Typ , Relationship , Attribut , Attributwert ● Superschlüssel , Schlüsselkandidat , Primärschlüssel ● Funktionalität ● Generalisierung , Spezialisierung ● Existenzabhängigkeit , schwacher Entity-Typ , Diskriminator 1.3 Vorgehensweise bei der Bearbeitung Das Material sollte in der vorgegebenen Reihenfolge abgearbeitet werden. 1.4 Material ● Printversion des Abschnittes " ER-Modell " 2 Grundlagen des ER-Modells 2.1 Das Entity-Relationship-Modell Das Entity-Relationship-Modell ist ein Datenmodell , das sich gut zur Darstellung des konzeptuellen Datenbankschemas für relationale Datenbanksysteme eignet. Dazu steht eine standardisierte graphische Notation in Form des Entity-Relationship-Diagramms (ER-Diagramm) zur Verfügung. Sowohl der Vorgang als auch das Resultat der Modellierung wird Entity-Relationship-Entwurf (ER-Entwurf) genannt. Das Resultat der Modellierung wird auch oft - ebenso wie das zugrundeliegende Datenmodell - als Entity-Relationship-Modell (ER-Modell) des Anwendungsbereichs bezeichnet. Vorteil des ER-Entwurfs ist es, dass er systematisch in eine Menge von Relationenschemata überführt werden kann, die die Grundlage für die Tabellen einer relationalen Datenbank bilden. Bemerkung: Datenmodelle zur konzeptuellen Modellierung beschreiben nur die Struktur der Daten und verfügen im Allgemeinen nicht über Operatoren zur Datenmanipulation. 2.2 Die Idee des ER-Modells 2.2.1 Entity, Relationship, Attribut und Attributwert Das ER-Modell geht davon aus, dass sich die betrachtete Miniwelt durch Objekte (Entities) und Beziehungen zwischen diesen Objekten (Relationships) beschreiben lässt. Entities und Relationships können durch Attribute näher charakterisiert werden. Dabei handelt es sich um Eigenschaften, die für jedes Entity bzw. jede Relationship durch entsprechende Werte, die Attributwerte, konkretisiert werden. Beispiel: In der Miniwelt Schule gibt es beispielsweise die Lehrerin Thatcher, Geburtsjahr 1970, wohnhaft in Berlin. Diese ist Klassenleiterin der Klasse 11, dessen Klassenzimmer die Raumnummer 202 hat. Lehrerin Thatcher und die Klasse 11 sind Objekte. Eine Beziehung zwischen diesen beiden Objekten besteht darin, dass Frau Thatcher die Klassenleitung dieser Klasse hat. 2.2.2 Entity-Typ, Relationship-Typ, Attribut Ein Entity-Typ fasst eine Menge von gleichartigen Entities, d.h. Entities, die durch gleiche Attribute charakterisiert sind, zusammen. Analog entspricht ein Relationship-Typ einer Menge gleichartiger Relationships. Beispiel: In der Miniwelt Schule könnte sich das folgendermaßen darstellen: Bemerkung: 1. Entity-Typen müssen nicht disjunkt sein, d.h. im Allgemeinen kann ein Entity Element mehrerer Entity-Typen sein. 2. Relationship-Typen stellen - wie angesprochen - Beziehungen zwischen Entity-Typen her. Die Stelligkeit eines Relationship-Typen gibt an, zwischen wie vielen Entity-Typen eine Beziehung hergestellt wird. Am häufigsten sind 2-stellige Relationship-Typen. 3. Ein Entity-Typ kann natürlich an mehreren Relationship-Typen beteiligt sein. 4. Entity-Typ, Relationship-Typ und Attribut entsprechen der Schemaebene, während Entity, Relationship und Attributwert Instanzen darstellen. 5. Konkrete Entities, Relationships und Attributwerte spielen in der Regel beim ER-Entwurf keine Rolle, weil die Modellierung auf Schemaebene stattfindet. Beispiel: ● Beispiel zu Bemerkung 1: Die Entity-Typen Lehrkraft und Erziehungsberechtigter sind nicht disjunkt. Eine Lehrkraft kann gleichzeitig Erziehungsberechtige(r) sein. ● Beispiel zu Bemerkung 3: Eine Lehrkraft kann einerseits eine Klassenführung, andererseits eine Fachbetreuung ausüben. Die Situation kann durch ❍ die Entity-Typen Lehrkraft, Klasse und Fach und ❍ die Relationship-Typen hat_Klassenleitung_in (Beziehung zwischen Lehrkraft und Klasse) und hat_Fachbetreuung_in (Beziehung zwischen Lehrkraft und Fach) modelliert werden. Der Entity-Typ Lehrkraft ist an beiden Beziehungen beteiligt. 2.3 Die graphische Darstellung Entity-Typen werden durch Rechtecke , Relationship-Typen durch Rauten und Attribute durch Ovale dargestellt. Der zugehörige Name wird jeweils innerhalb der Figur angegeben. Die Rauten der Relationship-Typen werden mit den beteiligten Entity-Typen durch Kanten verbunden. Die Attribute werden den Entity-Typen ebenfalls durch Kanten zugeordnet. Beispiel: Die graphische Umsetzung des obigen Beispiels hat damit folgende Form: Ist ein Entity-Typ an mehreren Relationship-Typen beteiligt, ist dieser Entity-Typ dementsprechend mit mehreren Relationship-Typen durch Kanten verbunden. Beispiel: Lehrkräfte können sowohl eine Klassenleitung sowie eine Fachbetreuung ausüben. Ein mögliches ER-Modell zeigt folgendes Bild Attribute von Relationship-Typen werden wie Attribute von Entity-Typen grafisch dargestellt. Beispiel: Die Wertigkeit einer Fachbetreuung ist ein Attribut des Relationship-Typen hat_Fachbetreuung_in. 2.4 Rollennamen Um die durch einen Relationship-Typ verbundenen Entity-Typen genauer charakterisieren zu können, können ihnen Rollennamen zugeordnet werden. Beispiel: Gegeben sei der Entity-Typ Person. Die Beziehung Elternteil - Kind kann durch folgenden Relationship-Typen beschrieben werden: Bemerkung: Wie das obige Beispiel zeigt, kann ein Entity-Typ mit sich selbst in Beziehung gesetzt werden. 2.5 Der Begriff der Domäne Entity- bzw. Relationship-Typen werden durch eine geeignete Auswahl von Attributen beschrieben. Die zulässigen Attributwerte werden je Attribut durch eine vorgegebene Wertemenge, die Domäne, festgelegt. Beispiel: Den Attributen des Entity-Typs Lehrkraft können beispielsweise folgende Domänen zugrundeliegen: Attribut Domäne Name STRING PersNr INTEGER > 0 Wohnort STRING Geschlecht {'w', 'm'} Geburtsjahr INTEGER > 1900 Domänen können ● extensional, d.h. durch Aufzählung aller zulässigen Werte, oder ● intensional, d.h. durch Angabe allgemein bekannter Mengen, wie INTEGER für ganze Zahlen, STRING für Zeichenreihen usw., die durch Bedingungen, wie INTEGER > 0, modifiziert werden können, definiert sein. Beispiel: Im obigen Beispiel ist die Domäne des Attributs Geschlecht extensional definiert, alle anderen Domänen sind intensional definiert. Bemerkung: Die Festlegung der Domänen kann bei der Erstellung des ER-Modells erfolgen. Dies ist vor allem dann notwendig, wenn sich bereits bei der Analyse der Miniwelt spezielle Anforderungen an bestimmte Domänen ergeben. Sehr oft werden die Domänen aber erst bei der Entwicklung des Relationenmodells festgelegt. 2.6 Übungen Aufgabe: Welche Entity- und Relationship-Typen sind in der Miniwelt Schule vorstellbar? Lösungsvorschlag: ● Entity-Typen: Lehrkraft, Schueler, Klasse, Fach, Raum, Personal, ... ● Relationship-Typen: hat_Fachbetreuung_in, hat_Lehrbefaehigung_in, hat_Stundenplan, ist_Fachlehrkraft_von, gehoert_zu_Klasse, ... Aufgabe: Erstellen Sie ein ER-Modell für folgende Situation: Einige Lehrkräfte sind Vorgesetzte der anderen Lehrkräfte. Lösungsvorschlag: Es ist also möglich, dass an einem Relationship-Typ nur ein einziger Entity-Typ beteiligt ist. Gegeben ist folgende Ausgangssituation: In einer Firma gibt es Arbeitnehmer, die Maschinen bedienen. Außerdem gibt es Arbeitnehmer, die Vorgesetzte sind. (Attribute sollen hier vernachlässigt werden.) Aufgabe: Welche Entity- bzw. Relationship-Typen gibt es? Lösungsvorschlag: ● Entity-Typen: Arbeitnehmer, Maschinen ● Relationship-Typen: ist_Vorgesetzter_von, bedient Aufgabe: Zeichnen Sie das ER-Modell für die Situation. Lösungsvorschlag: 3 Schlüssel 3.1 Identifizierung von Entities Die Wahl der Attribute eines Entity-Typs muss derart erfolgen, dass jedes Entity dieses Entity-Typen eindeutig durch seine Attributwerte identifizierbar ist. Gegebenenfalls müssen weitere Attribute hinzugenommen oder vorhandene Attribute stärker differenziert werden. Sehr oft werden zu diesem Zweck "künstliche" Unterscheidungsmerkmale eingeführt. Beispiel: Für den Entity-Typ Lehrkraft seien folgende zwei Möglichkeiten vorgegeben: Im linken Fall kann es bei der Identifizierung der Entities schnell zu Problemen kommen, da an einer Schule durchaus zwei Lehrkräfte mit identischen Daten bzgl. Name, Wohnort, Geschlecht und Geburtsjahr unterrichten können. Durch Hinzunahme des Attributs PersNr ist aber eine eindeutige Identifizierung möglich. Dabei kann die Identifzierung des Entities grundsätzlich über die Kombination aller ihrer Attributwerte erfolgen. Der Wert des Attributs PersNr alleine ist aber offensichtlich auch ausreichend. 3.2 Superschlüssel, Schlüsselkandidat, Primärschlüssel Obige Überlegung führt zur Unterscheidung von Superschlüssel, Schlüsselkandidat und Primärschlüssel von Entity - Typen. 1. Jede Teilmenge der Attributmenge eines Entitytyps, anhand deren Wertkombination die Entities dieses Typs identifizierbar sind, heißt Superschlüssel dieses Entity-Typs. 2. Ein minimaler Superschlüssel, d.h. ein Superschlüssel mit einer minimalen Menge von Schlüsselattributen, heißt Schlüsselkandidat. Minimale Menge bedeutet dabei, dass aus dieser Menge kein Attribut weggelassen werden kann, ohne die Superschlüsseleigenschaft der Menge zu zerstören. 3. Einer der Schlüsselkandidaten eines Entity-Typs wird beim ER-Entwurf als Primärschlüssel ausgewählt und dient dann zur Identifizierung von Entities. Beispiel: In der Schulverwaltung wird eine Klasse durch die Attribute Name und Klassenzimmer festgelegt. Jede Klasse hat dabei ihr eigenes Klassenzimmer- Superschlüssel: Schlüsselkandidaten: Primärschlüssel: ● {Name, Klassenzimmer} ● {Name} ● {Klassenzimmer} ● {Name} ● {Klassenzimmer} je nach Festlegung ● {Name} oder ● {Klassenzimmer} Bemerkung: Zu einem Entity-Typen kann es mehrere Schlüsselkandidaten geben. Dabei ist es durchaus möglich, dass diese Attributmengen verschieden groß sind. Beispiel: Schüler sind in unserer Schulverwaltung eindeutig durch Angabe des Eintrittsjahres und der laufenen Nummer charakterisiert. Die zweielementige Attributmenge {Eintrittsjahr, Nr} eignet sich daher als Schlüsselkandidat des Entity-Typen Schueler. Führt man zusätzlich für die Schüler Personalnummern ein, so ist die einelementige Menge {PersNr} ebenfalls ein Schlüsselkandidat. Bemerkung: Die Wahl der Schlüssel, insbesondere der Primärschlüssel, hängt natürlich auch vom betrachteten Zeitraum oder dem Anwendungsbereich ab. Bei beschränktem Zeitraum bzw. Anwendungsbereich reicht in der Regel oft ein "kleiner" Primärschlüssel, d.h.ein Primärschlüssel, der in einem erweiterten Zeitraum oder Anwendungsbereich die Kriterien eines Superschlüssels nicht erfüllen würde. Beispiel: In dem oben skizzierten Beispiel ist die Wahl des Attributs Name bzw. Klassenzimmer als Primärschlüssel ausreichend, da davon ausgegangen werden kann, dass innerhalb einer Schule der Klassenname bzw. das entsprechende Klassenzimmer nur einmal existiert. Würde die Schulverwaltung aber in eine übergeordnete Schulverwaltung integriert, müsste der Primärschlüssel eventuell neu definiert werden, da dann durchaus zwei Klassen mit gleichem Namen vorkommen können. Bemerkung: ● Statt "Superschlüssel" wird manchmal der Begriff "Schlüssel" verwendet. Oft wird auch der Primärschlüssel einfach als Schlüssel (Key) bezeichnet. ● Die Entscheidung für einen bestimmten Schlüsselkandidaten als Primärschlüssel geschieht während der Modellierung des Anwendungsbereiches. ● Im Abschnitt über das Relationenmodell wird ebenfalls auf Schlüssel eingegangen. Primärschlüssel werden im ER-Modell durch Unterstreichung gekennzeichnet. ● 3.3 Übungen Aufgabe: Welche künstlichen Unterscheidungsmerkmale kennen Sie aus dem täglichen Leben? Lösungsvorschlag: ● Ausweisnummern ● Bestellnummern ● Bankleitzahlen ● Kontonummern ● usw. Firmenmitarbeiter werden durch den Entity-Typ Angestellte mit den Attributen PersNr, Name und Einkommen dargestellt. Aufgabe: Welche Superschlüssel und Schlüsselkandidaten gibt es? Lösungsvorschlag: ● Superschlüssel: {PersNr, Name, Einkommen}, {PersNr, Name}, {PersNr, Einkommen}, {PersNr} ● Schlüsselkandidaten: {PersNr} Betrachten Sie zu dem Entitytyp Professordie folgenden möglichen Attribute:Vorname, Name, Fachgebiet, Status, Zimmer, Telefon und PersNr. Welche Schlüssel sind im Folgenden angegeben? Aufgabe: {Name, Telefon} Lösungsvorschlag: Superschlüssel, da die Zuordnung Telefon - Professor eindeutig ist. Aufgabe: {Zimmer} Lösungsvorschlag: Superschlüssel, Schlüsselkandidat, eventuell Primärschlüssel. (Jede Professorin bzw. jeder Professor hat ein eigenes Büro) Aufgabe: {Name, Vorname} Lösungsvorschlag: kein Schlüssel, da Professoren mit gleichem Vornamen und Namen existieren können. Aufgabe: Wie stellt sich für die drei vorgegebenen Attributmengen die Situation bzgl. der Schlüssel dar, wenn nicht nur die Professorenschaft einer Hochschule, sondern die Professorenschaft eines Landes betrachtet wird? Lösungsvorschlag: {Name, Telefon} bleibt ein Superschlüssel, da eine Telefonnummer landesweit nur einmal vergeben wird. Das Attribut Zimmer ist weder Schlüsselkandidat noch Superschlüssel, da nicht auszuschließen ist, dass es an verschiedene Hochschulen gleiche Zimmernummern gibt. {Name, Vorname} ist kein Schlüssel, da es aufgrund der erweiterten Anzahl der Professoren sehr wahrscheinlich ist, dass Hochschullehrer mit identischem Namen und Vornamen existieren. 4 Mengenschreibweise von Entity- und Relationship-Typen Die ER-Entwurf ist auf der Schema-Ebene angesiedelt. Zur Angabe der Instanz eines Entity- bzw. Relationship-Typen nutzt man die Mengenschreibweise. 4.1 Mengenschreibweise für Entity-Typen Ein Entity-Typ E ist eine Menge von Entities e 1 bis e n , es gilt also E = { e 1 , ..., e n }. Ein konkretes Entity wird durch die Liste der zugehörigen Attribut - Wert - Paare repräsentiert. Beispiel: Für der Entitytyp Lehrkraft gilt: Lehrkraft = { l 1 , ..., l 7 } mit l 1 = ((PersNr: 566), (Name: Schumann), (Geschlecht: w), (Wohnort: Passau), (Geburtsjahr: 1959)) l 2 = ((PersNr: 15), (Name: Neumann), (Geschlecht: m), (Wohnort: Passau), (Geburtsjahr: 1950)) l 3 = ((PersNr: 35), (Name: Rinser), (Geschlecht: w), (Wohnort: Passau), (Geburtsjahr: 1946)) l 4 = ((PersNr: 73), (Name: Zuse), (Geschlecht: m), (Wohnort: München), (Geburtsjahr: 1936)) l 5 = ((PersNr: 245), (Name: Gauß), (Geschlecht: m), (Wohnort: Passau), (Geburtsjahr: 1925)) l 6 = ((PersNr: 356), (Name: Thatcher), (Geschlecht: w), (Wohnort: Berlin), (Geburtsjahr: 1970)) l 7 = ((PersNr: 1344), (Name: Graf), (Geschlecht: w), (Wohnort: Berlin), (Geburtsjahr: 1957)) Für den Entity-Typ Klasse gilt: Klasse = { k 1, k 2 } mit k 1 = ((Name: 11), (Klassenzimmer: 202)) k 2 = ((Name: 5), (Klassenzimmer: 101)) 4.2 Mengenschreibweise für Relationship - Typen Ebenso können Relationship-Typen durch Mengen dargestellt werden. Die Relationships werden dabei durch Auflistung der Attribute und Attributwerte aller beteiligten Entities beschrieben. Beispiel: Die Relationship hat_Klassenleitung_in stellt eine Beziehung zwischen den Entity-Typen Lehrkraft und Klasse her. Bemerkung: Die Mengenschreibweise von Relationship-Typ ist zum Verständnis der (min, max) - Notation notwendig. 5 Relationship-Typen als Teilmengen kartesischer Produkte Relationship-Typen sind Mengen von Relationships. Relationships wiederum können als eine kombinierte Liste aller Attribut-Werte-Paare der beteiligten Entities dargestellt werden. Mathematisch kann damit ein Relationship-Typ als Teilmenge des kartesischen Produktes der beteiligten Entity-Typen gesehen werden. 5.1 Konkatenation von Entities Eine Kombination von Entities wird über den Begriff der Konkatenation definiert. Definition: Konkatenation von Entities Die Konkatenation e 1 * e 2 zweier Entities e 1 und e 2 ist die Liste der Attribut-Wert-Paare, die durch Hintereinanderschreiben der entsprechenden Listen für e 1 und e 2 entsteht. Beispiel: Für l 2 = ((PersNr: 15), (Name: Neumann), (Geschlecht: m), (Wohnort: Passau), (Geburtsjahr: 1950)) und k 2 = ((Name: 5), (Klassenzimmer: 101)) ergibt die Konkatenation l 2 * k 2 = ((PersNr: 15), (Name: Neumann), (Geschlecht: m), (Wohnort: Passau), (Geburtsjahr: 1950), (Name: 5), (Klassenzimmer: 101)) Die Konkatenation entspricht der Beziehung Lehrkraft Neumann hat die Klassenleitung der Klasse 5, ist damit also als Relationship des Relationship-Typen hat_Klassenleitung_in interpretierbar. Bemerkung: Analog wird die Konkatenation e 1 * ... * e n mehrerer Entities definiert. 5.2 Das kartesische Produkt von Entity-Typen Die Menge aller Konkatenationen der Entities zweier Entity-Typen E 1 und E 2 wird über das kartesische Produkt E 1 x E 2 beschrieben. Definition: Kartesisches Produkt von Entities Das kartesische Produkt E 1 x E 2 zweier Entity-Typen E 1 und E 2 ist definiert als die Menge aller möglichen Konkatenationen ihrer Elemente: E 1 x E 2 = { e 1 * e 2 | e 1 E 1 und e 2 E 2 } Bemerkung: Analog wird das kartesische Produkt E 1 x ... x E n mehrerer Entity-Typen definiert. Beispiel: Die Menge enthält alle möglichen Kombinationen der Entity-Typen Lehrkraft und Klasse. Anders ausgedrückt sind dies alle (theoretisch) möglichen Relationships des Relationship-Typen hat_Klassenleitung_in. Das kartesische Produkt der beteiligten Entity-Typen bildet also den Elementevorrat für den jeweiligen Relationship-Typen. 5.3 Relationship-Typ als Teilmenge eines kartesischen Produkts Jeder Relationship-Typ R zwischen gegebenen Entity-Typen E 1 , ..., E k kann als eine Teilmenge des kartesischen Produkts E 1 x ... x E k aufgefasst werden, d.h. R E 1 x ... x E k. Bei k beteiligten Entity-Typen heißt R k-stellig. Beispiel: Der Relationship-Typ hat_Klassenleitung_in ist 2-stellig. 5.4 Übungen Aufgabe: In einer Firma gibt es Angestellte, die Projekte bearbeiten. Angestellte sind Müller mit der PersNr. 3 und Meier mit der PersNr. 7. Müller ist am Projekt 'Datenbanksysteme' beteiligt, Meier ist Mitarbeiter in den Projekten 'Datenbanksysteme' und 'Softwareentwicklung'. Geben Sie ein geeignetes ER-Diagramm an. Lösungsvorschlag: Die Einführung der Projektnummer ermöglicht die eindeutige Indentifizierung der Projekte. Ist die Namensgebung der Projekte eindeutig, kann auch der Projektname als Primärschlüssel verwendet werden. Aufgabe: Geben Sie das kartesische Produkt Angestellter x Projekt an. Lösungsvorschlag: Angestellter x Projekt = { ((PersNr: 3), (Name: Müller), (ProNr: 1), (Name: Datenbanksysteme)), ((PersNr: 3), (Name: Müller), (ProNr: 2), (Name: Softwareentwicklung)),((PersNr: 7), (Name: Meier), (ProNr: 1), (Name: Datenbanksysteme)), ((PersNr: 7), (Name: Meier), (ProNr: 2), (Name: Softwareentwicklung)) } Aufgabe: Geben Sie eine geeignete Teilmenge dieses kartesischen Produkts an, die die in der Aufgabenstellung gegebene Situation beschreibt. Lösungsvorschlag: Die Relationship bearbeitet kann als Teilmenge des kart. Produktes interpretiert werden: bearbeitet = { ((PersNr: 3), (Name: Müller), (ProNr: 1), (Name: Datenbanksysteme)), ((PersNr: 7), (Name: Meier), (ProNr: 1), (Name: Datenbanksysteme)), ((PersNr: 7), (Name: Meier), (ProNr: 2), (Name: Softwareentwicklung)) } 6 Funktionalität bei zweistelligen Relationship-Typen 6.1 Funktionalität (Kardinalität) bei 2-stelligen Relationship-Typen Ein wichtiges Charakteristikum von 2-stelligen Relationship-Typen ist ihre Funktionalität oder Kardinalität. Dadurch wird zum Ausdruck gebracht, mit wie vielen Entities ein gegebenes Entity in Beziehung stehen kann. Bemerkung: Die Funktionalität muss beim Datenbankentwurf durch die Analyse der Rahmenbedingungen erkannt werden. Man unterscheidet die Funktionalitäten 1:1, n:1, 1:n und n:m und spricht dementsprechend von ● 1:1 - Relationship-Typen oder 1:1 - Beziehungen ● ● n:1 - Relationship-Typen oder n:1 - Beziehungen 1:n - Relationship-Typen oder 1:n - Beziehungen ● n:m - Relationship-Typen oder n:m - Beziehungen Beim ER-Modell wird die Funktionalität durch entsprechende Angabe von 1, n oder m an den grau unterlegten Stellen angegeben. Das ER-Diagramm ist folgendermaßen zu lesen: Einem Entity aus E 1 können höchstens y Entities aus E 2 zugeordnet werden bzw. Einem Entity aus E 2 können höchstens x Entities aus E 1 zugeordnet werden. x bzw. y wird mit '1' oder mit einem Buchstaben, meistens 'n' oder 'm', belegt. Dabei symbolisiert ● '1' höchstens eine Beziehung und ● 'n' bzw 'm' beliebig viele, d.h. keine, eine oder mehrere Beziehungen. Bemerkung: ● Ausgehend von der Mengenschreibweise für Relationship-Typen kann man die obige Beziehung auch folgendermaßen interpretieren: Der Relationship-Typ R enthält maximal y Tupel mit einem Entity des Entity-Typen E 1 bzw. maximal x Tupel mit einem Entity des Entity-Typen E 2. ● Die Lesart dieser Funktionalitätsdarstellung wird in der Literatur unterschiedlich gehandhabt. Man findet oft auch die umgekehrte Interpretation: Einem Entity aus E 1 werden höchstens x Entities aus E 2 zugeordnet bzw. einem Entity aus E 2 werden höchstens y Entities aus E 1 zugeordnet. Hier ist auf jeweilige Notation der jeweiligen Autors zu achten. In der Literatur findet sich auch eine graphische Darstellungsmöglichkeit für Funktionalitäten mit Hilfe von Pfeilen. ● 6.2 1:1 - Relationship-Typen Ein 2-stelliger Relationship R zwischen den Entity-Typen E 1 und E 2 hat die Funktionalität 1:1, falls ein Entity aus E 1 mit höchstens einem Entity aus E 2 über R in Beziehung stehen kann und umgekehrt. R heißt dann 1:1 Relationship-Typ. Definition: 1:1-Funktionalität Seien E 1 , E 2 Entity-Typen und R E 1 x E 2 ein Relationship-Typ. Weiterhin seien x und x' Entities von E 1 und y und y' Entities von E 2. R ist ein 1:1 - Relationship-Typ, falls gilt: ( x, y ) R und ( x, y' ) R y = y' ( x, y ) R und ( x', y ) R x = x' . und Beispiel: Der Relationship-Typ hat_Klassenleitung_in ist ein 1:1-Relationship-Typ, denn jede Klasse hat genau eine Lehrkraft als Klassenleitung und jede Lehrkraft hat höchstens eine Klassenleitung. Bemerkung: Als alternative graphische Darstellung der 1:1 Funktionalität findet man auch folgende Pfeildarstellung: 6.3 n:1 - Relationship-Typen Ein 2-stelliger Relationship R zwischen den Entity-Typen E 1 und E 2 hat die Funktionalität 1:n, falls ein Entity aus E 1 mit höchstens einem Entity aus E 2 , aber ein Entity aus E 2 mit beliebig vielen Entities aus E 1 über R in Beziehung stehen kann. R heißt dann n:1 - Relationship-Typ. Definition: n:1-Funktionalität Seien E 1 , E 2 Entity-Typen und R E 1 x E 2 ein Relationship-Typ. Weiterhin seien x ein Entity von E 1 und y und y' Entities von E 2.R ist ein n:1 - Relationship-Typ, falls gilt: ( x, y ) R und ( x, y' ) R y = y' Beispiel: Der Relationship-Typ gehoert_zu ist ein n:1-Relationship-Typ, d.h. gehoert_zu hat die Funktionalität n:1. Ein Schüler gehört zu genau einer Klasse, zu einer Klasse gehören aber mehrere Schüler. Bemerkung: Als alternative graphische Darstellung der n:1 Funktionalität findet man auch folgende Pfeildarstellung: 6.4 1:n - Relationship-Typen Ein n:1 - Relationship-Typ R zwischen E 1 und E 2 ist ein 1:n - Relationship-Typ zwischen E 2 und E 1 . Damit gilt Analoges zum vorherigen Abschnitt. 6.5 n:m - Relationship-Typen Ein 2-stelliger Relationship R zwischen den Entity-Typen E 1 und E 2 hat die Funktionalität n:m, falls ein Entity aus E 1 mit beliebig vielen Entities aus E 2 über R in Beziehung stehen kann und umgekehrt. Es gelten also keine Einschränkungen. R heißt dann n:m - Relationship-Typ. Beispiel: Der Relationship-Typ hat_Lehrbefaehigung_in ist ein n : m-Relationship-Typ, d.h. hat_Lehrbefaehigung_in hat die Funktionalität n:m. Bemerkung: Graphisch wird die n:m - Funktionalität wie folgt dargestellt: 6.6 Die (min, max) - Notation Bei der Verwendung der Funktionalität ist für einen Entity-Typen nur die maximale Anzahl der Beziehungen mit einem Relationship-Typen relevant. Falls diese Anzahl größer als eins ist, wird sie, ohne genauere Aussagen zu machen, als n oder m (d.h. beliebig viele) gesetzt. Die (min, max) - Notation erlaubt die Festlegung präziser Unter- und Obergrenzen. Damit kann also - im Gegensatz zur 1:1, 1:n oder n:m - Notation - auch die minimale Anzahl der Beziehungen festgelegt werden. Dazu wird für jeden an der Relationship-Typ R beteiligten Entity-Typ E i ein Zahlenpaar (min, max) angegeben. Damit wird ausgedrückt, dass jedes Entity von E i mindestens min-mal und höchstens max-mal in der Beziehung R steht. Im ER-Modell wird die (min, max) - Notation folgendermaßen verwendet: Bemerkung: ● Beachten Sie beim ER-Modell die unterschiedliche Platzierung der Funktionalitätsangaben in der x:y-Notation und der (min, max) - Notation. ● Oft kann die Obergrenze nicht festgelegt werden. In diesem Fall ersetzt man max durch einen Stern. ● Ein Relationship-Typ R kann als Menge von Tupeln aufgefasst werden, die aus den Entities der beteiligten Tupel aufgebaut werden. Die Markierung (min, max) bei einem Entity-Typen E gibt an, dass es mindestens min und höchstens max Tupel mit einem Entity von E gibt. Beispiel: Ein Fach (Wahl- oder Pflichtfach) hat 0 bis 2 Fachbetreuer. Theoretisch darf eine Lehrkraft beliebig viele Fachbetreuungen übernehmen. (Natürlich muss der Fachbetreuer immer die entsprechende Lehrbefähigung besitzen.) Diese Situation kann im ER-Modell mit Hilfe der (min, max)-Notation folgendermaßen dargestellt werden: (Aus Übersichtlichkeitsgründen wird bei den Entity-Typen jeweils nur ein Attribut verwendet.) Betrachtet man die Situation aus der Sicht der Mengenschreibweise für Relationship-Typen, so lässt sich die angegebene (min, max) - Funktionalität folgendermaßen interpretieren: Der Relationship-Typ hat_Fachbetreuung_in enthält Tupel, deren erste Komponente die Personalnummer der Lehrkraft und deren zweite Komponente den Fachnamen enthält. Wegen (0,2) darf es maximal zwei Tupel mit gleichem Fachnamen geben, wegen (0,*) aber beliebig viele Tupel mit gleichem Personalnummerwert. Ohne Verwendung der (min,max)-Notation wäre die Funktionalität weniger aussagekräftig: 6.7 Übungen Aufgabe: Geben Sie die Funktionalität folgender Relationship-Typen an: 1. Mitarbeiter gehoert_zu Abteilung 2. Mitarbeiter arbeitet_in Projekt 3. Mitarbeiter ist_Abteilungsleiter_von Abteilung Lösungsvorschlag: 1. n:1, denn ein Mitarbeiter gehört zu höchstens einer Abteilung, zu einer Abteilung gehören aber mehrere Mitarbeiter. 2. n:m, denn Mitarbeiter können in mehreren Projekten gleichzeitig arbeiten, ein Projekt wird in der Regel von mehr als einem Mitarbeiter durchgeführt. 3. 1:1, denn eine Abteilung hat genau eine Abteilungsleiterin bzw. einen Abteilungsleiter Aufgabe: Eine Schülerin hat viele CDs, die sie auch an Freunde ausleiht. Damit sie immer weiß, wem sie welchen Tonträger gegeben hat, möchte sie ein Datenbanksystem einsetzen. Geben Sie möglich Entity- und Relationship-Typen an. Lösungsvorschlag: ● Entity-Typ: CD, Freund ● Relationship-Typ: ausgeliehen_an Aufgabe: Geben Sie die Funktionalität (x:y-Notation) für die in der vorherigen Aufgabe gewählten Relationship-Typen an? Lösungsvorschlag: ausgeliehen_an: n:1, denn ein Tonträger kann nur einmal ausgeliehen werden, ein Freund kann aber mehrere CDs gleichzeitig ausleihen. Aufgabe: Zeichnen Sie ein entsprechendes ER-Diagramm! (Attribute können vernachlässigt werden.) Lösungsvorschlag: Aufgabe: Flüsse können in einem Meer münden. Erstellen Sie ein ER-Modell und geben Sie die Funktionalität in (x:y) und (min, max)-Notation an. Lösungsvorschlag: Es gilt: Ein Fluss mündet maximal in ein Meer. In ein Meer mündet mindestens ein Fluss, in der Regel aber mehrere Flüsse. Angabe der Funktionalität Angabe der (min, max) - Notation 7 Mehrstellige Relationship-Typen 7.1 Mehrstellige Relationship-Typen Ein Relationship-Typ R ist eine Teilmenge des kartesisches Produkts der beteiligten Entity-Typen. Sind am Relationship-Typ mehr als zwei Entity-Typen beteiligt, spricht man von mehrstelligen Relationship-Typen. Für einen n-stelligen Relationship-Typ gilt: R E 1 x ... x E n Bemerkung: Dreistellige Relationship-Typen kommen bei ER-Modellierungen noch häufig vor, höherstellige Beziehungen findet man dagegen selten. Beispiel: Im Schulverwaltungsbeispiel gibt es den dreistelligen Relationship-Typ ist_Fachlehrkraft_von. Dadurch wird eine Beziehung zwischen den Entity-Typen Lehrkraft, Fach und Klasse modelliert. Das ER-Modell hat folgende Gestalt: Es gilt: ist_Fachlehrkraft_von Lehrkraft x Klasse x Fach. Unter Beteiligung der Entities ● ((PersNr: 35), (Name: Rinser), (Geschlecht: w), (Wohnort: Passau), (Geburtsjahr: 1946)) ● ((Name: 5), (Klassenzimmer: 101)) ● ((Name: Deutsch), (Pflichtfach: ja)) Lehrkraft , Klasse und Fach gibt es die Relationship ((PersNr: 35), (Name: Rinser), (Geschlecht: w), (Wohnort: Passau), (Geburtsjahr: 1946), (Name: 5), (Klassenzimmer: 101),(Name: Deutsch), (Pflichtfach: ja)) ist_Fachlehrkraft_von. Dadurch wird ausgedrückt, dass Frau Rinser die Klasse 5 im Fach Deutsch unterrichtet. 7.2 Funktionalitäten für mehrstellige Relationship-Typen Die Begriff der Funktionalität kann auch auf mehrstellige Beziehungen R E 1 x ... x E n übertragen und erweitert werden. Bei mehrstelligen Relationship-Typen wird damit zum Ausdruck gebracht, mit wie vielen Entities e i des Entity-Typen E i das Entity-Tupel (e 1 , ..., e i - 1 , e i + 1 , ..., e n ) mit e 1 E 1 , ...,e n E n in Beziehung steht. Der Relationship-Typ wird im ER-Modell wieder entsprechend annotiert. Der Wert "1" symbolisiert wieder höchstens eine Zuordnung und ein Buchstabe beliebig viele Zuordnungen. Für den dreistelligen Relationship-Typen R E1xE2xE3 bedeutet dies konkret: ● Einem Tupel (e 1 , e 2 ) mit e 1 aus E 1 und e 2 aus E 2 werden höchstens z Entities e 3 aus E 3 zugeordnet. ● Einem Tupel (e 1 , e 3 ) mit e 1 aus E 1 und e 3 aus E 3 werden höchstens y Entities e 2 aus E 2 zugeordnet. ● Einem Tupel (e 2 , e 3 ) mit e 2 aus E 3 und e 3 aus E 3 werden höchstens x Entities e 1 aus E 1 zugeordnet. R hat damit die Funktionalität x:y:z Beispiel: Die Relationship hat_Lehrbefaehigung_in hat die Funktionalität 1:n:m. Die Funktionalität wird folgendermaßen interpretiert: ● Zu einer Klasse und einem Fach kann es höchstens eine Lehrkraft geben, d.h. innerhalb einer Klasse dürfen nicht mehrere Lehrkräfte dasselbe Fach unterrichten. ● Zu einer Klasse und einer Lehrkraft kann es mehrere Fächer geben, d.h. eine Lehrkraft kann eine Klasse durchaus mehr als einem Fach unterrichten. ● Zu einer Lehrkraft und einem Fach kann es mehrere Klassen geben, d.h. eine Lehrkraft darf dasselbe Fach in unterschiedlichen Klassen unterrichten. Bemerkung: Auch bei mehrstelligen Relationship-Typen kann die (min, max) - Notation verwendet werden. Analog zur (min, max) Notation bei zweistelligen Relationship-Typen gibt auch hier min die minimale Anzahl und min die maximale Anzahl der Beziehungen eines Entity-Typs an. 7.3 Übungen Aufgabe: Interpretieren Sie folgendes ER-Diagramm: Lösungsvorschlag: Professoren betreuen Studenten bei Seminarthemen und geben ihnen auf die Seminararbeit eine Note. Dabei gilt: ● Zu einem Studenten und einem Seminarthema darf es nur eine betreuende Professorin bzw. einen betreuenden Professor geben. d.h. ein Student darf dasselbe Seminarthema nicht mehrfach bearbeiten. ● Zu einem Thema und einem Professor bzw. einer Professorin darf es mehrere Studenten geben, d.h. dasselbe Seminarthema darf von einer Professorin bzw. einem Professor an mehrere (unterschiedliche) Studenten ausgegeben werden. ● Zu einem Studenten und einem Professor darf es nur ein Seminarthema geben, d.h. Studenten dürfen bei einer Professorin bzw. einem Professor nur ein Seminarthema ableisten. Aufgabe: Interpretieren Sie die Funktionalität des folgenden ER-Diagramms: Lösungsvorschlag: In R ● muss jedes Entity aus A in genau einem Tupel vertreten sein; ● darf ein Entity aus B höchstens zweimal in einem Tupel vertreten sein; ● muss jedes Entity aus C mindestens in einem Tupel vorkommen. 8 Generalisierung und Spezialisierung 8.1 Generalisierung Das Prinzip der Generalisierung wird eingesetzt, um eine übersichtlichere und natürlichere Strukturierung der Entity-Typen zu erzielen. Dabei werden gemeinsame Eigenschaften, also Attribute und Beziehungen, ähnlicher Entity-Typen "herausfaktorisiert" und einem gemeinsamen Obertyp zugeordnet. Die beteiligten Entity-Typen sind dann Untertypen des jeweiligen Obertyps. Eigenschaften, die nicht allen Untertypen gemeinsam sind, bleiben beim entsprechenden Untertyp. Da jedes Element eines Untertyps auch Element aller Obertypen ist, hat es auch alle Beschreibungsmerkmale der Obertypen. Es "erbt" damit sämtliche Eigenschaften des Obertypen. Beispiel: Die Lehrkräfte einer Schule werden durch den Entity-Typ Lehrkraft , die übrigen Angestellten (Sekretärin, Hausmeister, ...) durch den Entity-Typ Personal repräsentiert. Als Obertyp ist der Entity-Typ Bedienstete möglich, der die gemeinsamen Attribute aufnimmt. Die Beziehung von Unter- und Obertyp wird durch den speziellen Relationship-Typ isa ausgedrückt. Im ER-Modell wird diese Beziehung durch eine Raute mit der Beschriftung isa repräsentiert. Beispiel: Im obigen Beispiel gilt: Lehrkraft isa Bedienstete bzw. Personal isa Bedienstete. 8.2 Spezialisierung Die Spezialisierung ist die inverse Operation zur Generalisierung Beispiel: Lehrkraft und Personal sind Spezialisierungen von Bedienstete. 8.3 Die isa-Beziehung Die isa - Beziehung beschreibt sowohl Generalisierung als auch Spezialisierung. Definition: Generalisierung und Spezialisierung Seien A und B Entity-Typen. A isa B : B ist eine Generalisierung von A oder A ist eine Spezialisierung von B. Fur die Beziehung A isa B gilt: ● A erbt die Attribute von B. A kann darüberhinaus zusätzliche Attribute besitzen. ● Zu jedem a A gehört genau ein b B, so dass a und b das gleiche Entity repräsentieren. Insbesondere hat a also für die ererbten Attribute dieselben Werte wie das korrespondierende Entity b. ● Kein b B kann zu zwei verschiedenen Elementen von A gehören. Es kann aber b A gehören. ● Die Schlüsselkandidaten von A sind diejenigen von B. Die Schlüsselattributwerte des Entity a des korrespondierenden Entity b B. Folglich hat A den gleichen Primärschlüssel wie B. 8.4 Übungen Aufgabe: B geben, die zu keinem a A sind diejenigen Wie könnte ein Generalisierung der Entity-Typen PKW (Attribute: Farbe, PS), Motorrad (PS, Farbe), LKW (Farbe, Nutzlast, PS), Motorboot (PS, Länge) aussehen. Lösungsvorschlag: Eine Lösungsmöglichkeit von vielen ist: Als Primärschlüssel wurde der (künstliche) Schlüssel Fahrzeugnummer eingeführt. Die Hierarchiestruktur hängt natürlich von den vorgegebenen Daten ab. Müssen beispielsweise Fahrzeuge ohne Motor, d.h. ohne PS-Angabe, "eingebaut" werden, so ist zu überlegen, ob man das Attribut PS wirklich dem Obertyp Fahrzeug zuordnet. 9 Schwache Entity-Typen In den meisten Fällen sind Entities autonom und innerhalb ihrer Entitymenge über die Schlüsselattribute eindeutig identifizierbar. 9.1 Existenzabhängigkeit Bei der Modellierung einer Miniwelt ergeben sich oft Entity-Typen, die von einem anderen Entity-Typ abhängig sind. Solche Entity-Typen heißen existenzabhängig. Definition: Existenzabhängigkeit Ein Entity-Typ E 1 heißt existenzabhängig von dem Entity-Typ E 2 (über R), falls es einen n:1 - Relationship-Typ R mit R E 1 x E 2 gibt, so dass e 1 E 1 nur dann existieren kann, wenn es ein e 2 E 2 gibt, so dass (e 1 , e 2 ) R gilt, d.h. e 1 über R mit e 2 in Beziehung steht. In diesem Fall heißt ● E 2 dominant und ● E 1 untergeordnet unter E 2 (durch R) Die Definition sagt folglich aus, dass das Entity e 1 in E 1 nur vorkommen kann, falls ein entsprechendes e 2 in E 2 existiert. Beispiel: Mit Hilfe der Schulverwaltung sollen Räume verwaltet werden. Die Schule besteht aus drei Gebäuden. Gebäude und Räume tragen jeweils eine Nummer. Als Entity-Typen bieten sich Raum und Gebäude an, die über den Relationship-Typ liegt_in miteinander in Beziehung stehen. Raum ist ein existenzabhängiger Entity-Typ, da die Existenz eines Raumes von der Existenz des Gebäudes abhängig ist. Gebäude ist in diesem Fall dominant, der Entity-Typ Raum dementsprechend untergeordnet unter Gebäude durch liegt_in. 9.2 Schwache Entity-Typen Bei existenzabhängigen Entity-Typen kann es vorkommen, dass die Entities nur in Kombination mit dem Schlüssel des dominanten Entity-Types identifizierbar sind. Man spricht von schwachen Entity-Typen. Beispiel: Haben die Räume einer Schule mit drei Gebäuden eine eindeutige Raumnummer, so sind diese Räume auch ohne Angabe des entsprechenden Gebäudes eindeutig identifizierbar. Es wäre aber auch vorstellbar, dass die Räume eines Gebäudes von eins beginnend durchnummeriert sind. Dann müsste zur eindeutigen Identifizierung eines Raumes neben der Raumnummer auch das entsprechende Gebäude angegeben werden. Definition: Schwacher Entity-Typ Ein existenzabhängiger Entity-Typ E ist ein schwacher Entity-Typ, falls die Menge seiner Attribute keinen Superschlüssel bildet. Sonst heißt E auch starker Entity-Typ. Beispiel: Sind die Räume der drei Schulgebäude jeweils von eins beginnend durchnummeriert, so existieren beispielsweise drei Räume mit der Raumnummer 1. Raum ist in diesem Fall ein schwacher Entity-Typ, da die eindeutige Identifizierung eines Raumes nur unter zusätzlicher Angabe der Gebäudenummer möglich. 9.3 Diskriminator und Schlüssel schwacher Entity-Typen Ein schwacher Entity-Typ hat keine eigenständigen Schlüsselkandidaten, durch die alle Entities dieses Entity-Typs eindeutig identifiziert werden könnten. Es gibt aber eine minimale Menge von Attributen, durch die Entities, die einem übergeordneten Entity zugeordnet sind, innerhalb des schwachen Entity-Typs voneinander unterscheidbar sind. Diese Attributmenge heißt Diskriminator. Definition: Diskriminator Sei der Entity-Typ E 1 dem Entity-Typ E 2 untergeordnet durch R. Ein Diskriminator von E 1 ist eine minimale Menge von Attributen von E 1 , deren Wertekombination für jedes Entity e 1 E 1 eine Unterscheidung unter den Elementen der Menge { e 1 E 1 | (e 1 , e 2) R } ermöglicht. Beispiel: Wir gehen wieder davon aus, dass die Räumzählung innerhalb der drei Schulgebäude bei eins beginnt. Das Attribut RaumNr ist der Diskriminator für den schwachen Entity-Typ Raum. Es kann zwar innerhalb des Entity-Typs Raum zwei Entities mit gleicher Raumnummer geben, diese sind aber dann verschiedenen Gebäuden zugeordnet. Für die Schlüsselkandidaten eines schwachen Entity-Typs gilt: Sei der Entity-Typ E 1 dem Entity-Typ E 2 untergeordnet. Sei K ein Schlüsselkandidat von E 2 und sei D ein Diskriminator von E 1 . Dann ist K D ein Schlüsselkandidat von E 1 . Bemerkung: Der Primärschlüssel eines schwachen Entity-Typs E wird aus dem Primärschlüssel des zugehörigen dominanten Entity-Typs zusammen mit einem ausgewählten Diskriminator von E gebildet. Beispiel: Einziger Schlüsselkandidat und damit gleichzeitig Primärschlüssel des Entity-Typen Raum ist {GebNr, RaumNr} 9.4 Darstellung im ER-Modell Im ER-Modell werden existenzabhängige und schwache Entity-Typen durch doppelt umrandete Rechtecke repräsentiert. Sehr oft wird auch die Beziehung zum dominanten Entity-Typ doppelt umrandet. Der Diskriminator wird durch eine gestrichelte Unterstreichung gekennzeichnet. Beispiel: Das ER-Modell für obiges Beispiel hat folgendes Aussehen: 9.5 Mehrfache Abhängigkeiten Schwache Entity-Typen und ihre Unterordnung unter einen dominanten Entity-Typ müssen je nach Anwendungsbereich möglicherweise über mehrere Beziehungen hinweg iteriert werden. Ein dominanter Entity-Typ kann gleichzeitig wieder einem anderen Entity-Typen untergeordnet sein. Wichtig ist, dass diese Abhängigkeitskette in einem starken Entity-Typ endet. Beispiel: Eine Stadt verwaltet die Gebäude ihrer Schulen zentral. In diesem Fall gilt: ● Der Entity-Typ Raum ist dem Entity-Typ Gebäude untergeordnet, dieser wiederum dem Entity-Typ Schule. ● Der hier vorliegende Schlüsselkandidat für den Entity-Typ Raum (aus dem Anwendungsbereich der Stadt) ist {RaumNr, GebNr, SchulNr}. (Aus dem Blickwinkel der Schule ist aber der Schlüsselkandidat {RaumNr, GebNr} ausreichend!) 9.6 Übungen Aufgabe: Finden Sie Beispiele für Beziehungen mit schwachen Entity-Typen. Lösungsvorschlag: ● Schüler - Prüfung ● Konto - Überweisung Aufgabe: Modellieren Sie die Situation "Einwohner (AusweisNr, Name, Vorname) sind Staatsbürger eines Landes (Name, Einwohnerzahl)". Lösungsvorschlag: 10 Der Entwurf eines ER-Modells In diesem Abschnitt wird zusammenfassend das Vorgehen beim Entwurf eines ER-Modells beschrieben. 10.1 Vorschlag für die Vorgehensweise Ausgangspunkt ist die Miniwelt, für die eine Datenbank entwickelt werden soll, und eventuell ein Anforderungsprofil. Folgende Schritte führen zum ER-Modell: 1. Festlegung der Entity- und Relationship-Typen 2. Angabe der Attribute, die die Entity- und Relationship-Typen eindeutig charakterisieren, bzw. die laut Anforderung notwendig sind 3. evtl. Einführung einer Generalisierungs-Hierarchie 4. Festlegung der Primärschlüssel der Entity-Typen 5. Angabe der Funktionalitäten 6. evtl. Festlegung der Domänen Bemerkung: ● Bei großen Projekten werden zuerst ER-Modelle für die einzelnen Views entworfen, die dann in einem zweiten Schritt in ein Gesamtmodell zusammengefasst werden. ● Die Reihenfolge der Schritte 2 - 6 ist nicht bindend. ● Oft gibt es bei der Erstellung eines ER-Modells mehrere gleichwertige Lösungen. 10.2 Übungen Aufgabe: Erstellen Sie auf der Grundlage der vorgegebenen Ausgangssituation ein ER-Modell der Schulverwaltung. Lösungsvorschlag: Das folgende ER-Modell stellt einen Lösungsvorschlag dar. Es dient als Grundlage für die weiteren Betrachtungen!