Entitätstypen und Attribute
Am Anfang jeder Datenbank steht ein Text: die Beschreibung dessen, was gespeichert werden soll. Der erste Schritt besteht darin, aus diesem Text die Bausteine herauszulesen.
Der Ausgangstext
Die Klangwiese, wie das Organisationsteam sie beschrieben hat
„Auf unserem Festival treten Bands auf. Zu jeder Band merken wir uns den Namen, das Gründungsjahr und das Herkunftsland. In einer Band spielen mehrere Personen mit Vorname, Nachname, Geburtsjahr und Land; wir halten fest, welches Instrument jemand in welcher Band spielt und seit wann.
Jede Band gehört zu einem oder mehreren Genres, und zu einem Genre gehören natürlich viele Bands.
Das Festival hat vier Bühnen mit Namen, Fassungsvermögen und der Angabe, ob sie überdacht sind. Ein Auftritt findet an einem Datum zu einer Uhrzeit auf einer Bühne statt, dauert eine bestimmte Zahl von Minuten, und wir zählen die Zuschauer."
Entitäten und Entitätstypen
Eine Entität ist ein einzelnes Ding der realen Welt, über das Daten gespeichert werden sollen – die Band Nordlicht, die Waldbühne, Amira Yildiz.
Ein Entitätstyp fasst alle gleichartigen Entitäten zusammen: Band, Bühne, Person. Aus einem Entitätstyp wird später eine Tabelle.
Ein Attribut ist eine Eigenschaft, die alle Entitäten eines Typs haben: der Name einer Band, das Fassungsvermögen einer Bühne.
Faustregel für den ersten Durchgang:
- Substantive im Plural, über die mehreres gespeichert wird → Kandidaten für Entitätstypen
- Eigenschaften dieser Substantive → Attribute
- Verben, die zwei Substantive verbinden → Beziehungen (nächste Lektion)
Die Regel ist ein Startpunkt, kein Automatismus. Nicht jedes Substantiv wird ein Entitätstyp, und manches Attribut entpuppt sich später als eigener Typ.
Gehe den Ausgangstext oben durch.
a) Unterstreiche alle Substantive, die Entitätstypen sein könnten.
b) Ordne jedem gefundenen Entitätstyp seine Attribute zu.
c) Bei einer Angabe ist unklar, wohin sie gehört: das Instrument. Zu welchem Entitätstyp würdest du es zuordnen – und welches Problem entsteht dabei?
Tipp: Wie prüfe ich, ob ein Attribut richtig sitzt?
Frage: „Hat jede Entität dieses Typs genau einen Wert dafür?" Wenn die Antwort „nein, das hängt davon ab" lautet, sitzt das Attribut falsch.
Ist Auftritt ein Entitätstyp?
Bei Auftritt lohnt ein zweiter Blick. Man kann ihn auf zwei Arten sehen:
- als Beziehung zwischen Band und Bühne („diese Band spielt auf jener Bühne") oder
- als eigenen Entitätstyp mit Datum, Uhrzeit, Dauer und Zuschauerzahl.
Beides ist vertretbar. Sobald eine Beziehung eigene Attribute mitbringt und man sie einzeln ansprechen will – etwa um sie zu bewerten –, ist der Entitätstyp die klarere Wahl. Genau so ist die Klangwiese-Datenbank gebaut: auftritt hat einen eigenen Primärschlüssel, auf den bewertung verweisen kann.
Was kein Entitätstyp wird
Nicht alles, was im Text vorkommt, gehört ins Modell:
- Berechenbares. Die Gesamtdauer aller Auftritte einer Band ist kein Attribut, sondern eine Abfrage. Was man ausrechnen kann, speichert man nicht.
- Einmaliges. „Das Festival" selbst braucht keinen Entitätstyp, solange es nur eines gibt. Sobald es das Festival auch in anderen Städten gibt, ändert sich das.
- Was niemanden interessiert. Ein Modell bildet nicht die Welt ab, sondern den Ausschnitt, den die Anwendung braucht. Die Haarfarbe der Bandmitglieder steht nicht im Text – also gehört sie nicht ins Modell.
Ein zweites Beispiel zum Üben
Der Fahrradverleih
„Unser Verleih hat mehrere Stationen in der Stadt, jede mit Namen, Adresse und Anzahl der Stellplätze. Zu jedem Fahrrad merken wir uns die Rahmennummer, den Typ (Rad oder Lastenrad) und das Anschaffungsjahr. Ein Fahrrad ist immer genau einer Station zugeordnet.
Kundinnen und Kunden melden sich mit Name, Geburtsdatum und E-Mail an. Eine Ausleihe hat einen Startzeitpunkt, einen Endzeitpunkt und einen Preis; sie betrifft genau ein Fahrrad und genau eine Person."
a) Bestimme die Entitätstypen und ihre Attribute.
b) Welche Angabe im Text ist eine Beziehung und kein Attribut?
c) Der Preis einer Ausleihe ergibt sich aus der Dauer und einem festen Minutentarif. Sollte er trotzdem gespeichert werden? Begründe.
Tipp zu c)
Was passiert mit alten Ausleihen, wenn der Tarif erhöht wird?