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
bet2/3
Sana28.07.2017
Hajmi238.73 Kb.
#12216
1   2   3

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

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

 

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

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

 

2



.

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

 

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.

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

 

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'



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

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.

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

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:

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.

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))   

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:
1   2   3




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling