Inhaltsverzeichnis
Modellierung
Ausgangspunkt der Modellierung ist die Betrachtung der beteiligten Objekte, die in der Miniwelt vorkommen. Diese werden als Entitäten bezeichnet. Entitäten sind einzelne Ausprägungen von Dingen, Personen oder Vorgängen, die voneinander unterscheidbar, also identifizierbar sein müssen. Eine Entität kann sein:
- eine natürliche oder juristische Person; ein Gegenstand (Produkt, Maschine)
- ein abstrakter Begriff (Fachgebiet)
- ein immaterielles Ding oder ein Sachverhalt (Vorgang, Ereignis, Buchung, Vertragsverhältnis)
Beispiele für Entitäten sind:
- der Bundespräsident
- die Lichtenbergschule
- die Einladung zum diesjährigen Schulfest an unserer Schule.
Gleichartige Entitäten bilden einen Entitätstyp (engl. entity type). Beispiele für Entitätstypen sind:
- Präsidenten
- Schulen
- Einladungen einer Schule
Hilfreich bei der Suche nach geeigneten Entitätstypen zur Konzeption der Datenbank ist der Hinweis, dass Entitätstypen typischerweise durch Substantive beschrieben werden. Die beteiligten Entitätstypen stehen zueinander in Beziehungen. Die Beziehung zwischen je zwei Entitätstypen wird typischerweise durch ein Verb ausgedrückt.
Beispiel
Lehrer unterrichtet Schüler
(Enitätstyp) (Beziehung) (Entitätstyp)
Klassifizierung – Entität/Entitätstyp
Um sachgerecht über Modellierungen sprechen zu können, müssen Fachbegriffe benutzt werden. Fachkompetenz zeigt sich immer auch darin, dass man die Fachbegriffe drauf hat, sowie zielsicher einsetzt und nicht schwammig und diffus versucht Sachverhalte zu beschreiben.
In objektorientierter Terminologie ist ein bestimmter Oberstufenkurs ein Objekt, das bestimmte Attributwerte hat. Ist nicht ein bestimmter Kurs gemeint, sondern der Begriff Kurs allgemein, so wird dieser in der Datenbankterminologie Entitätstyp (engl. entity type) genannt. Weitere für eine Oberstufenverwaltung relevante Entitätstypen sind: Schüler, Lehrer und Räume.
Entität
Eine Entität (engl. entity) ist ein Exemplar von Personen, Gegenständen oder nicht materiellen Dingen über das Informationen gespeichert werden.
Beispiel: der Busfahrer Max Maier.
Entitätstyp
Ein Entitätstyp (engl. entity type) ist eine durch einen Namen eindeutig benannte Klasse von Entitäten, über die die gleichen Informationen gespeichert werden.
Beispiel: Busfahrer
Entitätstypen werden im ER-Diagramm durch Rechtecke dargestellt. Der Name des Entitätstyps steht im Singular im Rechteck. Entitätstypen entsprechen den Karteikästen der traditionellen Informationsspeicherung. Die Bildung von Entitätstypen hängt entscheidend von den jeweiligen Anforderungen ab.
Abstraktion - Festlegung relevanten Eigenschaften – Attribute
Kursbezeichnung, Kursart, Kursthema und Kurshalbjahr sind Eigenschaften, über die ein Kurs beschrieben werden kann. Die Eigenschaften entsprechen den in objektorientierter Terminologie Attributen, genauer gesagt entsprechen Eigenschaftsausprägungen bestimmten Attributwerten.
Attribut
Ein Attribut (engl. attribute) ist die Benennung für eine relevante Eigenschaft aller Entitäten, die in einem Entitätstyp zusammengefasst werden.
Beispiel: Geburtsdatum
Attributwert
Ein Attributwert (engl. attribute value) ist eine spezielle Ausprägung, die ein Attribut für eine konkrete Entität annimmt.
Beispiel: 16.07.1986
Attribute werden im ER-Diagramm durch Ovale dargestellt, der Name des Attributs steht im Singular im Oval. Die Ovale werden durch Strecken mit den zugehörigen Rechtecken der Entitätstypen verbunden.
Attribute müssen soweit zerlegt werden, dass man in der Datenbank-Anwendung nicht auf Teile eines Attributs zugreifen muss. Eine Adresse muss also in Straße, Postleitzahl und Ort zerlegt werden. Man kann Straße und Hausnummer zusammen in einem Attribut StraßeNr speichern, wenn der Zugriff auf die Hausnummer nicht nötig ist. Mehrere Werte dürfen in einem Attribut nicht gespeichert werden, z. B. 1., 2. und 3. Wahl bei der Kurswahl bzw. die Fächer eines Lehrers. Die 1. Normalform verlangt, dass Attribute atomar sein müssen.
ER-Diagramm versus Objektorientierte Modellierung
Ein Datenbankentwurf wird anschaulich als ER-Diagramm dargestellt. Jeder Entitätstyp wird als Rechteck dargestellt, die einen Entitätstyp kennzeichnenden Attribute durch Ovale, die mit dem Rechteck verbunden werden. Beziehungen zwischen Entitätstypen werden als Rauten dargestellt, welche ihrerseits mit Beziehungsattributen verbunden sein können.
Bei objektorientierter Modellierung würde man dieses Klassendiagramm erhalten.
Modellierungsprobleme
Bei jeder Modellierung muss man sich überlegen, ob man die zu verwaltenden Daten modelliert als
- ein einziges Attribut
- eine Menge von Attributen
- einen Entitätstyp
Die Entscheidung darüber hängt von der zu modellierenden Miniwelt ab.
Bei der Modellierung muss auch auf den Unterschied zwischen Attributen und Attributwerten geachtet werden. Zum Beispiel sind Deutsch und Mathematik Attributwerte, aber keine Attribute. Wenn ein Lehrer in mehreren Fächern unterrichtet, so können diese aber auch nicht in einem Attribut Fach zusammengefasst werden. Es wäre ein Verstoß gegen die erste 1. Normalform. Man braucht für die Fächer eines Lehrers eine Beziehung.
Identifizierung der Entitäten – Schlüssel – Primärschlüssel
An unserer Schule gibt es öfters namensgleiche Schülerpaare. Es kam schon vor, dass zwei Schüler mit dem selben Namen sogar in einer Klasse waren. Auch bei der Anwendung einer Datenbank treten schnell Probleme auf, wenn die Datensätze nicht eindeutig identifizierbar sind. Zwar könnte man zu Namen und Vornamen noch das Geburtsdatum hinzunehmen, um einen Schüler eindeutig identifizieren zu können, aber einfacher ist es oft, ein künstliches Attribut, z. B. eine Schülernummer einzuführen, das als Schlüssel benutzt werden kann.
Schlüssel
Ein Schlüssel ist ein Attribut oder Kombination von Attributen, die die Entitäten eindeutig identifizieren.
Beispiel: Schülernummer oder Name, Vorname und Geburtsdatum eines Schülers
Primärschlüssel
Ein Primärschlüssel ist der unter allen möglichen Schlüsseln für das Datenmodell ausgewählte Schlüssel.
Beispiel: Schülernummer
Schlüsselattribute werden im ER-Diagramm und Relationenmodell durch Unterstreichen gekennzeichnet:
Schüler(Schülernummer, Nachname, Vorname, StraßeNr, PLZOrt, Telefon, GebDatum) Kurs(Kursnummer, Thema, Art, Halbjahr, Jahrgangsstufe)
Modellierung von Beziehungen
Bei der objektorientierten Modellierung haben wir gesehen, dass Assoziation, Aggregation und Spezialisierung zur Modellierung von Klassenbeziehungen benutzt werden. Auch bei der Modellierung von Beziehungen im ER-Diagramm sind verschiedene Fälle zu unterscheiden.
Präsentation zum Datenbankentwurf
Aufgaben
Modelliere diese Miniwelten als ER-Diagramm: