Datenstruktur modellieren (konzeptionelle Phase)

Aus Informatik
Wechseln zu: Navigation, Suche

Wie im Kapitel Datenbankentwurf ausgeführt, ist es zunächst sinnvoll, ein konzeptionelles Modell des gegebenen Problems zu erstellen. Dabei wird ganz allgemein ein Abbild der Wirklichkeit geschaffen, bei dem bestimmte Aspekte weggelassen, vereinfacht, zusammengefasst werden. Dabei lassen sich drei Abstraktionsmechanismen unterscheiden:

Klassifikation
Dinge bzw. Objekte mit gemeinsamen Eigenschaften werden zu einer Klasse zusammengefasst. Dabei werden nicht alle Eigenschaften der Objekte, meist Attribute genannt, berücksichtigt, sondern nur die für die Aufgabe relevanten. In unserer Miniwelt Schule lässt sich das Objekt Schüler als Klasse auffassen, in der Miniwelt Bibliothek das Objekt Buch.
Aggregation
Bereits bestehende Klassen werden zu einer neuen Oberklasse zusammengefasst. So würde sich Abiturbewertung aus Halbjahresnoten und Prüfungsergebnisse zusammensetzen.
Generalisierung oder Spezialisierung
Dabei wird eine Teilmengenbeziehung zwischen Elementen verschiedener Klassen definiert. So wäre Ausleiher in der Schulbibliothek eine Generalisierung der Klassen Schüler und Lehrer. Umgekehrt wäre Abiturient eine Spezialisierung von Schüler. Bei Generalisierung bzw. Spezialisierung gibt es immer Vererbung. So besitzt die untergeordnete Klasse (die Teilmenge) alle Attribute der Oberklasse, kann aber noch zusätzliche Eigenschaften haben. Ausleiher braucht sicher die Attribute Name, Vorname, die Teilmenge Schüler besitzt noch Noten, Lehrer besitzt zusätzlich noch Unterrichtsfächer.

Um die Modellierung der Realität systematischer gestalten zu können, gibt es verschiedene Standardstrategien. Eine der bekanntesten ist das so genannte Entity-Relationship-Modell (ER-Modell). Danach wird eine Transformation in ein relationales Modell durchgeführt, da sich das relationale Datenbankmodell als das leistungsfähigste bewährt hat. Neben dem ER-Modell gibt es weitere Datenbankmodelle, z.B. das Hierarchische Modell (HM), das Netzwerkmodell (NWM), das Relationenmodell (RM), das SQL-Datenmodell (SQL) oder das Normalformmodell (NFM).

Das Entity-Relationship-Modell

Das Entity-Relationship-Modell (ERM oder ER-Modell) ist das heute am weitesten verbreitete Datenmodell. Es basiert auf einem Artikel von Peter Pin-Shan Chen aus dem Jahre 1976. Das Modell von Chen ist leicht zu verstehen, begnügt sich mit den wichtigsten grafischen Elementen und hat sich gerade deshalb in der Praxis durchgesetzt. Außerdem ist es auch leicht in ein logisches Modell für relationale Datenbanken, dem Relationenmodell von E.F.Codd, umzusetzen. Die Umsetzung eines ER-Modells in das Relationenmodell wird später genauer beschrieben.

Mit den Jahren hat es von verschiedenen Personen Änderungen und Erweiterungen an dem ER-Modell gegeben, die sich u.a. auch auf die grafischen Symbole bezogen. Dies führte leider dazu, dass es heute keinen einheitlichen Standard gibt, was die grafischen Symbole und die Modellelemente betrifft. Die ursprüngliche Idee ist jedoch in den veränderten Modellen erhalten geblieben.

Entitäten

Definition: Entität

Eine Entität (engl. entity) ist eine eindeutig identifizierbare Einheit (Objekt) des betrachteten Modells. Das Identifizierungsmerkmal wird als Schlüssel bezeichnet.

Eine Entität kann sein:

  • ein Gegenstand (z.B. der Raum mit der Nr. 112)
  • eine Person (z.B. der Schüler Meier)
  • ein abstraktes Konzept (z.B. der Kurs Informatik)
  • ein Ereignis (z.B. eine mündliche Prüfung)

Unter einer Entitätsmenge (entity set) versteht man eine konkrete Sammlung von Entitäten gleichen Typs (z.B. alle Schülerinnen und Schüler einer Schule). Die einzelnen Entitäten einer Entitätsmenge unterscheiden sich in verschiedenen Werten der Attribute (z.B. die Namen der Schüler).

Zur grafischen Darstellung von Entitätsmengen werden Rechtecke verwendet (vgl. Entitätsmenge Schüler).

Schwache Entitäten

In den meisten Fällen sind Entities autonom und innerhalb der Entitätsmange eindeutig identifizierbar.

Es gibt aber auch die Möglichkeit, dass Entities nur in Kombination mit dem Schlüssel eines dominanten Entity-Types identifizierbar sind. Solche Entitäten bezeichnet man als abhängig oder schwach. Beispiele für schwache Entitäten sind:

  • Die Bankverbindung eines Kunden, der eine Einzugsermächtigung erteilt hat. Beim Löschen des Kunden ist auch die Einzugsermächtigung zu löschen.
  • Eine Klasse einer Schule. Eine Klasse existiert nur an einer Schule und wird zum Teil auch durch die Attribute des Objekts Schule definiert.

Schwache Entitäten werden in Grafiken als doppelte Rechtecke dargestellt. Zum übergeordneten Element zeigt ein Pfeil:

SchwachEntitie.jpg

Sub- bzw. Supertypen

In der ursprünglichen Notation von Chen gab es keine grafische Notation für Sub- und Supertypen. Sie wurden jedoch in der Folgezeit von Robert Brown und Mat Flavin hinzugefügt. Dabei wird für jeden Subtypen und Supertypen ein eigenes Rechteck verwendet. Die "ist ein -Beziehung" ("is a-Beziehung") wird über das grafische Symbol einer Raute dargestellt.

Definition: Subtyp & Supertyp

Ein Subtyp ist eine Untermenge von übergeordneten Objekten eines Supertyps. Sub- bzw. Supertypen stellen deshalb eine Besonderheit von Objekttypen dar, um Informationen hierarchisch abzubilden.

Da es sich bei einem Einzelobjekt der spezialisierten Menge und der generalisierten Menge um "dasselbe" Einzelobjekt handelt, gelten alle Eigenschaften – insbesondere die Identifikation – und alle Beziehungen des generalisierten Einzelobjektes auch für das spezialisierte Einzelobjekt.

Ein Schüler beispielsweise stellt einen Objekttyp dar, der durch verschiedene Merkmale wie Name, Geschlecht, Wohnort usw. charakterisiert wird. Andererseits gibt es unterschiedliche Arten von Schülern, z.B. Oberstufenschüler und Mittelstufenschüler. Für beide lassen sich gemeinsame Merkmale, wie die Schule, Wohnort oder Fehlstunden finden. Jedoch haben beide auch unterschiedliche Merkmale, z.B. Oberstufenschüler erhalten Punkte von 0 bis 15, Mittelstufenschüler erhalten Noten von 1 bis 6.

Es ist deshalb sinnvoll, einen übergeordneten Objekttyp (Supertyp) zu definieren, in diesem Fall Schüler, der die gemeinsamen Merkmale beinhaltet. Daneben entwirft man zwei weitere untergeordnete Objekttypen (Subtypen) für Oberstufenschüler und Mittelstufenschüler, die vom Supertyp die Merkmale sozusagen erben. Aufgrund der Über- bzw. Unterordnung von Sub- und Supertypen spricht man auch von Hierarchisierung, Generalisierung und Spezialisierung. Spezialisierung bezieht sich in diesem Fall auf den Subtypen, der aufgrund zusätzlicher Attribute genauer spezifiziert wird. Generalisierung bezieht sich auf den Supertypen, der die gemeinsamen allgemeinen Attribute der untergeordneten Objekttypen enthält und Hierarchisierung auf die entstehende Struktur, die eine Hierarchie abbildet.

Darstellung von Sub- bzw. Supertypen

Attribute und Schlüssel

Definition: Attribute und Schlüssel

Attribute sind Informationsobjekte, die Objekttypenbeschreiben oder identifizieren. Attribute, die einen Objekttyp eindeutig identifizieren bezeichnet man als Schlüssel bzw. Schlüsselattribut.

Attribute sollten vollständig für einen Objekttyp aufgeführt werden, soweit sie für den Geschäftszweck notwendig sind. Sie sollten atomar und unabhängig voneinander sein. So setzt sich z.B. der Name einer Person aus zwei Attributen zusammen, dem Vornamen und dem Nachnamen. Würde man nur ein Attribut Name für Vor- und Nachname definieren, so wäre dieses Attribut nicht mehr atomar, da es sich ja in zwei Attribute aufschlüsseln liese.

Man kann ein Objekt mit seinen Attributen sehr gut veranschaulichen:

ER-Modell des Objekts Schüler

Dabei wird der Entity-Typ durch ein Rechteck dargestellt, die Attribute durch mit dem Rechteck verbundene Kreise (bzw. Ellipsen). Ein zusammengesetztes Attribut wie Adresse wird durch entsprechende Folgekreise gezeichnet. Ein Attribut wie vorher besuchte Schule, das einen oder mehrere Einträge haben kann, erscheint als Doppelkreis. Solche Attribute heißen Mehrfachattribute.

In dem dargestellten Beispiel ist die Kombination der Attribute Name, Vorname, Geburtsdatum durch Unterstreichen als Schlüssel gekennzeichnet, denn es erscheint doch extrem unwahrscheinlich, dass es zwei Schüler mit gleichem Nachnamen, Vornamen und Geburtsdatum gibt. Es ist denkbar, dass noch andere Attributmengen mögliche Schlüssel sind. In diesem Fall wird einer der Kandidaten als Primärschlüssel vereinbart. Häufig verwendet man auch künstliche Attribute, um einen Primärschlüssel zu schaffen. In unserem Beispiel könnte dies eine Schüler-Nummer sein, die jedes Entity eindeutig charakterisiert. Primärschlüssel sollten immer minimal gewählt werden, d.h. es werden möglichst wenig Attribute zur Bildung des Primärschlüssels verwendet.

Beziehungen zwischen den Entitäten

Definition: Beziehung

Beziehungen sind Assoziationen zwischen Objekttypen und können grammatikalisch in der Regel durch Verben in einer Textbeschreibung ausgemacht werden.

  • Mehrere Entitäten können zueinander in Beziehung stehen. Beziehungen können zweistellig sein oder mehr als zwei Entitäten einbeziehen.
  • Da Beziehungen wechselseitig sind, ist die Richtung bei der Betrachtung von Bedeutung.
  • Zur grafischen Darstellung von Beziehungen verwendet man eine Raute. Die Verbindungen zu den entsprechenden Entitätsmengen werden durch Linien repräsentiert.

Beispiele für wechselseitige verbale Beziehungsbeschreibungen:

Beziehungsrichtung 1 Beziehungsrichtung 2
Schüler belegt einen Kurs Ein Kurs enthält Schüler
Lehrer unterrichtet einen Kurs Ein Kurs wird von einem Lehrer unterrichtet
Mitarbeiter gehört zu Abteilung Abteilung besteht aus Mitarbeitern
Mitarbeiter hat Vorgesetzten Vorgesetzter hat Mitarbeiter
Kunde bestellt Artikel Artikel wird von Kunde bestellt

Die folgende Grafik stellt den Beziehungstyp besucht zwischen den Entities Schüler und Kurs dar. Dieser Beziehungstyp hat das Attribut Note.

Beziehung im ER-Modell
Beziehungen zwischen Objekttypen enthalten unterschiedliche Merkmale wie Kardinalität und Optionalität. Kardinalität legt fest, wie viele Objekte des einen Objekttyps in Beziehung zu einem Objekt des anderen Objekttyps stehen und umgekehrt. Optionalität legt fest, ob ein Objekt eines Objekttypsimmer in Beziehung zu einem anderen Objekt stehen muss, oder ob es optional ist.

Insgesamt unterscheidet man drei verschiedene Arten von Kardinalitäten.

1:1 - Beziehung

Jedes Entity vom Typ E1 steht höchstens mit einem Entity vom Typ E2 in Beziehung und umgekehrt.

1:1 - Beziehung

Die Grafik veranschaulicht eine 1:1 - Beziehung: Ein Lehrer kann einen Kurs leiten. bzw. Ein Kurs wird von einem Lehrer geleitet.

1:n - Beziehung

Jedes Entity vom Typ E2 steht höchstens mit einem Entity vom Typ E1 in Beziehung, es können aber mehrere aus E2 zum selben Entity aus E1 eine Beziehung haben. n:1-Beziehungen sind natürlich ganz analog definiert.

1:n - Beziehung

Die Grafik veranschaulicht eine 1:n - Beziehung: Eine Klasse (kann) mehrere Schüler enthalten. bzw. Ein Schüler gehört zu einer Klasse.

n:m - Beziehung

Jedes Entity aus E1 kann zu mehreren aus E2 eine Beziehung haben, und jedes Entity aus E2 zu mehreren aus E1.

n:m - Beziehung

Die Grafik veranschaulicht eine n:m - Beziehung: Lehrer unterrichten Klassen. bzw. Eine Klasse kann von mehreren Lehrern unterrichtet werden.

In der ursprünglichen Notation nach Chen können nur Kardinalitäten für die drei oben angegebenen Beziehungen gekennzeichnet werden. Eine Aussage, auf welcher Seite z.B. die 1 bzw. das n stehen muss, wird ebenfalls nicht gegeben.

Probleme gibt es nun allerdings bei der Darstellung von bestimmten optionalen Beziehungen, z.B. kann hier nicht erfasst werden, ob ein Lehrer auch einen Kurs leiten muss. Auf diese Problematik wird in einem späteren Kapitel genauer eingegangen.