Informatik

Aufbau einer relationalen Datenbank

Fast alle Datenbanken, die du im Alltag benutzt, sind relational. Das klingt komplizierter, als es ist: Eine relationale Datenbank besteht aus Tabellen, und die Tabellen sind über gemeinsame Werte miteinander verknüpft.

Die Fachbegriffe

Sieh dir diese Tabelle an:

buehne_id name kapazitaet ueberdacht
1 Hauptbuehne 8000 0
2 Waldbuehne 2500 1
3 Zeltbuehne 1200 1
4 Seebuehne 600 0
Alltagswort Fachbegriff Bedeutung
Tabelle Relation eine Menge gleichartiger Datensätze
Zeile Tupel oder Datensatz ein einzelnes Objekt, hier: eine Bühne
Spalte Attribut eine Eigenschaft, die alle Objekte haben
erlaubte Werte einer Spalte Wertebereich (Domäne) z. B. „ganze Zahl" oder „Text bis 40 Zeichen"
Zelle Attributwert ein einzelner Wert

Zwei Regeln machen aus einer beliebigen Tabelle eine Relation:

  1. Jeder Attributwert ist atomar. In einer Zelle steht genau ein Wert, keine Liste. Ein Feld mit Indie, Rock verstößt dagegen.
  2. Die Reihenfolge der Zeilen ist bedeutungslos. Eine Relation ist eine Menge von Tupeln. Wenn du eine bestimmte Reihenfolge brauchst, musst du sie bei der Abfrage anfordern.

Aus 2. folgt etwas Wichtiges: Man kann eine Zeile nicht über ihre Position ansprechen („die dritte Zeile"), sondern nur über ihre Werte.

Das Schema

Wie eine Tabelle gebaut ist, beschreibt man kurz so:

buehne(buehne_id, name, kapazitaet, ueberdacht)

Das Relationenschema nennt den Namen der Relation und ihre Attribute. Der Schlüssel wird unterstrichen oder – wenn das nicht geht – vorangestellt.

Alle Relationenschemata einer Datenbank zusammen bilden das Datenbankschema. Das Schema beschreibt den Aufbau; die tatsächlich gespeicherten Tupel heißen Ausprägung.

Der Unterschied ist derselbe wie zwischen einem Formular und einem ausgefüllten Formular. Das Schema ändert sich selten, die Ausprägung ständig.

Schlüssel

Wenn man Zeilen nicht über ihre Position ansprechen kann – wie dann?

Ein Schlüssel ist eine Attributmenge, deren Werte jedes Tupel einer Relation eindeutig bestimmen. Zu einem Schlüsselwert gehört also immer höchstens ein Tupel.

  • Jede Attributmenge, die das leistet und aus der man kein Attribut mehr weglassen kann, heißt Schlüsselkandidat.
  • Einen der Schlüsselkandidaten wählt man aus; er heißt Primärschlüssel.

In der Tabelle buehne sind buehne_id und name beides Schlüsselkandidaten – beide Werte kommen jeweils nur einmal vor. Gewählt wurde buehne_id.

Warum nimmt man in der Praxis fast immer eine künstliche Nummer als Primärschlüssel und nicht den Namen?

Weil Namen sich ändern. Wird aus der Waldbühne die Lichtungsbühne, müsste man jeden Verweis auf sie anfassen. Eine Nummer ohne Bedeutung ändert sich nie. Man nennt sie künstlicher Schlüssel (Surrogatschlüssel).

Hier ist die Tabelle person der Festivaldatenbank. Sieh sie dir an und entscheide für jede der folgenden Attributmengen, ob sie ein Schlüsselkandidat ist:

a) nachname

b) vorname, nachname

c) person_id

d) person_id, nachname

Tipp 1: Wie prüfe ich das?

Suche nach zwei Zeilen, die im fraglichen Attribut denselben Wert haben. Findest du zwei, ist es kein Schlüssel.

Tipp 2: Vorsicht bei d)

Ein Schlüsselkandidat darf nicht mehr Attribute enthalten als nötig. Frage dich: Wird nachname überhaupt gebraucht, wenn person_id schon dabei ist?

Lösung. Erfrage das Passwort bei deiner Lehrkraft.

Fremdschlüssel

Die Tabellen stehen nicht für sich. Sieh dir an, wie auftritt auf buehne verweist:

In auftritt.buehne_id stehen dieselben Zahlen wie in buehne.buehne_id. So wird die Verbindung hergestellt.

Ein Fremdschlüssel ist ein Attribut (oder eine Attributmenge) einer Relation, das auf den Primärschlüssel einer anderen Relation verweist.

Das Datenbanksystem sorgt dafür, dass jeder Fremdschlüsselwert dort auch wirklich vorkommt. Diese Bedingung heißt referenzielle Integrität.

Probiere aus, was passiert, wenn man dagegen verstößt:

Führe die Anweisung aus und lies die Meldung im Reiter Ausgabe.

a) Wie lautet sie?

b) Ändere die 99 in eine gültige Bühnennummer und führe die Anweisung erneut aus. Prüfe mit einer eigenen Abfrage, ob der Auftritt jetzt in der Tabelle steht.

c) Erkläre, warum ein Datenbanksystem so etwas überhaupt überwacht. Was wäre die Alternative?

Lösung. Erfrage das Passwort bei deiner Lehrkraft.

Selbsttest

Aufbau einer relationalen Datenbank

Teilbare URL erstellen

Abschnitte auswählen