uni:8:dbs2:zusammenfassung
This is an old revision of the document!
Table of Contents
Zusammenfassung
Grundbegriffe
Anforderungen (Codd)
- Integration einheitlicher Zugriff auf alle Daten einer Anwendung
- Operationen auf den Daten (ändern, löschen, …)
- Data Dictionary Schema anschauen
- Benutzersicheten views
- Konsistenzüberwachung bei Änderung
- Zugriffskontrolle
- Transaktionen
- Synchronisation (Mehrbenutzersystem)
Ebenen
| Anwendungen (mehrere) | |
| Externe Ebene | Views (mehrere) |
|---|---|
| ↓↓ Logische Datenunabhängigkeit ↓↓ | |
| Konzeptionelle Ebene | |
| ↓↓ Physische Datenunabhängigkeit ↓↓ | |
| Interne Ebene | Speicherformat |
ACID
- Atomic (Wenn, dann wird man als ganzes abgebrochen)
- Consistency (Konsistenter Zystand → Konsistenter Zustand)
- Isolation (Man muss sich aleine fühlen)
- Durability (Abgeschlossene Transaktionen sind von dauer)
Synchronisation
Serialisierungs-Graph
| x | y | z | ← Attribute |
|---|---|---|---|
| $r_1$ | $w_2$ | $r_1$ | ← $\text{Operation}_\text{Transaktion}$ |
| $r_2$ | $r_3$ | $w_1$ | |
| $w_2$ | $w_3$ | $r_4$ | |
| $w_3$ |
Spaltenweise von oben nach unten die $wr(x), rw(x), ww(x)$-Paare finden
Anomalien
Lost update
| t1 | r(x) | w(x) | |
|---|---|---|---|
| t2 | w(x) |
Dirty read/write
| t1 | w(x) | w(x) | |
|---|---|---|---|
| t2 | r(x) |
Non-repeatable read
| t1 | r(x) | r(x) | |
|---|---|---|---|
| t2 | w(x) |
Phantom-Problem
Non-repeatable read mit Aggregiertem read
Eigenschaften von Schedules
Eigenschaften eines Schedules:
| Schedule | Beschreibung |
|---|---|
| allgemein | Durcheinander |
| seriell | Blockform |
| serialisierbar | allgemein + seriell (Zyklenfrei) |
| rücksetzbar | commit erst nach commit von denen ich gelesen habe |
| ohne kaskadiertes Rollback | Keine Daten einer laufenden TA lesen |
| strikt | Keine Daten einer laufenden TA lesen/schreiben |
Eigenschaften zwischen Schedules:
| Schedule | Beschreibung |
|---|---|
| konfliktäquivalent | Gleiche Abhängigkeitsmengen |
Locking
Verfahren
(Voll)
| X | |
|---|---|
| X | |
RX
| R | X | |
|---|---|---|
| R | | |
| X | | |
RUX
| R | U | X | |
|---|---|---|---|
| R | | | |
| U | | | |
| X | | | |
RAX
| R | A | X | |
|---|---|---|---|
| R | | | |
| A | | | |
| X | | | |
RIX
| R | X | IR | IX | RIX | |
|---|---|---|---|---|---|
| R | | | | | |
| X | | | | | |
| IR | | | | | |
| IX | | | | | |
| RIX | | | | | |
| Überprüfung auf unterer Ebene nötig |
|---|
RAC
| R | A | C | |
|---|---|---|---|
| R | | | |
| A | | | |
| C | | | |
Eigenschaften
| Verfahren | Kein Verhungern | Deadlockfrei selbes Obj. | Deadlockfrei anderes Obj. | Schedule | Bemerkung |
|---|---|---|---|---|---|
| RX | | | | kaskadierte freies rücksetzen | Parallele Leser |
| RUX | | | | Parallele Leser | |
| RAX | | | | Zwar nach kein verklemmen, dafür verhungern für mehr Parallelität |
uni/8/dbs2/zusammenfassung.1437134128.txt.gz · Last modified: (external edit)
