Online-Kurs 'Datenbanken und Datenmodellierung' Das Entity-Relationship-Modell Print-Version 15. 04. 2002
Download 238.73 Kb. Pdf ko'rish
|
Online-Kurs 'Datenbanken und Datenmodellierung' Das Entity-Relationship-Modell Print-Version - 15.04.2002 (c) StR S. Winter - Universität Passau Inhaltsverzeichnis 1 Allgemeine Hinweise zum Abschnitt ER-Modell 1.1 Lernziele 1.2 Begriffe 1.3 Vorgehensweise bei der Bearbeitung 1.4 Material 2 Grundlagen des ER-Modells 2.1 Das Entity-Relationship-Modell 2.2 Die Idee des ER-Modells 2.3 Die graphische Darstellung 2.4 Rollennamen 2.5 Der Begriff der Domäne 2.6 Übungen 3 Schlüssel 3.1 Identifizierung von Entities 3.2 Superschlüssel, Schlüsselkandidat, Primärschlüssel 3.3 Übungen 4 Mengenschreibweise von Entity- und Relationship-Typen 4.1 Mengenschreibweise für Entity-Typen 4.2 Mengenschreibweise für Relationship - Typen 5 Relationship-Typen als Teilmengen kartesischer Produkte 5.1 Konkatenation von Entities 5.2 Das kartesische Produkt von Entity-Typen 5.3 Relationship-Typ als Teilmenge eines kartesischen Produkts 5.4 Übungen 6 Funktionalität bei zweistelligen Relationship-Typen 6.1 Funktionalität (Kardinalität) bei 2-stelligen Relationship-Typen 6.2 1:1 - Relationship-Typen 6.3 n:1 - Relationship-Typen 6.4 1:n - Relationship-Typen 6.5 n:m - Relationship-Typen 6.6 Die (min, max) - Notation 6.7 Übungen 7 Mehrstellige Relationship-Typen 7.1 Mehrstellige Relationship-Typen 7.2 Funktionalitäten für mehrstellige Relationship-Typen 7.3 Übungen 8 Generalisierung und Spezialisierung 8.1 Generalisierung 8.2 Spezialisierung 8.3 Die isa-Beziehung 8.4 Übungen 9 Schwache Entity-Typen 9.1 Existenzabhängigkeit 9.2 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.
Nach dem Studium dieses Abschnittes sollten Sie Folgendes kennen Grundlagen des ER-Modells r Einordnung des ER-Modells innerhalb des Datenbankentwurfes r Schlüssel r Funktionalität, Kardinalität r Prinzip der Generalisierung und Spezialisierung r Schwache bzw. existenzabhängige Entity-Typen r 1.
durchführen können Erstellung eines ER-Modells zu einer vorgegebenen 'Miniwelt' r Festlegung eines Primärschlüssels bei den Entity-Typen r 2.
1.2 Begriffe Zudem sollten Sie die Bedeutung folgender Begriffe kennen: Entity-Typ , Entity , Relationship-Typ , Relationship , Attribut , Attributwert q
Superschlüssel , Schlüsselkandidat , Primärschlüssel q
Funktionalität q
Generalisierung , Spezialisierung q
Existenzabhängigkeit , schwacher Entity-Typ , Diskriminator q
1.3 Vorgehensweise bei der Bearbeitung Das Material sollte in der vorgegebenen Reihenfolge abgearbeitet werden. 1.4 Material Printversion des Abschnittes " ER-Modell " q
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
systematisch in eine Menge von Relationenschemata überführt werden kann, die die Grundlage für die Tabellen einer relationalen Datenbank bilden.
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.
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.
Schule
könnte sich das folgendermaßen darstellen: Bemerkung: Entity-Typen müssen nicht disjunkt sein, d.h. im Allgemeinen kann ein Entity Element mehrerer Entity-Typen sein. 1. 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. 2. Ein Entity-Typ kann natürlich an mehreren Relationship-Typen beteiligt sein. 3. Entity-Typ, Relationship-Typ und Attribut entsprechen der Schemaebene, während Entity, Relationship und Attributwert Instanzen darstellen. 4.
Konkrete Entities, Relationships und Attributwerte spielen in der Regel beim ER-Entwurf keine Rolle, weil die Modellierung auf Schemaebene stattfindet. 5.
Beispiel zu Bemerkung 1: Die Entity-Typen Lehrkraft und Erziehungsberechtigter sind nicht disjunkt. Eine Lehrkraft kann gleichzeitig Erziehungsberechtige(r) sein. q 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 r
die Relationship-Typen hat_Klassenleitung_in (Beziehung zwischen Lehrkraft und Klasse) und hat_Fachbetreuung_in (Beziehung zwischen Lehrkraft und Fach) modelliert werden. r
Der Entity-Typ Lehrkraft ist an beiden Beziehungen beteiligt. q
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.
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.
Lehrkraft können beispielsweise folgende Domänen zugrundeliegen:
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 q
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, q 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, ... q
Relationship-Typen: hat_Fachbetreuung_in, hat_Lehrbefaehigung_in, hat_Stundenplan, ist_Fachlehrkraft_von, gehoert_zu_Klasse, ... q
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 q
Relationship-Typen: ist_Vorgesetzter_von, bedient q
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.
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. Jede Teilmenge der Attributmenge eines Entitytyps, anhand deren Wertkombination die Entities dieses Typs identifizierbar sind, heißt Superschlüssel dieses Entity-Typs. 1.
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. 2.
Einer der Schlüsselkandidaten eines Entity-Typs wird beim ER-Entwurf als Primärschlüssel ausgewählt und dient dann zur Identifizierung von Entities. 3.
Name
und Klassenzimmer festgelegt. Jede Klasse hat dabei ihr eigenes Klassenzimmer- Superschlüssel: { Name , Klassenzimmer } q
{ Name
} q
{ Klassenzimmer } q
Schlüsselkandidaten: { Name } q
{ Klassenzimmer } q
Primärschlüssel: je nach Festlegung { Name
} oder q
{ Klassenzimmer } q
Bemerkung: Zu einem Entity-Typen kann es mehrere Schlüsselkandidaten geben. Dabei ist es durchaus möglich, dass diese Attributmengen verschieden groß sind.
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.
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.
Statt "Superschlüssel" wird manchmal der Begriff "Schlüssel" verwendet. Oft wird auch der Primärschlüssel einfach als Schlüssel (Key) bezeichnet. q
Die Entscheidung für einen bestimmten Schlüsselkandidaten als Primärschlüssel geschieht während der Modellierung des Anwendungsbereiches. q Im Abschnitt über das Relationenmodell wird ebenfalls auf Schlüssel eingegangen. q Primärschlüssel werden im ER-Modell durch Unterstreichung gekennzeichnet. q
Welche künstlichen Unterscheidungsmerkmale kennen Sie aus dem täglichen Leben? Lösungsvorschlag: Ausweisnummern q Bestellnummern q Bankleitzahlen q Kontonummern q usw.
q Firmenmitarbeiter werden durch den Entity-Typ Angestellte mit den Attributen PersNr ,
und Einkommen dargestellt.
Welche Superschlüssel und Schlüsselkandidaten gibt es? Lösungsvorschlag: Superschlüssel: { PersNr
, Name
, Einkommen}, { PersNr
, Name
}, { PersNr
, Einkommen}, { PersNr
} q
Schlüsselkandidaten: { PersNr
} q
Betrachten Sie zu dem Entitytyp Professor die 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)
{ 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.
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))
Download 238.73 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling