uni:8:dbs2:start
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| uni:8:dbs2:start [2015-05-05 15:22] – [Aufgabe 2] skrupellos | uni:8:dbs2:start [2020-11-18 18:11] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Datenbanksysteme II ====== | ====== Datenbanksysteme II ====== | ||
| - | ===== Übung 1 ===== | + | * [[übungen]] |
| - | * **Transaktion** \\ Folge von Aktionen (read/ | + | * [[zusammenfassung]] |
| - | * **Hauptaufgabe der Transaktionen - Verwaltung** | + | |
| - | * Synchronisation (Koordination von mehreren Benutzerproxessen => Logische Einbenutzerbetrieb) | + | |
| - | * Recovery (Behebung von Fehlersituationen) | + | |
| - | * **Eigenschaften von Transaktionen (ACID-Prinzip)** | + | |
| - | * **A**tomicy (Atomarität: | + | |
| - | * **C**onsistency (Konsistenz/ | + | |
| - | * **I**solation (Isoliertheit: | + | |
| - | * **D**urability (Dauerhaftigkeit, | + | |
| - | * **Schedule** \\ Folge von Aktionen (read/ | + | |
| - | * **Serieller Schedule** \\ Schedule S von $\{T_1, \ldots, T_n\}$, in dem die Aktionen der einzelnen Transaktionen nicht unter einander verzahnt sind, sondern sin Blöcken hintereinander ausgeführt werden | + | |
| - | * **Serialisierbarer Schedule** \\ Schedule S von $\{T_1, \ldots, T_n\}$, der die selbe Wirkung hat, wie ein belibiger serieller von $\{T_1, \ldots, T_n\}$ => Nur serialisierbarer Schedules dürfen zugelassen werden! | + | |
| - | + | ||
| - | ==== Aufgabe 1 ==== | + | |
| - | Mögliche Abhängigkeiten | + | |
| - | * rw | + | |
| - | * wr | + | |
| - | * ww | + | |
| - | + | ||
| - | Für $S_1$ | + | |
| - | $T_1$ = (r(v), w(v)) | + | |
| - | $T_2$ = (w(x), w(w), r(v)) | + | |
| - | $T_3$ = (w(z), r(y), w(x)) | + | |
| - | $T_4$ = (r(w), r(z), W(y)) | + | |
| - | + | ||
| - | === a === | + | |
| - | => Gleiche Tranasktions- & Aktionsmenge! | + | |
| - | + | ||
| - | Abhängigkeiten: | + | |
| - | * $S_1$: $rw_{4, | + | |
| - | * $S_2$: $rw_{4, | + | |
| - | => $S_1$ & $S_2$ sind nicht Konfliktäquivalent! | + | |
| - | + | ||
| - | === b === | + | |
| - | => Gleiche Tranasktions- & Aktionsmenge! | + | |
| - | + | ||
| - | Abhängigkeiten: | + | |
| - | * $S_1$: $rw_{4, | + | |
| - | * $S_3$: $wr_{3, | + | |
| - | => $S_1$ & $S_2$ sind Konfliktäquivalent! | + | |
| - | + | ||
| - | + | ||
| - | ==== Aufgabe 2 ==== | + | |
| - | Serialisierungs-/ | + | |
| - | * Knoten: Transaktionen | + | |
| - | * Kanten: Abhängigkeiten | + | |
| - | * Zyklenfrei: Topologische Ordnung = serielle Ausführung | + | |
| - | * enthält zyklen: S ist nicht seriallisierbar | + | |
| - | + | ||
| - | a) T1, T2, T4, T3 oder T1, T4, T2, T3 | + | |
| - | b) nicht serialisierbar | + | |
| - | + | ||
| - | ==== Aufgabe 3 ==== | + | |
| - | * a): Lost Update $S(r_1(x), w_2(x), w_1(x))$ \\ => Änderungen einer Transaktion werden durch eine andere Transaktion überschrieben und gehen verloren. | + | |
| - | * b): Dirty Read/Write: $S(w_1(x), r_2(x), w_1(x))$ \\ => Zugriff auf " | + | |
| - | * c): Non-Repeatable Read: $S(r_1(x). w_2(x), r_1(x)$ \\ => Transaktion liest unterschiedliche Werte des selben Objekts | + | |
| - | + | ||
| - | => Annomalien können nur auftreten, wenn // | + | |
| - | + | ||
| - | ===== Übung 2 ===== | + | |
| - | ==== Aufgabe 1 ==== | + | |
| - | Legaler Schedule | + | |
| - | * LOCK (L) vor jedem Zugriff | + | |
| - | * UNLOCK (U) spätestens bei TA=Ende | + | |
| - | * Keine TA fordert Sperre an, die sie bereits besitzt | + | |
| - | * Sperren werden respektiert | + | |
| - | * Man darf keine sperren zurückgeben, | + | |
| - | + | ||
| - | + | ||
| - | * 2-Phasen-Sperrprotokoll (2PL): | + | |
| - | - Wachstumsphase (lock) | + | |
| - | - Schrumpfungsphase (unlock) | + | |
| - | + | ||
| - | Problem von 2PL: Kaskadierendes Rücksetzen (T1 wird nach U1(x) zurückgesetzt (ABORT) => alle T2. die nach U1(x) auf x zugegriffen haben, müssen auch zurückgesetzt werden => Durability | + | |
| - | + | ||
| - | * Striktes 2PL | + | |
| - | * alle Sperren werden bis zum COMMIT gehalten | + | |
| - | * COMMIT wird atomar durchgeführt | + | |
| - | * | + | |
| - | + | ||
| - | Es gild | + | |
| - | * 2PL => serialisierbar | + | |
| - | * serialisierbar NOT => 2PL | + | |
| - | * | + | |
| - | + | ||
| - | S0 | + | |
| - | * wird nicht freigegeben vor TA ende | + | |
| - | * T2 gibt sperre frei, die sie nie hatte | + | |
| - | * => Nicht legal | + | |
| - | S1 | + | |
| - | * nicht legal, da sperre auf x doppelt vergeben wird | + | |
| - | * => Nicht legal | + | |
| - | S2 | + | |
| - | * => Legal | + | |
| - | * => Nicht 2PL, da T1 nach U1(x) noch L1(y) anfordert | + | |
| - | * => s2 ist serialisierbar, | + | |
| - | * | + | |
| - | S3 | + | |
| - | * Unlock von T1 nicht atomar => kein striktes 2PL | + | |
| - | * TODO | + | |
| - | * | + | |
| - | S4 | + | |
| - | * => Legal | + | |
| - | * => 2PL erfüllt | + | |
| - | * | + | |
| - | + | ||
| - | ==== Aufgabe 2 ==== | + | |
| - | Verklemmung bezgl. Zugriff auf Verschiedene Objekte: | + | |
| - | - T1 hält x(x) | + | |
| - | - T1 will x(y) | + | |
| - | - T2 hält x(y) | + | |
| - | - T2 will x(x) | + | |
| - | => Verlemmung, da T1 und T2 gegenseitig warten | + | |
| - | + | ||
| - | Verklemmung bzgl. Sperrkonversion: | + | |
| - | T1 und T2 warten gegenseitig, | + | |
| - | + | ||
| - | Verhungern einer Transaktion auf erforderliche Sperre. | + | |
| - | + | ||
| - | ^bestehend -> \\ angefordert ^ R ^ X ^ | + | |
| - | ^ R | (+) | (-) | | + | |
| - | ^ X | (-) | (-) | | + | |
| - | + | ||
| - | ^bestehend -> \\ angefordert ^ R ^ U ^ X ^ | + | |
| - | ^ R | (+) | (-) | (-) | | + | |
| - | ^ U | (+) | (-) | (-) | | + | |
| - | ^ X | (-) | (-) | (-) | | + | |
| - | + | ||
| - | ^bestehend -> \\ angefordert ^ R ^ A ^ X ^ | + | |
| - | ^ R | (+) | (+) | (-) | | + | |
| - | ^ A | (+) | (-) | (-) | | + | |
| - | ^ X | (-) | (-) | (-) | | + | |
| - | + | ||
| - | + | ||
| - | ^ ^ RX | RUX | RAX | | + | |
| - | ^ a) | (V) | (V) | (V) | | + | |
| - | ^ b) | (V) | (X) | (X) | | + | |
| - | ^ c) | (V) | (X) | (V) | | + | |
| - | + | ||
| - | ==== Aufgabe 3 ==== | + | |
| - | ==== Aufbau ==== | + | |
| - | * DB-Anwendung | + | |
| - | * DBS | + | |
| - | * DBMS | + | |
| - | * DB | + | |
| - | + | ||
| - | | Anwendungen (mehrere) | + | |
| - | ^ | + | |
| - | ^ | + | |
| - | ^ Konzeptionelle Ebene | | | + | |
| - | ^ | + | |
| - | ^ | + | |
| - | ==== Anforderungen ==== | + | |
| - | * **Integration** // | + | |
| - | * **Operationen** auf den Daten (ändern, löschen, ...) | + | |
| - | * **Data Dictionary** Schema anschauen | + | |
| - | * **Benutzersicheten** views | + | |
| - | * **Konsistenzüberwachung** bei Änderung | + | |
| - | * **Zugriffskontrolle** | + | |
| - | * **Transaktionen** | + | |
| - | * **Synchronisation** (Mehrbenutzersystem) | + | |
| - | * **Datensicherung** | + | |
| - | + | ||
| - | * Datensystem (deskriptive Anfragen, Mengenzugriffe) | + | |
| - | * Zugriffssystem (Satzzugriffe) | + | |
| - | * Speichersystem (Seitenzugriffe) | + | |
| - | * DB (Blocktransfer) | + | |
| - | + | ||
| - | Neben an: | + | |
| - | * Transfermanagement??? | + | |
| - | * Metadatenverwaltung | + | |
| - | + | ||
| - | Drüber: | + | |
| - | | + | |
| - | * | + | |
| ===== ACID ===== | ===== ACID ===== | ||
| Line 182: | Line 8: | ||
| * Isolation (Man muss sich aleine fühlen) | * Isolation (Man muss sich aleine fühlen) | ||
| * Durability (Abgeschlossene Transaktionen sind von dauer) | * Durability (Abgeschlossene Transaktionen sind von dauer) | ||
| - | * | ||
| - | |||
uni/8/dbs2/start.1430832163.txt.gz · Last modified: (external edit)
