Definiton: Integritätsbedingung (Constraints)
Damit die Integrität der Datenbank bestehen kann, werden Bedingungen festgelegt:

CREATE TABLE table_name (  
    column1 datatype constraint,  
    column2 datatype constraint,  
    column3 datatype constraint,  
    ....  
);

Mögliche Bedingungen wären dabei:
NOT NULL - Eine Spalte kann nicht NULL sein
UNIQUE - Alle Werte der Spalte müssen eindeuting sein
PRIMARY KEY - Kombination aus NOT NULL und UNIQUE, legt eine Spalte als Primärschlüssel fest
FOREIGN KEY - Wenn eine Spalte das Foreign Key constraint hat, können die damit verbundenen Datensätze nicht gelöscht werden.
DEFAULT - Setze einen Standardwert
CHECK - Überprüfe eine bestimmte Bedingung
CREATE INDEX - Erstelle einen Index, um Suchen zu verschnellern

Wenn eine der Bedingungen nicht besteht, dann kann eine Transaktion nicht ausgeführt werden.

Definition: Transaktion
Eine Transaktion ist eine Folge von Anweisung, die alle ausgeführt werden müssen, um ein korrektes Ergebnis zu erhalten. Dies muss insbesondere bei Mehrbenutzersystemen berücksichtigt werden.

Transaktion Onlineverkauf

  • Warenbestand einsehen
  • Warenkorb füllen (Artikel, anzahl)
  • Bezahlung

Fehler:
LostUpdate - zwei konkurrierende Transaktionen T1, T2, T2 überschreibt einen Wert ohne Berücksichtigung der Änderung durch T1
DirtyRead - zwei konkurrierende Transaktionen T1, T2, T2 liest einen Wert ohne Berücksichtigung der Änderung durch T1

ROLLBACK - eine Transaktion wird rückgängig gemacht
COMMIT - eine Transaktion wird in die Datenbank geschrieben

Aufgaben

Aufgabe 1

Beschreiben Sie anhand der Tabelle “Studentenbelegung” die folgenden Anomalien:
- Einfüge-Anomalie: Student ohne Vorlesung
möglich, führt zu Problemen
- Update-Anomalie: Carnap kommt ins 4. Semester
unschön, komplizierte Query, sperrt Datenbank evntl. für längere Zeit
- Lösch-Anomalie: Fichte möchte doch nicht an Vorlesung teilnehmen
Fichte verschwindet aus der Datenbank

Aufgabe 2

Vergleichen Sie mit den Tabellen “2 NF Studentenbelegung, Studenten”

  1. trotzdem noch möglich, führt weiterhin zu problemen
  2. einfach umzusetzen
  3. Vorlesung kann einfach ausgetragen werden, Fichte wird nicht gelöscht

Aufgabe 3

Notiere Integritätsbedingungen für die Tabelle “Studentenbelegung”. Integritätsbedingungen sind Bedingungen, die Anomalien verhindern sollen. Man fordert oder verbietet gewisse Werte oder Wertebereiche für die einzelnen Attribute.

Relationentabelle Studentenbelegung:

  • VorlNR PRIMARY KEY FOREIGN KEY
  • MatrNR PRIMARY KEY FOREIGN KEY

Studenten:

  • Name NOT NULL
  • Semester NOT NULL
  • MatrNr PRIMARY KEY