Ü7 Referentielle Aktionen, Sichten, Serialisierbarkeit und Locking Flashcards
GDB Ü7 Referentielle Aktionen, Sichten, Serialisierbarkeit und Locking
Referentielle Integrität
Potentielle Gefährdung der referentiellen Integrität durch Änderungsoperationen
Referentielle Integrität: Einfügen/Ändern von FS-Attributen an der Sohn-Relation (Kauf)
- Prüfung ob PS zu FS-Wert vorhanden ist
- Operation wird verhindert falls referentielle Integrität verletzt
GDB Ü7 Referentielle Aktionen, Sichten, Serialisierbarkeit und Locking
SQL DDL: Referentielle Aktionen
GDB Ü7 Referentielle Aktionen, Sichten, Serialisierbarkeit und Locking
SQL DDL: Referentielle Aktionen - Reihenfolge-abhängig
GDB Ü7 Referentielle Aktionen, Sichten, Serialisierbarkeit und Locking
Sichtendefinition
GDB Ü7 Referentielle Aktionen, Sichten, Serialisierbarkeit und Locking
Änderbarkeit in Sichten
Sichten gelten als NICHT änderbar, wenn:
- der Primärschlüssel fehlt
- eine Gruppierung und/oder Aggregation angewendet wird
- mehrere Tabellen mit Join oder Kreuzprodukt verknüpft werden
Um sicherzustellen, dass geänderte Tupel nicht aus der Sicht verschwinden, werden Check Options verwendet (wir betrachten nur den Typ CASCADED Check Option).
Ist eine Sicht mit einer Check Option versehen, muss das geänderte Tupel
- alle Bedingungen der betreffenden Sicht und
- alle Bedingungen der Sichten, auf denen die betreffende Sicht aufbaut, erfüllen, damit die Änderungsoperation zulässig ist.
GDB Ü7 Referentielle Aktionen, Sichten, Serialisierbarkeit und Locking
SQL-DML: Änderungen/Löschen/Einfügen
GDB Ü7 Referentielle Aktionen, Sichten, Serialisierbarkeit und Locking
Transaktionsverwaltung: Abhängigkeiten
Zwei Transaktionen sind voneinander abhängig, wenn:
- beide Transaktionen auf dasselbe Objekt zugreifen und
- mindestens eine der Transaktionen auf dieses Objekt schreibt
GDB Ü7 Referentielle Aktionen, Sichten, Serialisierbarkeit und Locking
Transaktionsverwaltung: Serialisierbarkeit
Eine parallele Ablauffolge, bestehend aus n Transaktionen ist serialisierbar, wenn:
- eine serielle Ablauffolge dieser Transaktionen existiert, welche die gleichen Abhängigkeiten enthält
=> (keine Abhängigkeitszyklen existieren)
GDB Ü7 Referentielle Aktionen, Sichten, Serialisierbarkeit und Locking
RX-Sperrverfahren
Sperrmodi
- Sperrmodus des Objektes: NL (no lock), R (read), X (exclusive)
- Sperranforderung einer Transaktion: R, X
Falls Sperre nicht gewährt werden kann, muss die anfordernde TA warten, bis das Objekt freigegeben wird (durch Commit/Abort der sperrenden TA)
GDB Ü7 Referentielle Aktionen, Sichten, Serialisierbarkeit und Locking
2-Phasen-Sperrprotokoll
(2PL)
- 2 Phasen
- Lock-Phase (hier werden alle Sperren gesetzt)
- Unlock-Phase (hier werden alle Sperren freigegeben)
- Prinzip: Es werden erst alle Sperren gesetzt, bevor wieder eine Sperre freigegeben werden darf
- Vorteil: Gewährleistet einen serialisierbaren Schedule
- Nachteil: Kann verklemmen
GDB Ü7 Referentielle Aktionen, Sichten, Serialisierbarkeit und Locking
RX-Sperrverfahren mit 2PL
S1 = w1(a) r2(c) r3(a) r1(b) c1 w2(c) r3(b) c2 c3
GDB Ü7 Referentielle Aktionen, Sichten, Serialisierbarkeit und Locking
RX-Sperrverfahren - Deadlocks/Verklemmungen
Auftreten von Verklemmungen ist inhärent und kann bei pessimistischen Methoden (blockierende Verfahren) nicht vermieden werden