Schlüssel und Constraints

Wie gewährleisten Schlüssel und Constraints die Datenqualität in Datenbanken?

Schlüssel: Eindeutigkeit und Beziehungen sicherstellen

Stell dir eine große Kund:innendatei vor. Ohne eine eindeutige Kundennummer (Primärschlüssel) könntest du Max Müller nicht von einem anderen Max Müller unterscheiden. Der Primärschlüssel ist wie eine einzigartige ID für jeden Datensatz (jede Zeile) in einer Tabelle und stellt die Entitätsintegrität sicher – jeder Datensatz ist eindeutig identifizierbar und der Primärschlüssel darf niemals leer (NULL) sein.
Es gibt verschiedene Arten von Schlüsseln:

  • Superschlüssel: Eine beliebige Kombination von Spalten (Attributen), deren Werte zusammengenommen jeden Datensatz eindeutig identifizieren. Beispiel: In einer Tabelle Personen (PersonenID, SVNummer, Name) wäre (PersonenID, Name) ein Superschlüssel, falls PersonenID allein bereits eindeutig ist. Auch (PersonenID, SVNummer) wäre ein Superschlüssel.
  • Kandidatenschlüssel: Ein minimaler Superschlüssel. Das bedeutet, keine Spalte kann aus ihm entfernt werden, ohne die Eindeutigkeit zu verlieren. In der Tabelle Personen könnten sowohl PersonenID als auch SVNummer (Sozialversicherungsnummer) Kandidatenschlüssel sein, da beide vermutlich eindeutig sind.
  • Primärschlüssel: Einer der Kandidatenschlüssel wird als Primärschlüssel ausgewählt. Er dient als Hauptidentifikator für die Datensätze einer Tabelle. Üblicherweise wählt man hierfür eine Spalte, die kurz, stabil und immer eindeutig ist, wie eine künstlich erzeugte PersonenID.

Constraints: Regeln für korrekte und konsistente Daten

Constraints sind wie die Spielregeln für deine Datenbank. Sie stellen sicher, dass nur gültige und sinnvolle Daten gespeichert werden, und helfen, die Datenqualität und Datenintegrität zu wahren. Diese Regeln helfen, Geschäftsregeln direkt in der Datenbankstruktur abzubilden und durchzusetzen. Einige wichtige Constraint-Typen sind:

  • NOT NULL: Stellt sicher, dass eine Spalte immer einen Wert enthalten muss und nicht leer bleiben darf. Beispiel: Eine E-Mail-Adresse bei der Registrierung darf nicht leer sein.
  • UNIQUE: Garantiert, dass jeder Wert in einer Spalte (oder einer Kombination von Spalten) nur einmal vorkommt. Beispiel: Benutzernamen in einer Community-Plattform müssen einzigartig sein.
  • CHECK: Überprüft, ob die eingegebenen Werte eine bestimmte Bedingung erfüllen. Beispiel: In einer Spalte Alter dürfen nur Werte größer oder gleich 18 eingegeben werden (CHECK (Alter >= 18)).
  • DEFAULT: Legt einen Standardwert für eine Spalte fest, falls beim Einfügen eines neuen Datensatzes kein expliziter Wert angegeben wird. Beispiel: Wenn bei einer Bestellung kein Lieferstatus angegeben wird, wird automatisch 'In Bearbeitung' als Standardwert gesetzt.

Wie werden Beziehungen zwischen Tabellen hergestellt und gesichert?

Fremdschlüssel: Brücken zwischen Tabellen bauen

Ein Fremdschlüssel in einer Tabelle ist eine Spalte (oder eine Gruppe von Spalten), deren Werte mit den Werten des Primärschlüssels einer anderen (oder derselben) Tabelle übereinstimmen müssen. Stell dir eine Tabelle Bestellungen vor. Jede Bestellung gehört zu einer bestimmten Person aus der Tabelle Personen. Die Spalte PersonenID_FK in der Tabelle Bestellungen wäre ein Fremdschlüssel, der auf die Spalte PersonenID (Primärschlüssel) in der Tabelle Personen verweist. So wird sichergestellt, dass jede Bestellung einer existierenden Person zugeordnet ist. Fremdschlüssel sind das Fundament für die Sicherstellung der referentiellen Integrität.

Referentielle Integrität: Konsistenz über Tabellengrenzen hinweg

Referentielle Integrität bedeutet, dass Beziehungen zwischen Tabellen immer konsistent bleiben. Ein Fremdschlüssel-Constraint erzwingt diese Integrität. Das System stellt sicher, dass ein Wert im Fremdschlüssel-Attribut immer einen passenden Wert im Primärschlüssel-Attribut der referenzierten Tabelle hat. Dadurch wird verhindert, dass "verwaiste Datensätze" entstehen – also zum Beispiel Bestellungen, die keiner existierenden Person mehr zugeordnet werden können, weil die entsprechende Person aus der Kundschaft gelöscht wurde. Um diese Konsistenz bei Änderungen zu wahren, gibt es Mechanismen wie:

  • ON DELETE CASCADE: Wenn ein Datensatz in der Primärschlüsseltabelle (z.B. eine Person aus der Kundschaft) gelöscht wird, werden automatisch alle zugehörigen Datensätze in der Fremdschlüsseltabelle (z.B. alle Bestellungen dieser Person) ebenfalls gelöscht.
  • ON UPDATE CASCADE: Wenn der Primärschlüsselwert in der referenzierten Tabelle geändert wird (was in der Praxis seltener vorkommt, aber möglich ist), werden die entsprechenden Fremdschlüsselwerte in der abhängigen Tabelle automatisch mitaktualisiert.
  • ON DELETE SET NULL / ON UPDATE SET NULL: Der Fremdschlüsselwert wird auf NULL gesetzt (falls die Spalte NULL-Werte erlaubt), wenn der referenzierte Datensatz gelöscht oder der Primärschlüssel geändert wird.
  • ON DELETE RESTRICT / NO ACTION bzw. ON UPDATE RESTRICT / NO ACTION: Eine Lösch- oder Update-Operation in der Primärschlüsseltabelle wird verhindert, solange noch abhängige Datensätze in der Fremdschlüsseltabelle existieren.

Lernziele

  • die verschiedenen Arten von Schlüsseln (Primärschlüssel, Fremdschlüssel, Kandidatenschlüssel, Superschlüssel) und deren spezifische Funktionen im relationalen Datenmodell erklären, indem ihre Rolle bei der eindeutigen Identifizierung von Tupeln, der Herstellung von Beziehungen zwischen Relationen und der Sicherstellung der Entitätsintegrität erläutert wird.
  • die unterschiedlichen Arten von Constraints (z.B. NOT NULL, UNIQUE, CHECK, DEFAULT) und deren Bedeutung für die Datenqualität klassifizieren, indem ihre jeweilige Auswirkung auf die zulässigen Datenwerte in Attributen und die Durchsetzung von Geschäftsregeln innerhalb einer Datenbanktabelle dargestellt wird.
  • das Konzept der referentiellen Integrität und dessen Durchsetzung mittels Fremdschlüssel-Constraints interpretieren, indem die Mechanismen zur Sicherstellung konsistenter Beziehungen zwischen Tabellen (z.B. ON DELETE, ON UPDATE Optionen) und die Vermeidung von verwaisten Datensätzen analysiert werden.

Genug gelesen? Zeit, es wirklich zu können!

Die Theorie aus diesem Artikel ist die perfekte Basis. In der asyoube Lernplattform wendest du dieses Wissen an, bekommst persönliches Feedback und bereitest dich interaktiv auf deine Ausbildung oder deine Prüfungen vor.

Für Ausbilder & Unternehmen

Möchten Sie Ihr gesamtes Team mit asyoube ausbilden? Entdecken Sie unsere B2B-Lösung mit einfacher Verwaltung, Fortschritts-Tracking für Ihre Azubis und attraktiven Team-Preisen.