db:beziehungen
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende ÜberarbeitungLetzte ÜberarbeitungBeide Seiten der Revision | ||
db:beziehungen [2014/04/30 22:49] – angelegt roehner | db:beziehungen [2014/05/01 14:43] – roehner | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | =====Beziehungen===== | ||
+ | ==== Beziehungstyp - Relationship ==== | ||
+ | Ein Schüler belegt mehrere Kurse, ein Kurs wird von mehreren Schülern besucht. Zwischen den Entitätstypen Schüler und Kurs besteht also eine wechselseitige Beziehung. Aus der Sicht eines Kurses gehören ihm einige Schüler an, aus der Sicht des Schülers müssen viele Kurse belegt werden, um den Verpflichtungen der Oberstufenverordnung zu genügen. Doch wie modellieren wir die Punktzahl, die ein Schüler in einem Kurs erhält? | ||
+ | |||
+ | Die Punktzahl kann kein Attribut des Entitätstyps Schüler sein, denn die Puntkzahl bezieht sich auf einen Kurs. Sie kann aber auch kein Attribut des Entitätstyps Kurs sein, denn sie bezieht sich immer auch auf einen Schüler. Die Punktzahl ist also ein Beziehungsattribut und wird daher mit der Beziehungsraute verbunden. | ||
+ | |||
+ | {{SchuelerKursPunkte.gif}}\\ | ||
+ | ER-Diagramm Schüler und Kurse mit Beziehungsattribut Punkte | ||
+ | |||
+ | Beziehungsdaten sind also eigenständige Daten. Ein guter Datenbankentwurf muss klar zwischen Daten über Entitätstypen und Beziehungen trennen. | ||
+ | |||
+ | |||
+ | <WRAP box round> | ||
+ | **Beziehung** | ||
+ | |||
+ | Eine Beziehung (engl. relationship) kennzeichnet den konkreten Zusammenhang zwischen zwei Entitäten. | ||
+ | </ | ||
+ | |||
+ | <WRAP example> | ||
+ | Beispiel | ||
+ | Max Meier belegt den Kurs Q2 Datenbanken. | ||
+ | </ | ||
+ | |||
+ | <WRAP box round> | ||
+ | **Beziehungstyp** | ||
+ | |||
+ | Ein Beziehungstyp (engl. relationship type) beschreibt den Zusammenhang, | ||
+ | der zwischen den Entitäten zweier Entitätstypen besteht. | ||
+ | </ | ||
+ | |||
+ | <WRAP example round> | ||
+ | Beispiel | ||
+ | Schüler belegen Kurse. | ||
+ | </ | ||
+ | ==== Beziehungstyprichtung ==== | ||
+ | Bei der objektorientierten Modellierung hatte eine Beziehung immer eine Richtung. Bei einer Datenmodellierung | ||
+ | besteht der Zusammenhang zwischen zwei Entitätstypen in beiden Richtungen. | ||
+ | * ein Schüler belegt einen Kurs | ||
+ | * ein Kurs wird belegt von Schülern | ||
+ | |||
+ | Zur genauen Analyse einer Beziehung müssen beide Richtungen betrachtet werden. | ||
+ | |||
+ | ==== Benennung einer Beziehung ==== | ||
+ | Die Benennung einer Beziehung zwischen zwei Entitätstypen A und B ist so zu wählen, dass das nachfolgende Schema ein fehlerfreien Satz liefert: | ||
+ | |||
+ | <WRAP box round> | ||
+ | Ein(e) < | ||
+ | </ | ||
+ | |||
+ | <WRAP example round> | ||
+ | **Beispiele** | ||
+ | Ein Lehrer | ||
+ | Eine Schule | ||
+ | Ein Ort hat eine Schule. | ||
+ | Eine Schule | ||
+ | </ | ||
+ | |||
+ | **Darstellung der Beziehung** | ||
+ | |||
+ | Eine Beziehung wird durch eine Raute dargestellt. Sie enthält oben die Benennung der Richtung A zu B, unten die Benennung der Richtung B zu A. Die Raute wird links/oben mit dem Entitätstyp A, rechts/ | ||
+ | |||
+ | {{OrtHatSchule.gif}}\\ | ||
+ | ER-Diagramm //Ort hat/liegt in Schule// mit Nennung beider Beziehungstyp-Richtungen | ||
+ | |||
+ | ==== Kardinalität von Beziehungen ==== | ||
+ | Beziehungen zwischen Entitätstypen weisen unterschiedliche **Kardinalitäten** auf. Die Beziehung zwischen //Schüler und Kurs// wird als m: | ||
+ | |||
+ | Die //Lehrer hält Kurs// Beziehung ist hingegen eine 1: | ||
+ | |||
+ | Die // | ||
+ | |||
+ | Die Entscheidung über die Kardinalität einer Richtung der Beziehung wird über die sogenannte **KaMe-Frage** | ||
+ | getroffen. | ||
+ | |||
+ | <WRAP box round> | ||
+ | ==KaMe-Frage== | ||
+ | |||
+ | **Kann eine** Entität des Typs A **mit mehreren** Entitäten des Typs B in Beziehung stehen?\\ | ||
+ | Ja → Kardinalität ist n | ||
+ | Nein → Kardinalität ist 1 | ||
+ | </ | ||
+ | |||
+ | <WRAP example round> | ||
+ | Beispiele | ||
+ | |||
+ | Kann ein Mann mit mehreren Frauen verheiratet sein? Nein, Kardinalität ist 1. | ||
+ | Kann ein Ort mehrere Schulen haben? | ||
+ | Kann eine Schule in mehreren Orten liegen? | ||
+ | </ | ||
+ | |||
+ | **Darstellung der Kardinalität** | ||
+ | |||
+ | Die Kardinalität wird im ER-Diagramm mit 1, n oder m an das Ende der Beziehung geschrieben. | ||
+ | |||
+ | {{OrtHatSchule1n.gif}}\\ | ||
+ | ER-Diagramm //Ort hat/liegt in Schule// mit Kardinalität der Beziehung | ||
+ | |||
+ | Grundsätzlich unterscheidet man drei Kardinalitätstypen: | ||
+ | <WRAP box round> | ||
+ | eine 1: | ||
+ | eine 1: | ||
+ | eine n: | ||
+ | </ | ||
+ | |||
+ | Eine n: | ||
+ | unterschiedliche Anzahlen von Entitäten eine Beziehung eingehen können, spricht man von der n: | ||
+ | |||
+ | ==== Optionalität von Beziehungen ==== | ||
+ | Mit der **Optionalität** einer Beziehung wird ausgedrückt, | ||
+ | |||
+ | **MuMi-Frage** | ||
+ | |||
+ | Die Entscheidung über die Optionalität einer Richtung der Beziehung wird über die sogenannte **MuMi-Frage** | ||
+ | getroffen. | ||
+ | |||
+ | <WRAP box round> | ||
+ | **Muss eine** Entität des Typs A mit **mindestens einer** Entität des Typs B in Beziehung stehen? | ||
+ | Ja | ||
+ | Nein | ||
+ | </ | ||
+ | |||
+ | <WRAP example round> | ||
+ | Beispiele: | ||
+ | Muss ein Mann mit mindestens einer Frau verheiratet sein? Nein, optional, kann-Beziehung | ||
+ | Muss ein Ort mindestens eine Schule haben? | ||
+ | Muss eine Schule in mindestens einem Ort liegen? | ||
+ | </ | ||
+ | |||
+ | **Darstellung der Optionalität** | ||
+ | |||
+ | Die Optionalität wird mit den Wörtern kann bzw. muss im ER-Diagramm an den Anfang der Beziehung geschrieben. | ||
+ | |||
+ | {{OrtHatSchuleMuMi.png}}\\ | ||
+ | ER-Diagramm //Ort hat/liegt in Schule// mit Optionalität der Beziehung | ||
+ | |||
+ | ====Aufgaben==== | ||
+ | 1. Formuliere die //Benennung der Beziehungen// | ||
+ | |||
+ | 2. Formuliere die //KaMe- und MuMi-Fragen// | ||
+ | |||
+ | 3. Erweitere die ER-Diagramme der [[: | ||
+ | |||
db/beziehungen.txt · Zuletzt geändert: 2019/05/02 21:23 von roehner