Zum Inhalt springen

Informatik · Klasse 11–13 · aktualisiert

Fremdschlüssel: Beziehungen in Datenbanken verstehen

Du lernst, Primär- und Fremdschlüssel zu unterscheiden, Verbindungen in Tabellen zu lesen und die Absicherung in SQL zu erklären.

0 von 8 Aufgaben gelöst

Fremdschlüssel: Beziehungen in Datenbanken verstehen

Kurz gesagt

Der Primärschlüssel ist der eigene, eindeutige Schlüssel einer Tabelle. Ein Fremdschlüssel verweist auf den Primärschlüssel einer anderen oder derselben Tabelle und verbindet so Datensätze. Referenzielle Integrität heißt: Er darf nur auf existierende Datensätze zeigen.

In einer Bibliotheksdatenbank steht bei einer Ausleihe nicht der volle Name samt Buchtitel. Es steht nur eine Nummer, die auf eine andere Tabelle zeigt. So wird jede Information nur genau einmal gespeichert. Diese Nummern sind Fremdschlüssel, und du lernst hier, wie sie funktionieren und abgesichert werden.

Deine Lernziele

Hake ab, was du schon kannst. Löst du alle Aufgaben eines Abschnitts, hakt Mela das Ziel für dich ab.

3 Abschnitte

Eine Tabelle besteht aus Zeilen. Jede Zeile ist ein Datensatz. Damit man einen Datensatz sicher findet, braucht er einen Schlüssel. Das ist eine Spalte oder eine Gruppe von Spalten, deren Werte jede Zeile eindeutig machen.

Pro Tabelle gibt es ein oder mehrere Schlüsselkandidaten. Das sind Spaltenkombinationen, die als Schlüssel möglich wären. Einer davon wird als Primärschlüssel ausgewählt. Der Primärschlüssel ist der eigene Schlüssel des Datensatzes. Er sollte sich zeitlich nicht ändern. Er kann auch aus mehreren Attributen bestehen. Dann heißt er zusammengesetzter Primärschlüssel.

Ein Fremdschlüssel ist etwas anderes: Er ist ein Attribut (oder mehrere Attribute zusammen), das auf einen Primärschlüssel verweist. Wenn sich eine andere Tabelle auf eine Tabelle bezieht, steht dort deren Primärschlüssel als Fremdschlüssel, um auf einen Datensatz zu zeigen. Statt auf den Primärschlüssel kann er auch auf einen Schlüsselkandidaten verweisen. Die Tabelle, auf die er zeigt, kann eine andere oder dieselbe Tabelle sein. Ein Fremdschlüssel ist nicht zwingend eindeutig. Tabellen ganz ohne Fremdschlüssel heißen flache Tabellen.

Kurz: Der Primärschlüssel kennzeichnet die eigene Zeile. Der Fremdschlüssel zeigt auf eine Zeile in einer anderen oder derselben Tabelle. In einer Bibliothek ist bei der Tabelle Entliehen die Kombination (Nutzer-ID, Buch-ID) der Schlüssel. Jedes der beiden Attribute einzeln ist ein Fremdschlüssel.

Definition

Fremdschlüssel

Ein Fremdschlüssel ist ein Attribut oder eine Attributkombination einer Tabelle. Er verweist auf einen Primärschlüssel einer anderen oder derselben Tabelle.

Beispiel: Personalnummer als Fremdschlüssel (ausgedachtes Muster)

  1. 1Ausgedachtes Muster einer Firmendatenbank: Eine Tabelle hat die Attribute Personalnummer, Name, Abteilung und Beschäftigung.
  2. 2Die Personalnummer ist dort höchstwahrscheinlich der Primärschlüssel.
  3. 3Eine weitere Tabelle hat die Attribute Vorgesetzter und Untergebener. In beiden steht jeweils eine Personalnummer.
  4. 4Diese beiden Attribute sind Fremdschlüssel, denn sie verweisen auf die Personalnummer.
  5. 5Mit der Nummer allein kann man wenig anfangen. Name und Abteilung findest du über den Verweis in der ersten Tabelle.

Teste dich

LeichtWelcher Wert steht in einem Fremdschlüssel?

Alles auf einen Blick

Fremdschlüssel

  • Primärschlüssel

    der ausgewählte Schlüsselkandidat, der eigene Schlüssel des Datensatzes

  • Fremdschlüssel

    verweist auf einen Primärschlüssel einer anderen oder derselben Tabelle und ist nicht zwingend eindeutig

  • Tabellenwerte lesen

    Den Fremdschlüsselwert im Primärschlüssel der anderen Tabelle suchen, dort steht der verbundene Datensatz

  • Verknüpfungstabelle

    Eine n:m-Beziehung braucht eine eigene Tabelle mit den Primärschlüsseln beider Tabellen als Fremdschlüssel

  • Referenzielle Integrität

    Fremdschlüsselwerte müssen als Primärschlüsselwerte vorhanden sein

  • SQL

    FOREIGN KEY (Attributliste) REFERENCES Tabellenname (Attributliste) beim Erzeugen der Tabelle mit CREATE TABLE

Musteraufgabe · Schritt für Schritt

Kurse und Lehrer verknüpfen (ausgedachtes Beispiel)

  1. 1Annahme: Die Tabelle Lehrer (LehrerNr, Name) existiert, LehrerNr hat den Datentyp INT und ist ihr Primärschlüssel. Sie enthält die Zeilen 3 und 5.
  2. 2Die Tabelle Kurs soll LehrerNr als Fremdschlüssel erhalten, ebenfalls mit dem Datentyp INT. Die Datentypen passen also zusammen.
  3. 3Schritt 1, allgemeine Form: FOREIGN KEY (Attributliste) REFERENCES Tabellenname (Attributliste)
  4. 4Schritt 2: CREATE TABLE Kurs (KursNr INT NOT NULL PRIMARY KEY, Titel VARCHAR NOT NULL, LehrerNr INT NOT NULL, FOREIGN KEY (LehrerNr) REFERENCES Lehrer (LehrerNr));
  5. 5Schritt 3: Ein Kurs mit LehrerNr 5 ist möglich, denn 5 kommt in Lehrer als Primärschlüssel vor.
  6. 6Schritt 4: Ein Kurs mit LehrerNr 7 wird abgelehnt, denn 7 fehlt in Lehrer. Es gibt eine Fehlermeldung, der Bestand bleibt unverändert.

Fehler finden

Prüfe die Aussagen zur Teilnehmertabelle einer Vorlesung In einer Zeile steckt ein Fehler. Tippe sie an.

Lückentext

Wähl in jeder Lücke das passende Wort und prüf dann deine Antworten.

Der eigene Schlüssel eines Datensatzes heißt . Einen Fremdschlüssel legst du in SQL beim Erzeugen der Tabelle mit fest. Ohne Löschweitergabe wird das Löschen eines Kunden , solange Bestellungen dieses Kunden existieren.

Karteikasten

Erst selbst überlegen, dann umdrehen.

Übung mit Feedback

Abschluss-Check: Fremdschlüssel

LeichtWas ist ein Primärschlüssel?
MittelBei welchem Beziehungstyp braucht man eine eigene Tabelle mit den Primärschlüsseln beider Tabellen als Fremdschlüssel?
SchwerDer Primärschlüssel eines Datensatzes wird geändert. Was bewirkt eine Änderungsweitergabe?

Weiterlesen in Informatik