Processing math: 100%

Wiki

A universe of ideas

User Tools

Site Tools


uni:8:dbs2:zusammenfassung

This is an old revision of the document!


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

Sperrprotokoll

  • 2PL: / \
  • striktes 2PL: / |

Konsistenzstufen

  • kurz
  • lang: Bis EOT
Konsistenzstufe Schreibsperre Lesesperre
0 kurz -
1 lang -
2 lang kurz
3 lang lang

Sperrverfahren

Verfahren

(Voll)

X
X (-)

RX

R X
R (+) (-)
X (-) (-)

RUX

  • U: update/lesen
R U X
R (+) (-) (-)
U (+) (-) (-)
X (-) (-) (-)

Übergänge:

  • U → X: Möchte jetzt schreiben

RAX

  • A: = U (update/lesen)
R A X
R (+) (+) (-)
A (+) (-) (-)
X (-) (-) (-)

Übergänge:

  • A → X: Möchte jetzt schreiben

RIX

Auf oberer Ebene (Tabelle):

R X IR IX RIX
R (+) (-) (+) (-) (-)
X (-) (-) (-) (-) (-)
IR (+) (-) (+) (+) (+)
IX (-) (-) (+) (+) (-)
RIX (-) (-) (+) (-) (-)
Überprüfung auf unterer Ebene nötig
  • Obere Ebene hat …
    • R
    • X
  • Untere Ebene hat …
    • R ⇒ IR
    • X ⇒ IX
  • Obere Ebene hat R, untere Ebene hat X
    • RIX (mix aus R und IX)

Auf unterer Ebene (Tupel): RX/RUX/RAX

RAC

  • A Änderung Vneu im cache
  • C Valt wird noch von alten Lesern gelesen
R A C
R (+) (+) (+)
A (+) (-) (-)
C (+) (-) (-)

Übergänge:

  • A → C: Bei commit

Eigenschaften

Verfahren Kein Verhungern Deadlockfrei
selbes Obj.
Deadlockfrei
anderes Obj.
Schedule Bemerkung
RX (X) (X) (X) kaskadierte freies rücksetzen Parallele Leser
RUX (V) (V) (X) Parallele Leser
RAX (X) (V) (X) Zwar nach kein verklemmen, dafür verhungern für mehr Parallelität
uni/8/dbs2/zusammenfassung.1437162357.txt.gz · Last modified: 2020-11-18 18:10 (external edit)