Online-Kurs 'Datenbanken und Datenmodellierung' Das Entity-Relationship-Modell Print-Version 15. 04. 2002
Mengenschreibweise für Relationship - Typen
Download 238.73 Kb. Pdf ko'rish
|
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.
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
* e
2 zweier Entities e
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.
Analog wird die Konkatenation e
* ... * e
n mehrerer Entities definiert. 5.2 Das kartesische Produkt von Entity-Typen Die Menge aller Konkatenationen der Entities zweier Entity-Typen E
und E
2 wird über das kartesische Produkt E
x E
2 beschrieben. Definition: Kartesisches Produkt von Entities Das kartesische Produkt E
x E
2 zweier Entity-Typen E
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
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.
Jeder Relationship-Typ R zwischen gegebenen Entity-Typen E
1 , ..., E
k kann als eine Teilmenge des kartesischen Produkts E
1 x ... x E
aufgefasst werden, d.h. R
E
1 x ... x E
. Bei
k beteiligten Entity-Typen heißt R
-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.
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.
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.
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 q n:1 - Relationship-Typen oder n:1 - Beziehungen q 1:n - Relationship-Typen oder 1:n - Beziehungen q n:m - Relationship-Typen oder n:m - Beziehungen q 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
zugeordnet werden bzw. Einem Entity aus E
2 können höchstens x Entities aus E
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 q
'n' bzw 'm' beliebig viele, d.h. keine, eine oder mehrere Beziehungen. q
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
. q
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
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. q
In der Literatur findet sich auch eine graphische Darstellungsmöglichkeit für Funktionalitäten mit Hilfe von Pfeilen. q
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
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
und y und y' Entities von E
. R ist ein 1:1 - Relationship-Typ, falls gilt: ( x, y ) R und ( x, y' ) R
y = y' und ( x, y ) R und ( x', y ) R
x = x' . Beispiel: Der Relationship-Typ hat_Klassenleitung_in ist ein 1:1-Relationship-Typ, denn jede Klasse hat genau
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
mit höchstens einem Entity aus E
2 , aber ein Entity aus E
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
. 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
und E
1 . Damit gilt Analoges zum vorherigen Abschnitt.
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
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
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. q
Oft kann die Obergrenze nicht festgelegt werden. In diesem Fall ersetzt man max
durch einen Stern. q
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. q 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
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: Mitarbeiter gehoert_zu Abteilung 1.
Mitarbeiter arbeitet_in Projekt 2.
Mitarbeiter ist_Abteilungsleiter_von Abteilung 3.
Lösungsvorschlag: n:1, denn ein Mitarbeiter gehört zu höchstens einer Abteilung, zu einer Abteilung gehören aber mehrere Mitarbeiter. 1.
n:m, denn Mitarbeiter können in mehreren Projekten gleichzeitig arbeiten, ein Projekt wird in der Regel von mehr als einem Mitarbeiter durchgeführt. 2. 1:1, denn eine Abteilung hat genau eine Abteilungsleiterin bzw. einen Abteilungsleiter 3. 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 q
Relationship-Typ: ausgeliehen_an q
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.
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
x Klasse
x Fach.
Unter Beteiligung der Entities (( PersNr : 35), ( Name
: Rinser), ( Geschlecht : w), ( Wohnort
: Passau), ( Geburtsjahr : 1946)) Lehrkraft , q
(( Name
: 5), ( Klassenzimmer : 101)) Klasse
und q
(( Name
: Deutsch), ( Pflichtfach : ja)) Fach
q 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
E
1 x E
2 x
E
3 bedeutet dies konkret: Download 238.73 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling