ER-Diagramm Datenbanken

KongStrong

Newbie
Registriert
Aug. 2022
Beiträge
5
Hallo, ich will mich grad neben dem Studium bisschen in Datenbanken einarbeiten und hab mir dazu ein kleines Buch gekauft, dass ich jetzt durcharbeite. Bisher hab ich alles verstanden, aber jetzt komme ich zur ersten Frage, die mir etwas Kopfzerbrechen bereitet.

Beziehungen zwischen zwei Entities sind mir soweit klar.
Auch die Funktionalitäten in Chen und Min-Max Notation sind soweit klar:

IMG_20221103_085512.jpg



Wenn man zwischen Chen und MinMax wechselt, muss man halt die Leserichtung ändern, weil die Notation jeweils an der unterschiedlichen Seite angebracht werden. Richtig beschrieben oder?

Jetzt komme ich aber zu ternären Beziehungen. Also Relationships die 3 Entities miteinander in Verbindung bringen. Hier mal ein Beispiel dazu:

IMG_20221103_090230.jpg


Wie liest man das denn jetzt? Wenn ich drüber lese kommen, sehe ich diese Zusammenhänge:

1) Ein Student kann maximal ein Seminarthema bearbeiten
2) Ein Student kann von maximal einem Professor betreut werden
3) Ein Seminarthema kann von mehreren Studenten berarbeitet werden
4) Ein Seminarthema wird von maximal einem Professor betreut/angeboten
5) Ein Professor betreut maximal ein Seminarthema
6) Ein Professor kann mehrere Studenten betreuen

Durch die Zusammenhänge sind manche der Aussagen schon in einer anderen Aussage enthalten. Aber prinzipiell müsste das doch stimmen oder hab ich da einen massiven Denkfehler?

Zb existiert das Seminarthema "Datenbanken verstehen". In jedem Seminarthema können mehrere Studenten betreut werden. Das Seminarthema wird von Professor Heinz betreut. Kein anderer Professor kann genau dieses Seminarthema betreuen. Professor Heinz betreut das Seminar "Datenbanken verstehen" und kann somit kein weiteres Seminarthema betreuen. Da in einem Seminarthema mehrere Studenten betreut werden, kann Professor Heinz mehrere Studenten betreuen. Ein Student, der das Seminarthema besucht, kann kein weiteres Thema besuchen.

Das wäre doch dann die Aussage oder?

Ihr lacht vermutlich über diese Einstiegsfragen :lol:
Aber ternäre Beziehung ist gleich komplexer als wenn nur zwei Entities beteiligt sind
 
Zuletzt bearbeitet:
Ich sehe keine bearbeiten Relation.
Ist das eine Vorgabe aus dem Buch?

Ausserdem glaube, ich dass du mehrere Einschraenkungen machst. In einem Realweltbeispiel kann der Professor vielleicht nur 1 Seminarthema / 1 Student gleichzeitig betreuen, aber man macht ja nicht jedes Semester eine neue Tabelle.
 
Das ist nur ein Beispiel damit ich Verständnis aufbauen kann
Die relation heißt halt nur so aus der Luft gegriffen betreuen. Der Professor betreut Studenten in einem Seminarthema. Andersrum liest es sich halt der Student wird betreut. Das hab ich halt mit besuchen umschrieben. Nicht richtig aber es geht ja nur ums Verständnis von den Funktionalitäten

Hab es angepasst und besuchen durch wird betreut ersetzt

Bzgl der Funktionalitäten: Heißt das, wenn ich das Seminarthema und den Studenten kenne, weiß ich wer der Professor ist. Wenn ich den Professor und den Studenten kenne, weiß ich was das Seminarthema ist. Aber wenn ich den Professor und das Seminarthema kenne, weiß ich nicht eindeutig den Studenten?

Professor x Student → Seminarthema
Student x Seminarthema → Professor

Professor x Seminarthema → Student → nicht möglich

Heißt das, dass bei der Chen Notation 1-Funktionalitäten eindeutig bestimmbar sind und N-Funktionalitäten nicht eindeutig bestimmbar sind?
 
Zuletzt bearbeitet:
KongStrong schrieb:
Chen und MinMax wechselt
Ist jetzt zugegebenermaßen schon 20 Jahre oder so her, aber ISO hat doch keine Rauten, also keine Verbs.
In der Realität habe ich selten was anderes als ISO oder UML gesehen, die beide keine Verbs nutzen.
 
allein vom Hintergedanken her das 1 = eins und n = beliebige Zahl ( in dem Fall Professor aber sicher mit einem max) meist ist lässt sich so einiges Lösen.
 
Aber Chen lässt sich bei einer Ternären Beziehung nicht in Min, Max umwandeln stimmt das?
 
Doch, lässt sich umwandeln. Du interpretierst deine ternäre Beziehung immer binär, das ist noch der Fehler in deinen Denkansatz.

Zum Beispiel mit deiner Professor, Seminarthemen, Studenten Relation liest es sich so: Ein Professor betreut bei einen Seminarthema einen oder mehrere Studenten.
Ein oder mehrere Studenten werden in einen Seminarthema von einen Professor betreut.

Es gibt da keinen binären Ausdruck von. wenn es den gäbe, dann darfst du die Relation nicht ternär modellieren. Beispiel für ein ähnliches Modell wäre binär folgendermaßen aufgebaut:
Ein Professor betreut mehrere Seminarthemen.
Ein Seminarthema wird von einen Professor betreut.
Ein Student nimmt an mehreren Seminarthemen Teil.
Das wäre die Relation binär dargestellt. Das wäre jedoch insofern falsch, weil Verteidigung gegen die dunklen Künste bei Professor Moody eben nicht Verteidigung gegen die dunklen Künste bei Professor Lupin ist...

Die Kardinalität hat damit erst mal nur am Rande zu tun. Chen kann auch ohne Kardinalität modelliert werden. Man kann sie weglassen, erschwert dann das genaue Lesen jedoch bzw. wird dann ungenau. Min-Max Kardinalitäten sind dann halt noch mal eine Stufe genauer. Manchmal braucht man das, um ein gutes ER-Modell zu bauen, manchmal ist es aber auch zu viel.

Eventuell hilft dir das weiter: https://luo-darmstadt.de/wiki2/doku.php?id=db:ternaere_beziehungen
 
Zuletzt bearbeitet:
Ich kann mich jetzt natürlich mal wieder total verrennen... 😊 schlage aber vor, daß es überhaupt gar keine ternären und folgend ebenso keine n-dimensionalen Relationen an dieser Stelle gibt (und auch nicht geben KANN)..

A steht in Relation zu B. Es gibt sicherlich Transitivität, und es gibt sicherlich die Möglichkeit, zwei Relationen "zusammenzulegen"... aber am Ende des Tages sind es binäre Relationen.

So steht es ja auch bereits informell in der Liste des OP. Student gegen Prof. Prof gegen Seminarthemen. Und Student gegen Seminarthema.
Des ist letztlich ein dreidimensionales Gebilde, ja, aber die einzelne Relation bildet zwei davon ab und der Rest sind JOINs.

=> wir bleiben notwendigerweise bei eins-zu-n, n-zu-m und natürlich eins-zu-eins Relationen, welche allerdings in Datenbanken üblicherweise eher in den Hintergrund treten.
 
Wie die Vorschreiber schon angemerkt haben, ist deine ternäre Beziehung keine ternäre sondern eine binäre.
Ternäre Beziehungen verwendet man, wenn man alle Kombinationen von 3 verschiedenen Entitäten abbilden will.
Du willst aber nur die eine Beziehung von (Studenten) zu (Professor, Seminarthema) abbilden. In Tabellenform wäre das folgendes.
Eigentlich binär

StudentProf_Sem_ID
11
21
32

IDProf_IDSem_ID
156
261
(UNIQUE über [Prof, Sem])

Alternativ ist Seminarthema eine Spalte von Professor und der Student verweist nur noch auf Professor. Das würde deine Aussagen ebenso abbilden.

StudentProf_ID
11
21
32


ProfSem_ID
11
25

Echt ternär

Student_IDProf_IDSem_ID
116
152
216
(PK über alle Spalten)
 
Zuletzt bearbeitet:
Ihr müsst das etwas abstrakter betrachten.

Die Beziehung im ER-Modell nach Chen beschreibt keinen "technischen Join" zwischen zwei Tupel, sondern es beschreibt die im Datenmodell zueinander stehende Relation (Verhältnis, Abhängigkeit) und die kann durchaus ternär oder gar noch umfangreicher sein, auch wenn sie in den allermeisten Fällen binär ist.

Binäre Beziehungen ergeben sich bei den Professor-Fach-Student-Dreieck halt nicht bzw. es wäre unvollständig und damit fehlerhaft, weil ein Student nicht ausschließlich von einen Fach abhängig ist und ein Fach nicht ausschließlich von einen Professor, sondern die beschriebene Relation im Beispiel nur im Dreierkontext vollständig und damit richtig ist.
Natürlich sind das in der Datenbank am Ende vier Tabellen, weil es bei der Transformation vom ER-Modell hin zum Datenbankschema ja die Dritte Normalform (in der Regel) umzusetzen gilt.
 
Zurück
Oben