9.1 Schlanke Lösung |
|
Im Rahmen einer Datenmodellierung gibt es oftmals mehrere Alternativen, die unterschiedlich umfangreich sind, im Grunde aber dasselbe beschreiben. In einem solchen Fall muss immer die einfachste Lösung gewählt werden. |
|
So kann z.B. ein Beziehungstyp oftmals aufgespaltet werden in einen Entitätstyp und zwei weitere Beziehungstypen wie im folgenden Beispiel. |
|

|
|
|
Abbildung 9.1-1: |
Richtige (schlanke) und falsche Lösung |
|
|
|
In diesem Beispiel ist Lösung 1 die Richtige! |
|
9.2 Unklare Beziehungen |
|
Oftmals werden Entitätstypen verknüpft, weil eine vage nebulöse Vorstellung besteht, dass diese zusammenhängen. Mit vagen Vorstellungen lässt sich aber nicht modellieren. Deshalb müssen Beziehungen zwischen Entitätstypen immer daraufhin überprüft werden, ob sie auch semantisch sinnvoll sind, am besten, indem man sie auf ihren Kern, Beziehungen zwischen ganz konkreten Entitäten, zurückführt. |
|
Das folgende Beispiel bezieht sich auf den oben diskutierten Weltausschnitt eines Sportvereins. |
|

|
|
|
Abbildung 9.2-1: |
Intuition statt Modellierung |
|
|
|
Richtig ist hier lediglich, dass die Raute natürlich irgendeine Beziehung ausdrückt. Bei genauerem Hinsehen erkannt man aber, dass es sich in Wirklichkeit um eine Vielzahl von Beziehungen handelt, die man vielleicht allgemein unter dem Begriff Vereinstätigkeit zusammenfassen könnte. |
|
Konkret werden hier so unterschiedliche Beziehungen zusammengefasst wie „Mannschaften werden von aktiven Mitgliedern trainiert“, „Mannschaften sind in Abteilungen“, „Mannschaften nehmen an Begegnungen teil“. |
|
Wie kann solch ein Fehler vermieden werden? Ganz einfach, indem man sich über die Natur von Beziehungen in ER-Modellen klar wird. Diese ist ganz einfach (vgl. auch Abschnitt 4.6): Beziehungstypen in ER-Modellen setzen Entitäten des einen Entitätstyps mit Entitäten des anderen Entitätstyps (oder: der anderen Entitätstypen) in Beziehung und sie drücken jeweils NUR EINE Beziehung aus. Man muss also lediglich auf die Entitäten zurückgehen und mit diesen die Beziehung überprüfen (deshalb ist die Betrachtung der Min-/Max-Angaben so hilfreich), dann kann eigentlich nichts mehr schief gehen. |
|
9.3 Nur statische Aspekte modellieren |
|
Ein ER-Modell ist ein Datenmodell und erfasst als solches nur die statischen Aspekte des Weltausschnitts, d.h. die Beschreibung der Entitäten und Beziehungen durch Attribute. Dynamische Aspekte (Abläufe, Prozeduren, Prozesse, ...) werden von einem Datenmodell nicht erfasst. Diese Techniken gehören in den Bereich der Systemanalyse. |
|
Nichtsdestotrotz ist der Verfasser der Auffassung, dass sich Datenmodellierung in der Zukunft auch um Prozesse, usw. kümmern muss und dass die konkrete Datenmodellierung der Zukunft eine umfassendere Modellierung der Strukturen und Prozesse des jeweiligen Weltausschnitts sein wird. Verschiedene Gründe lassen dies vermuten. Der wichtigste ist, dass die vollständige Verlagerung der dynamischen Aspekte in die Anwendungsprogramme sehr viel aufwendiger ist (bei der Entwicklung und der Wartung), als die zumindest teilweise direkte Realisierung im Datenmodell und dann in der Datenbank. Einen ersten Vorgeschmack gibt diesbezüglich die objektorientierte Modellierung (vgl. Kapitel 7). |
|
9.4 Spezialisierung durch verschachtelte Attribute |
|
Oftmals sieht man in Datenmodellen auch „verschachtelte Attribute“, die in Wirklichkeit eine Spezialisierung widerspiegeln. Ein Beispiel zeigt die folgende Abbildung. |
|
Dieser Modellausschnitt ist natürlich falsch. Gegen das Attribut aktiv/passiv ist erst mal nichts einzuwenden. Die Attribute Sportart, Leistungsstand und ehrenamtliche Tätigkeit wurden nun aber fälschlicherweise mit dem Attribut aktiv/passiv verknüpft, mit der Absicht, damit die aktiven bzw. die passiven Mitglieder weiter zu beschreiben. |
|
Eine solche Struktur gibt es aber aus guten Gründen in der ER-Modellierung nicht. Attribute dürfen auf solche Weise nur aneinandergehängt werden, wenn es sich tatsächlich um verschachtelte Attribute handelt. |
|

|
|
|
Abbildung 9.4-1: |
Falscher "Ausbau" |
|
|
|
Die richtige Lösung für diesen fehlerhaften Modellentwurf besteht in der oben beschriebenen Spezialisierung. |
|
9.5 Entitäten versus Attribute |
|
Im Prinzip kann jedes Attribut dazu dienen, einen Entitätstyp (oder Beziehungstyp) in Teilklassen aufzuspalten. Nehmen wir aus dem Sportvereinsbeispiel das Attribut Sportart des Entitätstyps Aktive Mitglieder. Sportart soll zwei Ausprägungen haben, „Handball“ und „Fußball“ wobei es aktive Mitglieder geben soll, die in beiden Sportarten mitwirken. Denkbar wäre eine Aufspaltung wie in der folgenden Abbildung. |
|

|
|
|
Abbildung 9.5-1: |
Attribute vs. Entitätstypen |
|
|
|
In diesem Beispiel ist diese Lösung aber falsch. Richtig wäre sie nur, wenn für die neu eingerichteten Spezialisierungen Attribute vorliegen würden. So wie in der nachfolgenden Abbildung. Wie immer deuten die Punkte Attribute an, bei den Spezialisierungen die Spezifischen. |
|

|
|
|
Abbildung 9.5-2: |
Spezialisierungen mit Attributen |
|
|
|
Ist dies nicht der Fall, besitzen die Spezialisierungen also keine Attribute, stellt das Spezialisierungskriterium in Wirklichkeit ein Attribut dar. |
|
Hier ist also oft eine Entscheidung darüber zu treffen, ob eine Information zu einem Attribut oder einem Entitätstyp führt. Konkret bedeutet dies, dass die Eigenschaft entweder in ein Attribut oder - sozusagen in der übergeordneten Ebene - in die Spezialisierung gelegt wird. Die Regel ist hier: keine Spezialisierung, wenn die entstehenden Subklassen keine Attribute mehr haben. |
|
9.6 Verknüpfung von Entitätstypen |
|
Verschiedene Entitätstypen können ausschließlich durch folgende Techniken in Beziehung gesetzt werden: |
|
- durch einen Beziehungstyp
- im Rahmen einer Generalisierung/Spezialisierung
- im Rahmen einer Teil_von - Beziehung
|
|
Es ist insbesondere nicht möglich, Entitätstypen direkt zu verknüpfen. Auf die Situation, in der Entitäten gleichzeitig Beziehungen sind, wurde oben eingegangen. |
|
9.7 Konkrete Schritte |
|
Die konkreten Schritte bei der Erstellung von ER-Modellen können wie folgt zusammengefasst werden: |
Schritte bei der ER-Modellierung |
- Sammeln: Entitäten, Beziehungen und Attribute erkennen. Hier steckt auch die in Kapitel 2 vorgestellte konzeptionelle Phase drin.
- Strukturieren I: Beziehungen, Entitäten, Generalisierungen / Spezialisierungen abklären.
- Strukturieren II: Attribute zuordnen, Typen bilden. Von großer Bedeutung ist hier die Beachtung des Zusammenhangs zwischen Attributen und Entitäten bzw. Beziehungen.
- Modellieren: Weitere Präzisierung von Entitäts- und Beziehungstypen - im Kontext. Hier geht es u.a. darum, "vergessene" Beziehungstypen zu entdecken.
|
|
Die hier vorgestellte grafische Notation orientiert sich am Original und am „Mainstream“. Es soll aber nicht verschwiegen werden, dass es, vor allem in den nicht-elementaren Teilen, zahlreiche Variationen gibt. |
Hinweis |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |