Grundlagen von Datenbanken SS Synchronisation paralleler Transaktionen

Größe: px
Ab Seite anzeigen:

Download "Grundlagen von Datenbanken SS Synchronisation paralleler Transaktionen"

Transkript

1 Grundlagen von Datenbanken SS Synchronisation paralleler Transaktionen Prof. Dr. Stefan Böttcher Universität Paderborn Agenda: Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-1

2 Wesentliche Eigenschaften von Transaktionen Transaktionen ( = mehrere Datenbank-Aktionen zusammengefasst zu einer Einheit ) sind : Eigenschaft Bedeutung Beispiel A atomar ganz oder garnicht Überweisung C consistent korrekt Dateneingabe I isoliert ungestört von parallelen Transaktionen Flugbuchung D dauerhaft Daten gesichert Auszahlung Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-2

3 Transaktionsprozeduren Transaktionsprozeduren = Prozeduren / Funktionen / Quellcodefragmente, die als atomare Einheit (ganz oder garnicht) auf der Datenbank ausgeführt werden sollen. Syntax zur Kennzeichnung der Einheit, z.b. Anfang und Ende der Transaktionsprozedur wird bestimmt durch einen der beiden Befehle Commit oder Rollback oder am Anfang steht der Befehl tbegin( ) am Ende steht tcommit( ) oder tabort( ) Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-3

4 Transaktionen einer Transaktionsprozedur Transaktion (= Ausführung einer Transaktionsprozedur auf der Datenbank) eine Folge aus Lese- und oder Schreiboperationen auf der Datenbank, denen ein Begin vorangestellt ist, und an deren Ende entweder Commit oder Abort ausgeführt wird. Commit schreibt Änderungen auf der Datenbank fest, Abort macht die Änderungen dieser Transaktion auf der Datenbank rückgängig. i.d.r. gibt es mehrere Transaktionen pro Transaktionsprozedur. Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-4

5 Transaktionsprozedur Beispiel 1 (SQL) void umbuchung ( int kto1, int kto2, int wieviel ) { stmt.executeupdate( rollback ) ; stmt.executeupdate( update K.stand = K.stand + + wieviel + where K.kto = + kto1 ) ; stmt.executeupdate( update K.stand = K.stand - + wieviel + where K.kto = + kto2 ) ; stmt.executeupdate( commit ) ; } Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-5

6 Mögliche Transaktionen zu Beispiel 1 Eine Beispieltransaktion (T1) < T1: Start > < T1: Konto1 = Konto > < T1: Konto2 = Konto2-100 > < T1: Commit > Eine andere Beispieltransaktion (T2) < T2: Start > < T2: Konto77 = Konto > < T2: Konto88 = Konto88-44 > < T2: Commit > Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-6

7 Transaktionsprozedur Beispiel 2 (Poet OODB) int bestelle ( int kto, Bestellung b ) { tbegin( ) ; aktuellerpreis = DB.Bestellungen.insert(b) ; DB.Konten( kto ). stand -= aktuellerpreis ; if ( DB.Konten( kto ). ueberziehungslimiterschoepft ( ) ; { tabort( ) ; // Datenbankoperationen dieser T zurücksetzen return 255 ; } else { tcommit( ) ; // Datenbankoperationen dieser T festschreiben return 1; } } Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-7

8 Mögliche Transaktionen zu Beispiel 2 Eine Beispieltransaktion (T3) < T3: Start > < T3: Bestellungen.insert( 33, Meier, Teil66 ) > < T3: Konto22 = Konto > < T3: read( Konto22 ) > // noch genug auf dem Konto < T3: Commit > Eine andere Beispieltransaktion (T4) < T4: Start > < T4: Bestellungen.insert( 33, Meier, Teil66 ) > < T4: Konto22 = Konto > < T4: read( Konto22 ) > // nicht genug auf dem Konto < T4: Abort > Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-8

9 Parallele Transaktionen mehrere Transaktionen arbeiten gleichzeitig auf der Datenbank z.b. verschiedene Bestellungen und Umbuchungen und Kontostandsabfragen gleichzeitig Ziele: hoher Parallelitätsgrad erwünscht kritischer Abschnitt geht nicht, fehlerhafte parallele Abläufe sollen vermieden werden 4 typische Fehlerklassen: Lesen schmutziger Daten (= dirty read) nicht wiederholbares Lesen (= non-repeatable read) verlorene Änderung (= lost update) Phantomproblem (= phantom problem) Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-9

10 Fehlerklasse Lesen schmutziger Daten (= Dirty Read) // Summe aller Konten ist 0 < T1: Start > < T1: Konto1 = Konto1-100 > < T1: Konto2 = Konto > < T1: Commit > < T2: Start > < T2: read(konto1) > < T2: read(konto2) > < T2: Commit > // Summe ist -100?? Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-10

11 Nicht-wiederholbares Lesen (= non-repeatable read) < T1: Start > < T1: Konto1 = Konto1-100 > < T1: Commit > < T2: Start > < T2: read(konto1) > < T2: read(konto1) > //?? 2 verschiedene Werte < T2: Commit > Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-11

12 Fehlerklasse Verlorene Änderung (= lost update) < T1: Start > < T1: temp1 = Konto > < T1: Konto1 = temp1 > < T1: Commit > < T2: Start > < T2: temp2 = Konto > < T2: Konto1 = temp2 > < T2: Commit > Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-12

13 Hintergrund der Fehlerklassen (1) - Konflikt Operationen aus T1 und T2 stehen zu einander in Konflikt 2 Operationen (read oder write) auf demselben Objekt (z.b. demselben Datenwert) stehen zueinander in Konflikt, wenn mindestens eine der beiden Operationen eine Schreiboperation (write) ist. Idee: ( Konflikt = Nichtvertauschbarkeit ) 2 Operationen stehen zueinander in Konflikt, wenn sie nicht vertauschbar sind Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-13

14 Hintergrund der Fehlerklassen (2) - Abhängigkeit Operationen jeder Ti gehören unteilbar zusammen Wenn o1 aus T1 zu o2 aus T2 in Konflikt steht, kommt es auf die Reihenfolge von o1 und o2 an: Durch o1 vor o2 entsteht eine Abhängigkeit T1 vor T2 durch o2 vor o1 entsteht eine Abhängigkeit T2 vor T1 T1 vor T2 wäre korrekt oder T2 vor T1 wäre korrekt, aber T1 vor T2 und T2 vor T1 (zyklische Abhängigkeit) ist nicht korrekt. Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-14

15 Gemeinsamkeiten der Fehlerklassen Operationen aus T1 und T2 stehen so zu einander in Konflikt, dass zyklische Abhängigkeiten entstehen T1 vor T2 und T2 vor T1 Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-15

16 Fehlerklasse Lesen schmutziger Daten (= Dirty Read) // Summe aller Konten ist 0 < T1: Start > < T1: Konto1 = Konto1-100 > < T1: Konto2 = Konto > < T1: Commit > < T2: Start > < T2: read(konto1) > < T2: read(konto2) > < T2: Commit > // Summe ist -100?? Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-16

17 Nicht-wiederholbares Lesen (= non-repeatable read) < T1: Start > < T2: Start > < T2: read(konto1) > < T1: Konto1 = Konto1-100 > < T2: read(konto1) > //?? 2 verschiedene Werte < T1: Commit > < T2: Commit > Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-17

18 Fehlerklasse Verlorene Änderung (= lost update) < T1: Start > < T1: temp1 = Konto > < T2: Start > < T2: temp2 = Konto > < T2: Konto1 = temp2 > < T2: Commit > < T1: Konto1 = temp1 > < T1: Commit > Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-18

19 Formale Definition von Serialisierbarkeit (1) Eine Transaktion Ti, von Operationen, T Lies x Schreibe i i ( i ) ist eine partielle Ordnung einer Menge x x ist Datenelement Abbruch, Ende,, i i i mit einer zugehörigen partiellen Ordnungsrelation folgenden Eigenschaften: Abbruch i Abbruch i T i bzw. ist die letzte Operation in d.h. für i alle an anderen Operationen oi T i gilt, oi i Abbruch i bzw. o. i i Ende i - Für jedes Paar oi, o, die in Konflikt stehen, ist 1 i T 2 i entweder o o oder o o. i1 i i i 2 2 i i 1 Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-19 i Ende T i. Ende, T i mit

20 Formale Definition von Serialisierbarkeit (2) Eine vollständige Historie einer Menge von n Transaktionen mit Ordnungsrelationen 1 i n ist eine partielle Ordnung H, H mit Ordnungsrelation H n T i 1 i n H i 1 i und wobei alle Paare von Operationen i H, 1, o2 H die zueinander in Konflikt stehen, werden durch die vollständige Historie geordnet, d. h. 1 H o 2 oder o2 H o 1. H o o, T i Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-20

21 Formale Definition von Serialisierbarkeit (3) Eine Historie Historie H 2 H 1, H' H folgenden Eigenschaften: H' Für Für H alle alle o o 1 1 H ', o, o 2 2 H H' H ' ist ein Präfix einer vollständigen, also eine partielle Ordnung mit gilt gilt : o o o o H' o H'. Historien können also Transaktionen enthalten, die noch nicht vollständig ausgeführt sind. : Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie H ' H o 2 2 o 2 1 H o 2. 1

22 Formale Definition von Serialisierbarkeit (4) Zwei Historien von Transaktionen heißen aquivalent, wenn sie über derselben Menge von Transaktionen definiert sind, dieselben Operationen enthalten und zueinander in Konflikt stehende Operationen nicht abgebrochener Transaktionen in derselben Weise ordnen. Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-22

23 Formale Definition von Serialisierbarkeit (5) Eine vollständige Historie von Transaktionen heißt seriell, wenn für jedes Paar alle Operationen von von T j T T i, T j T i von Transaktionen entweder vor allen Operationen auftreten, oder umgekehrt alle Operationen von vor allen Operationen von auftreten. j T i Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-23

24 Formale Definition von Serialisierbarkeit (6) Eine vollständige Historie von Transaktionen heißt serialisierbar, wenn sie äquivalent zu einer seriellen Historie ist Eine Historie heißt serialisierbar, wenn der Präfix ihrer mit Ende (=Commit) abschlossenen Transaktionen serialisierbar ist. Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-24

25 Serialisierbarkeitstheorem (7) Der Abhängigkeitsgraph einer Historie von Transaktionen enthält einen Knoten pro Transaktion und für jede Abhängigkeit T1 vor T2 eine Kante von T1 nach T2. Eine Historie von Transaktionen ist genau dann serialisierbar, wenn ihr Abhängigkeitsgraph projiziert auf die mit Commit abgeschlossenen Transaktionen zyklenfrei ist. Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-25

26 2-Phasen-Sperren Lese- und Schreibsperren Wird eine angeforderte Sperre nicht gewährt, muss T warten bis die Sperre gewährt wird Operationen auf Sperren: rlock( T, A ) = Transaktion T fordert Lesesperre auf A an wlock( T, A ) = Transaktion T fordert Schreibsperre auf A an unlock( T, A ) = Transaktion T gibt Sperre auf A wieder frei auch benutzte Kurzschreibweise: lock( T, A ) = Transaktion T fordert Lese- oder Schreibsperre auf A an Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-26

27 2-Phasen-Sperren - Legalität T hält beim Schreiben eines Objektes A eine Schreibsperre und beim Lesen eines Objektes eine Schreib- oder Lesesperre Legalität: Für alle Operationen write(t, A) T gilt: es gibt wlock(t,a) T und unlock(t,a) T mit wlock( T, A ) < H write( T, A ) < H unlock( T, A ) Für alle Operationen read(t, A) T gilt: es gibt lock(t,a) T und unlock(t,a) T mit lock( T, A ) < H read( T, A ) < H unlock( T, A ) Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-27

28 2-Phasen-Sperren Sperr-Regel Schreibsperren (wlock) auf A verbieten gleichzeitige andere Sperren auf A, und Lesesperren (rlock) auf A verbieten gleichzeitige andere Schreibsperren auf A rlock wlock rlock ok wait wlock wait wait Sperr-Regel: Für alle wlock(ti,a), unlock(ti,a), wlock(tk,a), unlock(tk,a) mit i k gilt: unlock(ti,a) < H wlock(tk,a) v unlock(tk,a) < H wlock(ti,a) Für alle rlock(ti,a), unlock(ti,a), wlock(tk,a), unlock(tk,a) mit i k gilt: unlock(ti,a) < H wlock(tk,a) v unlock(tk,a) < H rlock(ti,a) Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-28

29 Warum 2-Phasigkeit notwendig ist // Summe aller Konten ist 0 ( z.b. A+B = 0 ) // T1 bucht 100 von A nach B um, T2 liest A und B wlock( T1, A) < T1: A = A > // write(t,a) unlock(t1,a) rlock(t2,a) ; rlock(t2,b) < T2: read(a) > < T2: read(b) > unlock(t2,a) ; unlock(t2,b) wlock(t1,b) // Summe A+B ist -100?? < T1: B = B > unlock(t1,b) // dirty read trotz Legalität und eingehaltener Sperr-Regel Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-29

30 2-phasige Transaktionen Jede Transaktion T muss mit der Freigabe ihrer Sperren warten, bis sie alle Sperren erhalten hat. Sie macht ihre erste Sperrfreigabe erst nach allen Sperranforderungen 2-Phasigkeit einer Transaktion T: Für alle rlock(t,a), wlock(t,b), unlock(t,c) gilt: rlock(t,a) < H unlock(t,c) und wlock(t,b) < H unlock(t,c) Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-30

31 Serialisierbarkeit durch 2-Phasen-Sperren 2-Phasen-Sperren garantiert serialisierbare Historien Serialisierbarkeitssatz für 2-Phasen-Sperren: Jede Historie, die nur aus legalen 2-phasigen Transaktionen besteht und die Sperr-Regel einhält ist serialisierbar. Beweis: Widerspruchsbeweis über die Ordnung < H. Angenommen, die Historie H ist nicht serialisierbar, dann gibt es einen Zyklus im Serialisierbarkeitsgraph mindestens 1 der am Zyklus beteiligten Transaktionen ist nicht legal oder nicht 2-phasig oder H verletzt die Sperr-Regel Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-31

32 Parallele Validierung (nach Kung & Robinson) (1) Zeit Transaktionen T haben 2 oder 3 Phasen T lies aus der Datenbank und schreibe auf lokale Kopien validiere (=prüfe), ob Abhängigkeiten azyklisch sind, d.h., dass T nicht von neuerer Transaktion abhängt nur wenn Validierung erfolgreich war, schreibe lokale Kopien in die Datenbank Lesephase Validierungsphase optionale Schreibphase Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-32

33 Parallele Validierung (nach Kung & Robinson) (2) Zeit Transaktionen T bekommen am Ende der Lesephase ihren Zeitstempel Neuere Transaktionen validieren gegen ältere T lies aus der Datenbank und schreibe auf lokale Kopien hier bekommt die Transaktion T ihren Zeitstempel validiere (=prüfe), ob Abhängigkeiten azyklisch sind, d.h., dass T nicht von neuerer Transaktion abhängt wenn Validierung erfolgreich war, schreibe lokale Kopien in die Datenbank Lesephase Validierungsphase optionale Schreibphase Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-33

34 Parallele Validierung (nach Kung & Robinson) (3) Grundideen: 1. Transaktionen werden nicht gesperrt, müssen nicht warten 2. Lasse neuere Transaktionen vordrängeln, aber auf eigenes Risiko, d.h., wenn sie zu früh gestartet wurden, müssen sie abbrechen und wiederholt gestartet werden. 3. Neuere Transaktionen sind die, die einen späteren Zeitstempel bekommen, d.h. später mit der Lesephase fertig wurden. 4. Um die Datenbank nicht zu beschädigen, schreiben Transaktionen in der Lesephase nur auf lokale Kopien, und nur nach erfolgreicher Validierung schreiben sie (in der Schreibphase) in die Datenbank Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-34

35 Parallele Validierung (nach Kung & Robinson) (4) Wenn es eine Abhängigkeit Tneu Talt geben könnte, breche Tneu ab, d.h. Tneu schreibt nicht in die Datenbank (Tneu hat keine Schreibphase) Zeit Talt Abhängigkeiten Talt Tneu sind o.k. L V [& S] Tneu Lesephase Validierung [ & Schreibphase ] Validierung von Tneu verhindert diese Abhängigkeit Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-35

36 Validierung unterscheidet 3 Gruppen älterer Transaktionen Zeit Talt1 o.k. r Tneu wird bei jeder Abhängigkeit Tneu Talt abgebrochen (zyklische Abhängigkeit wäre möglich) Talt2 writeset(talt2) readset(tneu) = v [& w] r Talt3 writeset(talt3) readset(tneu) = und writeset(talt3) writeset(tneu) = v [& w] r Tneu Lesephase v [& w] Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-36 Validierung [& Schreibphase]

37 Implementierung der Validierungsphase von Tneu Tneu unterteilt alle älteren Transaktionen in 3 Gruppen: 1. Talt1: Transaktionen, die beendet werden, bevor Tneu in der Lesephase ist 2. Talt2: Transaktionen, die beendet werden, während Tneu in der Lesephase ist 3. Talt3: Transaktionen, die beendet werden, nachdem Tneu in der Lesephase war Validierung liefert genau dann false, wenn es eine T Talt2 gibt mit writeset(talt2) readset(tneu) oder wenn es eine T Talt3 gibt mit writeset(talt3) ( readset(tneu) writeset(tneu) ) Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-37

38 Korrektheit der parallelen Validierung time Tneu Talt kann es nicht geben für Told1 o.k. Talt1, denn : ende von Talt1 vor start von Tneu r Talt2, Talt3, weil Validierung das ausschließt Told2 Tneu validiert erfolgreich v writeset(talt2) readset(tneu) = [& w] r Told3 writeset(talt3) readset(tneu) = writeset(talt3) writeset(tneu) = v [& w] r Tnew Lesephase v [& w] Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-38 Validierung [& Schreibphase]

39 Transaktionsprozedur zum Phantomproblem TP1: EXEC SQL insert into Konten values( KontoNr3, 3000 ) ; TP2: EXEC SQL select Count(KontoNr) into :Kontenanzahl from Konten if ( Kontenanzahl 0 ) // zeige Durchschnittsbetrag { EXEC SQL select SUM(KontoStand) into :Summe from Konten println(''durchschnittsbetrag ist :'', Summe / Kontenanzahl ) ; } Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-39

40 Transaktionen zum Phantomproblem T2 stellt fest, dass KontoNr3 nicht existiert < T1: Start > < T1: insert (KontoNr3, 3000 ) > < T1: Commit > < T2: Start > < T2: read(kontonr1) > < T2: read(kontonr2) > < T2: not exists(kontonr3) > < T2: read(kontostand1) > < T2: read(kontostand2) > < T2: read(kontostand3) > < T2: Commit > Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-40

41 Konflikt mit Phantom-Tupeln T2 stellt fest, dass KontoNr3 nicht existiert < T2: not exists(kontonr3) > < T1: insert (KontoNr3, 3000 ) > Vertauschung der Operationen ändert das Ergebnis Konflikt < T1: insert (KontoNr3, 3000 ) > T2 stellt fest, dass KontoNr3 existiert < T2: read(kontonr3) > Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-41

42 Prädikatives Sperren Problem des physischen Sperrens: Es sperrt die gelesenen Tupel der Relation, d.h. nur die gelesenen und als wahr interpretierten Tupel des Schemas Idee zur Verhinderung des Phantomproblems: Sperre alle gelesenen Tupel des Schemas, auch die als falsch interpretierten Tupel des Schemas Realisierung: Benutze Sperren mit Formeln (z.b. des Tupelkalküls) für Mengen von gesperrten Tupeln des Schemas Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-42

43 Prädikatives Sperren - Beispiel Betrag rlock( T1, { t Konto t.betrag > 5000 } ) 5000 wlock( T2, { t Konto t.name >= Q } ) Schema( Konto ) Name Q { t Konto t.betrag > 5000 } { t Konto t.name >= Q } t.betrag > 5000 t.name >= Q ist erfüllbar T2 Sperre nicht gewähren Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-43

44 Prädikatives Sperren - Kritik Hauptkritikpunkt: Test für die Sperrvergabe braucht einen Beweis dauert zu lange Aber unvollständige Beweiser genügen O(Vergleichsanzahl³) Im Zweifelsfall: Sperre nicht gewähren, d.h. Transaktion warten lassen { t Konto t.betrag > 5000 } { t Konto t.name >= Q } t.betrag > 5000 t.name >= Q ist erfüllbar T2 Sperre nicht gewähren Alternativvorschläge: 1. Indexsperren (konzeptuell: eingeschränkte prädikative Sperren) 2. Sperren der EOF-Marke (Hauptkritikpunkt: blockiert alle Einfüger) Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-44

45 Prädikative Validierung Idee zur Verhinderung des Phantomproblems: Benutze zur Validierung Anfrage statt Beweis T validiert von ihr geschriebene alte und neue Werte von Tupeln der Relation gegen Formeln (z.b. des Tupelkalküls) der Lese- und Schreibmengen älterer Transaktionen, d.h. Formeln beschreiben von älteren Transaktionen gelesene bzw. geschriebene Tupel des Schemas + möglich durch Anfrage effizient durchführbar in jedem DBMS implementierbar Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-45

46 Prädikative Validierung - Beispiel Betrag read-set( Talt, { t Konto t.betrag > 5000 } ) write-set( Tneu, Konto + { ( Name= Reich, Betrag=6000 ) } ) Konto - { ( Name= Reich, Betrag=4000 ) } Schema( Konto ) Name Q Reich { t { ( Name= Reich, Betrag=6000 ), ( Name= Reich, Betrag=4000 ) } t.betrag > 5000 } Validierung von Tneu scheitert Tneu abbrechen und neu starten Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Folie 9-46

Synchronisation in Datenbanksystemen in a nutshell

Synchronisation in Datenbanksystemen in a nutshell Synchronisation in Datenbanksystemen in a nutshell 1. Modell für nebenläufige Transaktionen und Korrektheitskriterium Transaktionsmodell: Folgen von Lese und Schreiboperationen abgeschlossen durch c=commit.

Mehr

Datenbanken: Transaktionskonzept und Concurrency Control

Datenbanken: Transaktionskonzept und Concurrency Control Wesentlich für das Arbeiten mit Datenbanken sind konsistente Datenbestände! Folgerung: es muss sichergestellt werden, dass Datenmanipulationen von Benutzern immer in einem erneut konsistenten Zustand der

Mehr

Software-Engineering und Datenbanken

Software-Engineering und Datenbanken Software-Engineering und Datenbanken Transaktionskonzepte 1 Der Transaktionsbegriff Eine Transaktion ist eine Folge von Operationen, die die Datenbank von einem konsistenten Zustand in einen neuen überführen.

Mehr

Koordination des Mehrbenutzerbetriebs 9. Koordination des Mehrbenutzerbetriebs

Koordination des Mehrbenutzerbetriebs 9. Koordination des Mehrbenutzerbetriebs 9. Mehrbenutzerbetrieb: DBS bedient gleichzeitig mehrere Benutzer Benutzer arbeiten zwar unabhängig voneinander, können aber die gleiche Relation oder sogar den gleichen Datensatz bearbeiten! Aktivität

Mehr

Darunter versteht man die Anmeldung eines Benutzers beim System unter Angabe einer Benutzererkennung.

Darunter versteht man die Anmeldung eines Benutzers beim System unter Angabe einer Benutzererkennung. Datenmanagement 60 5 Datenschutz und Datensicherheit 5.1 Datenschutz Wer wird hier geschützt? Personen Ein anderer Begriff für Datenschutz ist Zugriffskontrolle. Datenschutz soll sicherstellen, dass alle

Mehr

... T n T 1 T 2 T 3. Transaktions-Manager. Daten-Manager. Recovery-Manager Puffer-Manager. Datenbank

... T n T 1 T 2 T 3. Transaktions-Manager. Daten-Manager. Recovery-Manager Puffer-Manager. Datenbank Techniken der Schedule-Realisierung T 1 T 2 T 3.... T n Isolations-Eigenschaft wird durch den Scheduler sichergestellt. Aufgabe: : Koordination des Ablaufs konkurrierender Transaktionen so, dass deren

Mehr

Mehrbenutzersynchronisation

Mehrbenutzersynchronisation Kapitel 10 Mehrbenutzersynchronisation 381 / 520 Mehrbenutzersynchronisation Alle TAs strikt seriell (also nacheinander) auszuführen ist sicher, aber langsam Oft werden Systemressourcen nicht voll ausgenutzt,

Mehr

Serialisierbarkeit von Historien: Minimalanforderung bzgl. "akzeptabler" Synchronisation

Serialisierbarkeit von Historien: Minimalanforderung bzgl. akzeptabler Synchronisation Rücksetzbarkeit Serialisierbarkeit von Historien: Minimalanforderung bzgl. "akzeptabler" Synchronisation von Transaktionen zusätzliche Forderung: lokale Rücksetzbarkeit von Historien, d.h. Jede Transaktion

Mehr

1 Transaktionen in SQL. 2 Was ist eine Transaktion. 3 Eigenschaften einer Transaktion. PostgreSQL

1 Transaktionen in SQL. 2 Was ist eine Transaktion. 3 Eigenschaften einer Transaktion. PostgreSQL 1 Transaktionen in SQL Um Daten in einer SQL-Datenbank konsistent zu halten, gibt es einerseits die Möglichkeit der Normalisierung, andererseits sog. Transaktionen. 2 Was ist eine Transaktion Eine Transaktion

Mehr

Mehrbenutzer-Synchronisation

Mehrbenutzer-Synchronisation Mehrbenutzer-Synchronisation Konflikt-Kategorien Serialisierung Historien Sperrungen Verklemmungen Optimistische Synchronisation Synchronisation in SQL Kapitel 11 1 Mehrbenutzersynchronisation Ausführung

Mehr

Mehrbenutzer-Synchronisation

Mehrbenutzer-Synchronisation MehrbenutzerSynchronisation KonfliktKategorien Serialisierung Historien Sperrungen Verklemmungen Optimistische Synchronisation Synchronisation in SQL Mehrbenutzersynchronisation Ausführung der drei Transaktionen,

Mehr

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird. Thomas Studer Relationale Datenbanken: Von den theoretischen Grundlagen zu Anwendungen mit PostgreSQL Springer, 2016 ISBN 978-3-662-46570-7 Dieser Foliensatz darf frei verwendet werden unter der Bedingung,

Mehr

Datenintegrität und Transaktionskonzept

Datenintegrität und Transaktionskonzept und Transaktionskonzept 1. / Datenkonsistenz 1 Mögliche Gefährdung der : Missachtung von Konsistenzbedingungen ("Semantische Integrität") Inkorrekte Verweise auf Datensätze in verschiedenen Tabellen ("Referentielle

Mehr

Tag 4 Inhaltsverzeichnis

Tag 4 Inhaltsverzeichnis Tag 4 Inhaltsverzeichnis Normalformen Problem Formen (1-4) Weitere Formen Transaktionen Synchronisationsprobleme Überblick Autocommit Locking Savepoints Isolation levels Übungen RDB 4-1 Normalformen Problematik

Mehr

Transaktionen Recovery Isolationslevel. Datenbanksysteme. Transaktionen. Burkhardt Renz. Fachbereich MNI Technische Hochschule Mittelhessen

Transaktionen Recovery Isolationslevel. Datenbanksysteme. Transaktionen. Burkhardt Renz. Fachbereich MNI Technische Hochschule Mittelhessen Transaktionen Fachbereich MNI Technische Hochschule Mittelhessen Sommersemester 2015 Motivation ACID-Eigenschaften Übersicht Transaktionen Motivation ACID-Eigenschaften Ursachen für Logging und Backup

Mehr

Synchronisierung von Transaktionen ohne Sperren. Annahme: Es gibt eine Methode, zu erkennen, wann eine Transaktion die serielle Ordnung verletzt.

Synchronisierung von Transaktionen ohne Sperren. Annahme: Es gibt eine Methode, zu erkennen, wann eine Transaktion die serielle Ordnung verletzt. OPTIMISTIC CONCURRENCY CONTROL Synchronisierung von Transaktionen ohne Sperren. Annahme: Es gibt eine Methode, zu erkennen, wann eine Transaktion die serielle Ordnung verletzt. Abbruch einer Transaktion

Mehr

View. Arbeiten mit den Sichten:

View. Arbeiten mit den Sichten: View "individuelle Sicht" (vgl. 3-Schichten-Modell) virtuelle Tabellen: in der DB wird nicht deren Inhalt, sondern nur die Ableitungsregel gespeichert. Arbeiten mit den Sichten: Anfragen: kein Problem.

Mehr

Datenbanksysteme I Transaktionsmanagement. 20.6.2011 Felix Naumann

Datenbanksysteme I Transaktionsmanagement. 20.6.2011 Felix Naumann Datenbanksysteme I Transaktionsmanagement 20.6.2011 Felix Naumann Motivation - Transaktionsmanagement 2 Annahmen bisher Isolation Nur ein Nutzer greift auf die Datenbank zu Lesend Schreibend In Wahrheit:

Mehr

Tag 4 Inhaltsverzeichnis

Tag 4 Inhaltsverzeichnis Tag 4 Inhaltsverzeichnis Normalformen Problem Formen (1-4) Weitere Formen Transaktionen Synchronisationsprobleme Überblick Autocommit Locking Savepoints Isolation levels Übungen RDB 4-1 Normalformen Problematik

Mehr

Kapitel 12 Integrität der Datenbank

Kapitel 12 Integrität der Datenbank Kapitel 12 Integrität der Datenbank 12 Integrität der Datenbank 12 Integrität der Datenbank...1 12.1 Aspekte des Integritätsproblems...3 12.2 Semantische Integrität...4 12.3 Das Konzept der Transaktion...6

Mehr

Transaktionen und Synchronisation konkurrierender Zugriffe

Transaktionen und Synchronisation konkurrierender Zugriffe Transaktionen und Synchronisation konkurrierender Zugriffe Fragestellungen Aufgaben des Transaktionsmanagers Aktivieren von Transaktionen entsprechend den Anforderungen von Anwendungsprogrammen. Dabei

Mehr

Mehrbenutzersynchronisation

Mehrbenutzersynchronisation Mehrbenutzersynchronisation VU Datenbanksysteme vom 4.11. 2015 Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Nebenläufigkeit

Mehr

Literatur und Quellen. Datenbanken. Inhalt. Inhalt. Transaktionen. Nikolaus Augsten. Wintersemester 2013/14

Literatur und Quellen. Datenbanken. Inhalt. Inhalt. Transaktionen. Nikolaus Augsten. Wintersemester 2013/14 Literatur und Quellen Datenbanken Nikolaus Augsten nikolaus.augsten@sbg.ac.at FB Computerwissenschaften Universität Salzburg Wintersemester 2013/14 Lektüre zu den Themen : Kapitel 9 () aus Kemper und Eickler:

Mehr

Datenbanken und Informationssysteme

Datenbanken und Informationssysteme Datenbanken und Informationssysteme Serialisierbarkeit Burkhardt Renz Fachbereich MNI TH Mittelhessen Wintersemester 2015/16 Übersicht Serialisierbarkeit 2-Phasen-Sperrprotokoll (2PL) Verklemmungen Modell

Mehr

Vorlesung Datenbanksysteme Univ.-Prof. Dr. Günther Specht. Universität Innsbruck Institut für Informatik Datenbanken und Informationssysteme (DBIS)

Vorlesung Datenbanksysteme Univ.-Prof. Dr. Günther Specht. Universität Innsbruck Institut für Informatik Datenbanken und Informationssysteme (DBIS) Synchronisation paralleler Transaktionen Kapitel X Vorlesung Datenbanksysteme Univ.-Prof. Dr. Günther Specht Universität Innsbruck Institut für Informatik Datenbanken und Informationssysteme (DBIS) Vorlesungsinhalt

Mehr

P.A. Bernstein, V. Hadzilacos, N. Goodman

P.A. Bernstein, V. Hadzilacos, N. Goodman TRANSAKTIONEN UND DATENINTEGRITÄT Concurrency Control and Recovery in Database Systems P.A. Bernstein, V. Hadzilacos, N. Goodman Addison Wesley, 1987. Kapitel 1. und 6. Grundlagen der Datenbanksysteme

Mehr

Scheduler. vereinfachende Annahmen: alle Transaktionen werden wirksam nur Konflikt-Serialisierbarkeit keine Versionen

Scheduler. vereinfachende Annahmen: alle Transaktionen werden wirksam nur Konflikt-Serialisierbarkeit keine Versionen Scheduler Der Scheduler des Informationssystems hat zunächst die Aufgabe, die Anweisungen von parallel auszuführenden Transaktionen in einer geeigneten Reihenfolge anzuordnen. Darüber hinaus muß er auch

Mehr

Übung Datenbanksysteme I Transaktionen, Selektivität und XML. Thorsten Papenbrock

Übung Datenbanksysteme I Transaktionen, Selektivität und XML. Thorsten Papenbrock Übung Datenbanksysteme I Transaktionen, Selektivität und XML Thorsten Papenbrock Übersicht: Übungsthemen 2 Transaktionen Selektivität XML Thorsten Papenbrock Übung Datenbanksysteme I JDBC Transaktionen:

Mehr

SQL: statische Integrität

SQL: statische Integrität SQL: statische Integrität.1 SQL: statische Integrität Im allgemeinen sind nur solche Instanzen einer Datenbank erlaubt, deren Relationen die der Datenbank bekannten Integritätsbedingungen erfüllen. Integritätsbedingungen

Mehr

Webbasierte Informationssysteme

Webbasierte Informationssysteme SS 2004 Prof. Dr. Stefan Böttcher Universität Paderborn - SS 2004 - Prof. Dr. Stefan Böttcher Folie 1 Was ist eine relationale Datenbank? Menge von Relationen (=Tabellen) und Constraints (=Integritätsbedingungen)

Mehr

Datenbanksysteme Technische Grundlagen Transaktions-Konzept, Mehrbenutzer-Synchronisation, Fehlerbehandlung

Datenbanksysteme Technische Grundlagen Transaktions-Konzept, Mehrbenutzer-Synchronisation, Fehlerbehandlung Datenbanksysteme Technische Grundlagen Transaktions-Konzept, Mehrbenutzer-Synchronisation, Fehlerbehandlung Prof. Dr. Manfred Gruber FH München Transaktions-Konzept (1) Beispiel: op 1 BOT op 2 read(k 1

Mehr

Datenbankadministration

Datenbankadministration Datenbankadministration 11. Synchronisation AG DBIS University of Kaiserslautern, Germany Karsten Schmidt kschmidt@informatik.uni-kl.de (Vorlage TU-Dresden) Wintersemester 2008/2009 Transaktion Transaktion

Mehr

Übungen zur Vorlesung. Datenbanken I

Übungen zur Vorlesung. Datenbanken I Prof. Dr. S. Böttcher Adelhard Türling Übungen zur Vorlesung Datenbanken I WS 2002/2003 Blatt 6 Aufgabe 1: In der Vorlesung haben Sie für die Einbringstrategie Update in Place die Vorgehensweisen steal,

Mehr

5.3 Datenänderung/-zugriff mit SQL (DML)

5.3 Datenänderung/-zugriff mit SQL (DML) 5.3 Datenänderung/-zugriff mit SQL (DML) Hinweis: - DML-Anweisungen sind mengenorientiert - Mit einer Anweisungen kann mehr als ein Tupel eingefügt, geändert, gelöscht oder gelesen werden Benutzungs- und

Mehr

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo. Mengenvergleiche: Mehr Möglichkeiten als der in-operator bietet der θany und der θall-operator, also der Vergleich mit irgendeinem oder jedem Tupel der Unteranfrage. Alle Konten außer das, mit dem größten

Mehr

Unterabfragen (Subqueries)

Unterabfragen (Subqueries) Unterabfragen (Subqueries) Die kürzeste Formulierung ist folgende: SELECT Felderliste FROM Tabelle1 WHERE Tabelle1.Feldname Operator (SELECT Feldname FROM Tabelle2 WHERE Bedingung); wobei Tabelle1 und

Mehr

Grundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn

Grundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn Grundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher

Mehr

8. Synchronisations-Verfahren

8. Synchronisations-Verfahren 8. Synchronisations-Verfahren Die verschiedenen Synchronisationsverfahren unterscheiden sich i.w. dadurch, wie sie die Einhaltung des Serialisierbarkeitsprinzips gewährleisten wann die Prüfung auf Serialisierbarkeit

Mehr

Grundlagen von Datenbanken SS Einführung in das Thema

Grundlagen von Datenbanken SS Einführung in das Thema Grundlagen von Datenbanken SS 2010 1. Einführung in das Thema Agenda: Prof. Dr. Stefan Böttcher Universität Paderborn mit Material von Prof. Dr. Gregor Engels Grundlagen von Datenbanken - SS 2010 - Prof.

Mehr

9 Transaktionskonzept

9 Transaktionskonzept 9 Transaktionskonzept Transaktionskonzept 9.1 Das Transaktionskonzept 9.2 Concurrency & Locking 9.3 Recovery 9.4 JDBC Teil II 9.4.1 Transaktionsmanagement 9.4.2 Objektrelationale Konzepte Schestag Datenbanken

Mehr

Isolationslevel in SQL

Isolationslevel in SQL Isolationslevel in SQL Zu den ACID-Eigenschaften von Transaktionen gehört auch das I, also Isolation. Streng genommen versteht man unter Isolation, dass eine Transaktion unbeeinflusst durch andere Transaktionen

Mehr

Datenbanken II Literatur

Datenbanken II Literatur Datenbanken II Literatur C. J. Date: An Introduction to Database Systems; Addison-Wesley Systems Programming Series. 6th ed. 1995 H. E. Erbs, S. Karczewski und I. Schestag: Datenbanken (Datenmodelle, Objekte,

Mehr

Datenbanken Konsistenz und Mehrnutzerbetrieb III

Datenbanken Konsistenz und Mehrnutzerbetrieb III Datenbanken Konsistenz und Mehrnutzerbetrieb III 1. Oracle Architektur! Komponenten des Oracle Servers! Zugriff über Netzwerk 2. Zugriffsrechte! Starten und Schließen der Datenbank! Nutzer und Rollen!

Mehr

Klausur Datenbanken Wintersemester 2004/2005 Prof. Dr. Wolfgang May 10. Februar 2004, 11-13 Uhr Bearbeitungszeit: 90 Minuten

Klausur Datenbanken Wintersemester 2004/2005 Prof. Dr. Wolfgang May 10. Februar 2004, 11-13 Uhr Bearbeitungszeit: 90 Minuten Klausur Datenbanken Wintersemester 2004/2005 Prof. Dr. Wolfgang May 10. Februar 2004, 11-13 Uhr Bearbeitungszeit: 90 Minuten Vorname: Nachname: Matrikelnummer: Bei der Klausur sind keine Hilfsmittel (Skripten,

Mehr

Kapitel 2 Transaktionsverwaltung

Kapitel 2 Transaktionsverwaltung LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE Skript zur Vorlesung: Datenbanksysteme II Sommersemester 2014 Kapitel 2 Transaktionsverwaltung Vorlesung: PD Dr. Peer

Mehr

Transaktionen in der Praxis. Dr. Karsten Tolle

Transaktionen in der Praxis. Dr. Karsten Tolle Transaktionen in der Praxis Dr. Karsten Tolle Praxisbeispiel in Java Connection con = null; try { con = DriverManager.getConnection("jdbc:db2:sample"); } catch (Exception e) { e.printstacktrace(); } con.setautocommit(false);

Mehr

Unzulänglichkeiten der ANSI-SQL-Isolationslevel [1] Intelligente Datenbanken

Unzulänglichkeiten der ANSI-SQL-Isolationslevel [1] Intelligente Datenbanken Unzulänglichkeiten der ANSI-SQL-Isolationslevel [1] Ausarbeitung zum Seminar Intelligente Datenbanken im Sommersemester 2005 Fabian Klingbeil Universität Bonn Institut für Informatik III am 19.7.2005 Seminar

Mehr

Kapitel 8: Transaktionen

Kapitel 8: Transaktionen Ludwig Maximilians Universität München Institut für Informatik Lehr- und Forschungseinheit für Datenbanksysteme Skript zur Vorlesung Wintersemester 2006/2007 Vorlesung: Dr. Peer Kröger Übungen: Karsten

Mehr

IT-Kompaktkurs. Datenbanken Skript zur Folge 4. Prof. Dr. Manfred Gruber Fachhochschule München

IT-Kompaktkurs. Datenbanken Skript zur Folge 4. Prof. Dr. Manfred Gruber Fachhochschule München Fachhochschule München Munich University of Applied Sciences IT-Kompaktkurs Skript zur Folge 4 Prof. Dr. Manfred Gruber Fachhochschule München manfred.gruber@informatik.fh-muenchen.de Nov 1, 2000 Transaktions-Konzept,

Mehr

Replikation und Synchronisation. in mobilen Datenbanksystemen

Replikation und Synchronisation. in mobilen Datenbanksystemen in mobilen Datenbanksystemen 6. Juni 2002 Von Thomas Hoffmann und Sebastian Seidler E-Mail: {hothomas,bastl14w}@minet.uni-jena.de 1 Inhalt Einleitung Was ist Replikation? Was ist Synchronisation? Replikationsverfahren

Mehr

Datenbanken: Datenintegrität. www.informatikzentrale.de

Datenbanken: Datenintegrität. www.informatikzentrale.de Datenbanken: Datenintegrität Definition "Datenkonsistenz" "in der Datenbankorganisation (...) die Korrektheit der gespeicherten Daten im Sinn einer widerspruchsfreien und vollständigen Abbildung der relevanten

Mehr

Transaktionsverwaltung

Transaktionsverwaltung Transaktionsverwaltung Commit Eigenschaften von Transaktionen (ACID) Transaktionen in SQL Kapitel 9 1 Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1. Lese den Kontostand

Mehr

Teil I Einführung & Grundlagen. 1.1 Was ist eine Transaktion?

Teil I Einführung & Grundlagen. 1.1 Was ist eine Transaktion? Teil I Einführung & Grundlagen Kapitel 1: Einführung in das Transaktionskonzept 1.1 Was ist eine Transaktion? 1.2 Transaktionseigenschaften 1.3 Beispiele Datenbanktransaktionen: Banküberweisung Moderne

Mehr

Der Scheduler. 9. Transaktionsverwaltung. Zustände einer Transaktion. Transaktionsoperationen

Der Scheduler. 9. Transaktionsverwaltung. Zustände einer Transaktion. Transaktionsoperationen 9. Transaktionsverwaltung Der Scheduler Architektur der Transaktionsverwaltung Sperrende und nicht-sperrende Verfahren Transaktionen in SQL-Systemen Transaktionsmonitore T 1 T T 2 n Transaktions- Manager

Mehr

Dr. H. Schuldt. Das Ziel dieser Ubung ist die Untersuchung, wie die in der Vorlesung vorgestellten

Dr. H. Schuldt. Das Ziel dieser Ubung ist die Untersuchung, wie die in der Vorlesung vorgestellten Dr. H. Schuldt Eidgenossische Technische Hochschule Zurich Swiss Federal Institute of Technology Zurich Transaktionsverwaltung in modernen IS Praktische Ubung 1 Beispiellosung Einleitung Das Ziel dieser

Mehr

Teil VIII Transaktionen, Integrität und Trigger

Teil VIII Transaktionen, Integrität und Trigger page.1 Teil VIII Transaktionen, Integrität und Trigger page.2 Transaktionen, Integrität und Trigger Transaktionen, Integrität und Trigger 1 Grundbegriffe 2 Transaktionsbegriff 3 Transaktionen in SQL 4

Mehr

5.8 Bibliotheken für PostgreSQL

5.8 Bibliotheken für PostgreSQL 5.8 Bibliotheken für PostgreSQL Haskell/WASH: Modul Dbconnect PHP: pqsql-funktionen Java/JSP: JDBC Perl: DBI database interface modul Vorläufige Version 80 c 2004 Peter Thiemann, Matthias Neubauer 5.9

Mehr

TAV Übung 3. Übung 3: Verteilte Datenhaltung

TAV Übung 3. Übung 3: Verteilte Datenhaltung Übung 3: Verteilte Datenhaltung 1. Serialisierung Konstruieren Sie Historien aus drei Transaktionen T1, T2 und T3, die folgende Merkmale aufweisen: 1. Die serielle Reihenfolge ist T1 vor T2 vor T3. 2.

Mehr

Gruppe A Bitte tragen Sie sofort und leserlich Namen, Studienkennzahl und Matrikelnummer ein und legen Sie Ihren Studentenausweis

Gruppe A Bitte tragen Sie sofort und leserlich Namen, Studienkennzahl und Matrikelnummer ein und legen Sie Ihren Studentenausweis Gruppe A Bitte tragen Sie sofort und leserlich Namen, Studienkennzahl und Matrikelnummer ein und legen Sie Ihren Studentenausweis bereit. PRÜFUNG AUS DATENBANKSYSTEME VU 184.686 25. 06. 2015 Kennnr. Matrikelnr.

Mehr

Grundlagen verteilter Systeme

Grundlagen verteilter Systeme Universität Augsburg Insitut für Informatik Prof. Dr. Bernhard Bauer Wolf Fischer Christian Saad Wintersemester 08/09 Übungsblatt 3 12.11.08 Grundlagen verteilter Systeme Lösungsvorschlag Aufgabe 1: a)

Mehr

Transaction Validation for XML Documents based on XPath

Transaction Validation for XML Documents based on XPath Transaction Validation for XML Documents based on XPath @ Informatik 2002, m-dbis Stefan Böttcher Adelhard Türling Universität Paderborn Überblick Transaktionen für XML - Daten & mobile Clients Motivation

Mehr

Klausur Datenbanken Wintersemester 2004/2005 Prof. Dr. Wolfgang May 10. Februar 2004, 11-13 Uhr Bearbeitungszeit: 90 Minuten

Klausur Datenbanken Wintersemester 2004/2005 Prof. Dr. Wolfgang May 10. Februar 2004, 11-13 Uhr Bearbeitungszeit: 90 Minuten Klausur Datenbanken Wintersemester 2004/2005 Prof. Dr. Wolfgang May 10. Februar 2004, 11-13 Uhr Bearbeitungszeit: 90 Minuten Vorname: Nachname: Matrikelnummer: Bei der Klausur sind keine Hilfsmittel (Skripten,

Mehr

Transaktionsverwaltung

Transaktionsverwaltung Transaktionsverwaltung VU Datenbanksysteme vom 21.10. 2015 Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Transaktionsverwaltung

Mehr

Datenbanken: Architektur & Komponenten 3-Ebenen-Architektur

Datenbanken: Architektur & Komponenten 3-Ebenen-Architektur Datenbanken: Architektur & Komponenten 3-Ebenen-Architektur Moderne Datenbanksysteme sind nach der 3-Ebenen-Architektur gebaut: Anwendung 1 Web-Anwendung Anwendung 2 Java-Programm... Anwendung n Applikation

Mehr

Wiederanlauf (Recovery)

Wiederanlauf (Recovery) DEVO 8.1 Wiederanlauf (Recovery) DEVO 8.2 Ziele Wiederherstellung eines konsistenten Datenbankzustandes nach einem Fehler. Fehler: Transaktionsabbruch: eine Transaktion muß nach einem logischen Fehler

Mehr

Datenbankentwicklung mit PureBasic

Datenbankentwicklung mit PureBasic Datenbankentwicklung mit PureBasic Datenbanken stellen heutzutage wichtige Informationsquellen für viele Bereiche der Wirtschaft, Verwaltung aber auch im eigenen Haushalt dar. In Datenbanken werden Daten

Mehr

Kapitel 10: Transaktionsverwaltung

Kapitel 10: Transaktionsverwaltung 10. Transaktionsverwaltung Seite 1 Kapitel 10: Transaktionsverwaltung Umfasst diejenigen Komponenten eines Datenbankmanagementsystems, deren Aufgabe die Gewährleistung der Atomizität, Isolation und Dauerhaftigkeit

Mehr

Isolationsstufen für. Dr. Karsten Tolle Dienstag 31. Januar 2012

Isolationsstufen für. Dr. Karsten Tolle Dienstag 31. Januar 2012 Isolationsstufen für Transaktionen / Sicherheit Dr. Karsten Tolle Dienstag 31. Januar 2012 Praxisbeispiel in Java Connection con = null; try { con = DriverManager.getConnection("jdbc:db2:sample"); } catch

Mehr

Datenadminstrator, Datenbankdesigner, Systemanalytiker (für die logische Sicht zuständig)

Datenadminstrator, Datenbankdesigner, Systemanalytiker (für die logische Sicht zuständig) 1 Grundlagen Begriffe Daten bekannte zutreffende Tatsachen über die Domäne/Miniwelt DBS Einsatz eines DBMS für eine Datenbank, DBS besteht aus folgenden Komponenten: 1. DBMS 2. Datenbank DBMS Software

Mehr

Bitte tragen Sie sofort und leserlich Namen, Studienkennzahl und Matrikelnummer ein und legen Sie Ihren Studentenausweis

Bitte tragen Sie sofort und leserlich Namen, Studienkennzahl und Matrikelnummer ein und legen Sie Ihren Studentenausweis Gruppe A Bitte tragen Sie sofort und leserlich Namen, Studienkennzahl und Matrikelnummer ein und legen Sie Ihren Studentenausweis bereit. PRÜFUNG AUS DATENBANKSYSTEME VU 184.686 7. 5. 2014 Kennnr. Matrikelnr.

Mehr

9 Verteilte Verklemmungserkennung

9 Verteilte Verklemmungserkennung 9 Verteilte Verklemmungserkennung 9.1 Grundlagen Für die Existenz einer Verklemmung notwendige Bedingungen Exklusive Betriebsmittelbelegung Betriebsmittel können nachgefordert werden Betriebsmittel können

Mehr

Datenbanksysteme I. Klausur zum Praktikum. Mehrere Professoren prüfen mit genau einem Beisitzer genau einen Studenten.

Datenbanksysteme I. Klausur zum Praktikum. Mehrere Professoren prüfen mit genau einem Beisitzer genau einen Studenten. Lehrstuhl für Datenbanken und Informationssysteme Wintersemester 1999/2000 Universität Augsburg, Institut für Informatik 25. Februar 2000 Prof. Dr. Werner Kießling A. Leubner, M. Wagner Datenbanksysteme

Mehr

10. Updates in SQL 10-1 Teil 10: Updates in SQL. Literatur:

10. Updates in SQL 10-1 Teil 10: Updates in SQL. Literatur: 10. Updates in SQL 10-1 Teil 10: Updates in SQL Literatur: Elmasri/Navathe:Fundamentals of Database Systems, 3rd Edition, 1999. Chap. 8, SQL The Relational Database Standard Kemper/Eickler: Datenbanksysteme

Mehr

Die Grundbegriffe Die Daten Die Informationen

Die Grundbegriffe Die Daten Die Informationen Die Grundbegriffe Die Daten sind diejenigen Elemente, die vom Computer verarbeitet werden. Die Informationen sind Wissenselemente, welche durch die Analyse von Daten erhalten werden können. Die Daten haben

Mehr

Kapitel 8: Transaktionen und ihre Realisierung

Kapitel 8: Transaktionen und ihre Realisierung Vorlesung " WS 98/99 Kapitel 8: Transaktionen und ihre Realisierung Lernziele und Überblick: Transaktionen als Kooperationsmodell, Eigenschaften von Transaktionen Isolation von Transaktionen: Terminologie

Mehr

Einführung in Subversion

Einführung in Subversion Einführung in Subversion Benjamin Seppke AB KOGS Dept. Informatik Universität Hamburg Was ist Subversion? Ein Server-basiertes Versions-Verwaltungs- System Ermöglicht mehreren Benutzern die gemeinsame

Mehr

Prozedurale Datenbank- Anwendungsprogrammierung

Prozedurale Datenbank- Anwendungsprogrammierung Idee: Erweiterung von SQL um Komponenten von prozeduralen Sprachen (Sequenz, bedingte Ausführung, Schleife) Bezeichnung: Prozedurale SQL-Erweiterung. In Oracle: PL/SQL, in Microsoft SQL Server: T-SQL.

Mehr

Datenbanksysteme II SS 2010. Übungsblatt 9: Wiederholung

Datenbanksysteme II SS 2010. Übungsblatt 9: Wiederholung Ludwig-Maximilians-Universität München München, 02.07.2010 Department Institut für Informatik PD Dr. Peer Kröger Andreas Züfle Datenbanksysteme II SS 2010 Übungsblatt 9: Wiederholung Besprechung: 20.07.2010

Mehr

Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr. Praktikum Datenbanken / DB2 Woche 8: Trigger, SQL-PL

Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr. Praktikum Datenbanken / DB2 Woche 8: Trigger, SQL-PL Betreuer: Sascha Kriewel, Tobias Tuttas Raum: LF 230 Bearbeitung: 26., 27. und 29. Juni 2006 Datum Team (Account) Vorbereitung Präsenz Aktuelle Informationen, Ansprechpartner und Material unter: http://www.is.inf.uni-due.de/courses/dbp_ss07/index.html

Mehr

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung Inhalt Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle Daten und Tabellen Normalisierung, Beziehungen, Datenmodell SQL - Structured Query Language Anlegen von Tabellen Datentypen (Spalten,

Mehr

Vorlesung "Verteilte Systeme" Sommersemester 1999. Verteilte Systeme. Adreßraum. Rechner. Verteilte Systeme, Sommersemester 1999 Folie 19.

Vorlesung Verteilte Systeme Sommersemester 1999. Verteilte Systeme. Adreßraum. Rechner. Verteilte Systeme, Sommersemester 1999 Folie 19. Verteilte Systeme 19. Distributed Shared Memory Sharing!! No Sharing! Sharing? Evolution der Berechnungsmodelle Vergangenheit Gemeinsamer Speicher Einzelrechner Gegenwart Nachrichtenkommunikation Verteilte

Mehr

Softwarelösungen: Versuch 4

Softwarelösungen: Versuch 4 Softwarelösungen: Versuch 4 Nichtstun in Schleife wird ersetzt durch zeitweilige Zurücknahme der Anforderung, um es anderen Prozessen zu erlauben, die Ressource zu belegen: /* Prozess 0 */ wiederhole flag[0]

Mehr

Einführung - Anomalien beim ungeschützten und konkurrierenden Zugriff von Lesern und Schreibern auf gemeinsame Daten

Einführung - Anomalien beim ungeschützten und konkurrierenden Zugriff von Lesern und Schreibern auf gemeinsame Daten Synchronisation 0 Einführung - Anomalien beim ungeschützten und konkurrierenden Zugriff von Lesern und Schreibern auf gemeinsame Daten - Synchronisation von Transaktionen: Grundbegriffe und Modellannahmen

Mehr

Kapitel 10: Transaktionen und Datenintegrität

Kapitel 10: Transaktionen und Datenintegrität 1 Kapitel 10: Transaktionen und Datenintegrität Ein DBMS hat die Korrektheit des Datenbankzustandes unter realen Benutzungsbedingungen zu wahren. Dazu gehören die folgenden Punkte: Datensicherheit (Recovery)

Mehr

Recovery- und Buffermanager

Recovery- und Buffermanager Recovery- und Buffermanager Gesamtübersicht der Komponenten beim Zusammenspiel des lokalen Recovery Manager und des Datenbank Buffer Manager: persistenter Log Main memory Lokaler Recovery Manager (LRM)

Mehr

Beispiel: Bankensoftware. 6 Transaktionen. 6.1 Grundlagen 6.1.1 Einführung und Begriffe. Transaktionen. Beispiel (Fortsetzung 1): Verzahnte Ausführung

Beispiel: Bankensoftware. 6 Transaktionen. 6.1 Grundlagen 6.1.1 Einführung und Begriffe. Transaktionen. Beispiel (Fortsetzung 1): Verzahnte Ausführung 6 Transaktionen Beispiel: Bankensoftware 6.1 Grundlagen 6.1.1 Einführung und Begriffe Kritische Abschnitte elementares Mittel zur Konsistenzwahrung bei nebenläufigen Zugriffen Programmierer selbst für

Mehr

3.1 Schedules und Histories

3.1 Schedules und Histories 3 Concurrency Control: Korrektheit Wir betrachten zunächst nur das Seitenmodell (read/write)! 3.1 Schedules und Histories Bislang: Transaktionen = (partiell) geordnete Folgen von (Daten-) Operationen...

Mehr

Die Sicht eines Sysadmins auf DB systeme

Die Sicht eines Sysadmins auf DB systeme Die Sicht eines Sysadmins auf DB systeme Robert Meyer 21. Oktober 2016 Robert Meyer Die Sicht eines Sysadmins auf DB systeme 21. Oktober 2016 1 / 20 Inhaltsverzeichnis 1 Einleitung 2 IO unter Linux typische

Mehr

Vorlesung Informationssysteme

Vorlesung Informationssysteme Saarbrücken, 25.06.2015 Information Systems Group Vorlesung Informationssysteme Vertiefung Kapitel 8: Transaktionen und wann sie gebraucht werden Erik Buchmann (buchmann@cs.uni-saarland.de) Foto: M. Strauch

Mehr

Aufbau Datenbanksysteme

Aufbau Datenbanksysteme Aufbau Datenbanksysteme Lehrveranstaltung Datenbanktechnologien Prof. Dr. Ingo Claßen Prof. Dr. Martin Kempa Hochschule für Technik und Wirtschaft Berlin Speichersystem c Ingo Claßen, Martin Kempa Softwarearchitektur

Mehr

PostgreSQL im praktischen Einsatz. Stefan Schumacher

PostgreSQL im praktischen Einsatz. Stefan Schumacher PostgreSQL im praktischen Einsatz 2. Brandenburger Linux Infotag 2005 Stefan Schumacher , PGP Key http:/// $Header: /home/daten/cvs/postgresql/folien.tex,v 1.11 2005/04/25

Mehr

8. März: Klausurvorbereitung (Durchgehen Klausurähnlicher Aufgaben, Fragestunde)

8. März: Klausurvorbereitung (Durchgehen Klausurähnlicher Aufgaben, Fragestunde) Organisatorisches Termine 2. März: letzte Vorlesung 8. März: Klausurvorbereitung (Durchgehen Klausurähnlicher Aufgaben, Fragestunde) 9. März: Besprechungstermin Übungsblatt 6 (Punkte bisher: siehe Aushang)

Mehr

Daten, Datenbanken, Datenbankmanagmentsysteme

Daten, Datenbanken, Datenbankmanagmentsysteme banken bankmanagmentsysteme Wikipedia sagt Bspe.: : sind zum Zweck der Verarbeitung zusammengefasste Zeichen, die aufgrund bekannter oder unterstellter Abmachungen Informationen tragen. 15.03.2012 als

Mehr

9. Einführung in Datenbanken

9. Einführung in Datenbanken 9. Einführung in Datenbanken 9.1 Motivation und einführendes Beispiel 9.2 Modellierungskonzepte der realen Welt 9.3 Anfragesprachen (Query Languages) 9.1 Motivation und einführendes Beispiel Datenbanken

Mehr

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann Blatt Nr. 11 Übung zur Vorlesung Einsatz und Realisierung von Datenbanksystemen im SoSe15 Moritz Kaufmann (moritz.kaufmann@tum.de)

Mehr

Synchronisation in Java. Invisible Web

Synchronisation in Java. Invisible Web Synchronisation in Java Studienprojekt Invisible Web Tang Zhihong Synchronisation in Java Synchronisationsproblem Monitore Wait und notify PipedInputStream und PipedOutputStream Synchronisation von Collections

Mehr

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL Datenmodifikation mit SQL Folie 45 SQL - Datenmodifikation Einfügen INSERT INTO Relation [(Attribut, Attribut,...)] VALUES (Wert, Wert,...) INSERT INTO Relation [(Attribut, Attribut,...)] SFW-Anfrage Ändern

Mehr

Gliederung Datenbanksysteme

Gliederung Datenbanksysteme Gliederung Datenbanksysteme 5. Datenbanksprachen 1. Datendefinitionsbefehle 2. Datenmanipulationsbefehle 3. Grundlagen zu SQL 6. Metadatenverwaltung 7. DB-Architekturen 1. 3-Schema-Modell 2. Verteilte

Mehr

Objektrelationale und erweiterbare Datenbanksysteme

Objektrelationale und erweiterbare Datenbanksysteme Objektrelationale und erweiterbare Datenbanksysteme Erweiterbarkeit SQL:1999 (Objekt-relationale Modellierung) In der Vorlesung werden nur die Folien 1-12 behandelt. Kapitel 14 1 Konzepte objekt-relationaler

Mehr