Benutze die Pfeiltasten:
← oder→ zum Blättern
Q: Wie bilde ich den Vorgang "Ein Kunde leiht sich 1 oder mehr Bücher" in der Datenbank ab?
Welche Daten muss ich in den
beiden Tabellen speichern?
Was fällt euch dabei auf?
Ganz oder gar nicht! Eine Änderung (=Transaktion) in der DB findet entweder vollständig, oder gar nicht statt. Stromausfälle oder Systemabstürze führen dazu, dass ein rollback passiert.
Eine DB bleibt nach einer Transaktion konsistent. Das heißt, dass alle Regeln, die innerhalb der DB definiert worden sind eingehalten werden müssen. Andernfalls wird die Änderung nicht durchgeführt.
Die DB sorgt dafür, dass zwei parallel stattfindende Transaktionen nur dann passieren dürfen, wenn der gesamte Vorgang zum selben Ergebnis führt, wie wenn diese Änderungen nacheinander durchgeführt worden wären.
Die DB sorgt dafür, dass eine durchgeführte Transaktion auch auf einen nicht-flüchtigen Speicher geschrieben wird, der einen Stromausfall oder Systemabsturz übersteht.
Die DB muss sich den alten Stand merken und ggfs. dahin zurück kehren. Quasi wie ein Tagebuch. Das kostet Zeit und Speicher.
Die Prüfung und Einhaltung der Regeln kann bei komplexen Vorgängen Zeit und Performance kosten.
Auch hier: Zeit & Performance
Das Schreiben auf die Festplatte ist im Vergleich zum schnellen, aber flüchtigen Arbeitsspeicher des Datenbankservers um ein viel langsamer und blockiert andere Prozesse ggfs. sogar.
Achtung: Sehr viele unterschiedliche Varianten und ganz unterschiedliche Anwendungsfälle. Meist auch Verzicht auf mindestens eine der positiven Eigenschaften von A, C, I oder D !
SELECT data FROM tables
CREATE TABLE [...]
DELETE FROM table [...]
INSERT INTO table [...]
UPDATE table SET [...]
...