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 |
---|---|---|---|
r1 | w2 | r1 | ← OperationTransaktion |
r2 | r3 | w1 | |
w2 | w3 | r4 | |
w3 |
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: 2020-11-18 18:10 (external edit)