Transaktionsverwaltung

Slides:



Advertisements
Ähnliche Präsentationen
Kapitel 15 Verteilte Datenbanken
Advertisements

Deduktive Datenbanken
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
Rücksetzen Bisher betrachtetes Scheduling gewährleistet Isolation, d.h. Serialisierbarkeit, setzt jedoch voraus, dass Transaktionen abgebrochen und rückgesetzt.
Folien 2-5, 7-8 © Prof. Dr. Manfred Rössle (FH Aalen)
System J – Compiler – Praktikum: Datenbanksystementwicklung Knut Stolze
Transaktionsverwaltung
Transaktionsverwaltung
© A. Kemper / A. Eickler1 Fehlerbehandlung (Recovery) 1.Lokaler Fehler in einer noch nicht festgeschriebenen (committed) Transaktion Wirkung muss zurückgesetzt.
1 Fehlerbehandlung (Recovery) 1.Lokaler Fehler in einer noch nicht festgeschriebenen (committed) Transaktion Wirkung muss zurückgesetzt werden R1-Recovery.
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
Objektrelationales Mapping mit JPA Working with Persistent Objects Jonas Bandi Simon Martinelli.
1 Fehlerbehandlung (Recovery) 1.Lokaler Fehler in einer noch nicht festgeschriebenen (committed) Transaktion Wirkung muss zurückgesetzt werden R1-Recovery.
SQL als Abfragesprache
Datensicherheit in DBMS
Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz.
Datenintegrität Referentielle Integrität create table
Datenbanksysteme für FÜ SS 2000 Seite Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz Isolation.
1 Datenintegrität Statische Bedingung (jeder Zustand) Dynamische Bedingung (bei Zustandsänderung) Bisher: Definition eines Schlüssels 1:N - Beziehung Angabe.
Kapitel 13: Mehrbenutzersynchronisation
Kapitel 14: Recovery Oliver Vornberger
1 Kapitel 8: Datenintegrität. 2 Datenintegrität Statische Bedingung (jeder Zustand) Dynamische Bedingung (bei Zustandsänderung) Bisher: Definition eines.
1 Kapitel 12: Transaktionsverwaltung Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück Osnabrück
1 Kapitel 12: Transaktionsverwaltung. 2 Transaktion Bündelung mehrerer Datenbankoperationen Mehrbenutzersynchronisation Recovery.
15.1 Synchronisation nebenläufiger Prozesse
Kapitel 9: Integritätssicherung
Erhard Künzel für Info 9. Klasse: Digitale Schule Bayern© Erhard Künzel.
Datenbanken 10: Einfügen, Ändern, Löschen
Recovery AIFB SS Recovery 5.1 Fehler im Datenbankbetrieb(1/10) (1)Transaktionsfehler (TF) (2)Systemfehler (SF) (3)Speicherfehler (SpF) Fehlerfallen.
RelationentheorieObjektorientierte Datenbanken AIFB SS Das ODMG-Objektmodell vs. relationales Modell (1/9) ODMG-Objektmodell Literal_type Atomic_literal.
Einige Begriffe zum Anfang.... Transaktionsprozedur: Folge primitiver Operationen als Einheit der Konsistenz und der Robustheit. Transaktion (TA): Ausführung.
Recovery AIFB SS (1/8) Sicherungspunkte (Checkpoints) (1/8) (1) Transaktions-Orientierte Sicherungspunkte Transaction-Oriented Checkpoint.
Ausführungsmodell Zustandsübergang einer Transaktion aus Nutzersicht:
Modellierung von Transaktionen Zur Formalisierung der ACID-Garantien muss Verhalten von Transaktionen modelliert werden. Folge aus der Forderung nach lokaler.
Synchronisation paralleler Transaktionen AIFB SS Konzept der Transaktion 4.2 Konzept der Transaktion (1/4) Eine Transaktion ist ein in sich geschlossener,
Betriebliche Informationssysteme Prof. Dr. Michael Löwe
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenmanipulation Lehrbuch, Kapitel 4.
WS 2012/13 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #11 Transaktionsverwaltung.
WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Vorlesung #6 Fehlerbehandlung.
WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #10 Transaktionsverwaltung.
Vorlesung #9 Fehlerbehandlung
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #8 SQL (Teil 3)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #7 SQL (Teil 4)
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #7 SQL (Teil 4)
Datenbanksysteme für hörer anderer Fachrichtungen
Transaktion Huang Zhenhao FU Shuai.
Relationales Datenmodell und DDL
Datenbanksysteme Technische Grundlagen Transaktions-Konzept, Mehrbenutzer-Synchronisation, Fehlerbehandlung Prof. Dr. Manfred Gruber FH München.
Lokales 2-Phasen-Festschreibe- Protokoll Segment-Verwalter führt commit(T i ) in zwei Phasen aus: Phase 1: Sicherstellung der Wiederholbarkeit. –Für jedes.
Transaktionen Dr. Heidrun Bethge Datenbanken II.
Fehlerbehandlung (Recovery)
Semantische Integritätsbedingungen  AIFB SS Überwachung von Integritätsbedingungen (1/3) Dem DBMS muß mitgeteilt werden, wann eine Integritätsbedingung.
Prof. K. Gremminger Folie 1 Vorlesung Datenbanksysteme SS 2002 Abhängigkeiten zwischen Transaktionen (Fehlerklassen) u Lost-Update-Problem u Dirty Read.
Vs Verteilte Transaktionen Situation:Fragmentierung: Ein Datenbestand ist über mehrere Stationen verteilt (z.B. verteilte Datenbank, verteiltes Dateisystem,...)
6.3 Verteilte Transaktionen
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 SQL Zusammenfassung.
Datenbanken erstellen mit PostgreSQL
Datenbanken abfragen mit SQL
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
SQL Basics Schulung –
6.3 Verteilte Transaktionen
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
Vorlesung #7 SQL (Teil 4).
Constraints anlegen und löschen, Data Dictionary Tabellen
Transaktionsabbruch, System Crash, Media Failure
Vorlesung #7 Fehlerbehandlung
Vorlesung #7 Fehlerbehandlung
Vorlesung #10 Fehlerbehandlung
 Präsentation transkript:

Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: Lese den Kontostand von A in die Variable a: read(A,a); Reduziere den Kontostand um 50.- Euro: a:= a – 50; Schreibe den neuen Kontostand in die Datenbasis: write(A,a); Lese den Kontostand von B in die Variable b: read(B,b); Erhöhe den Kontostand um 50,- Euro: b := b + 50; Schreibe den neuen Kontostand in die Datenbasis: write(B, b); Transaktionen - Intro

Operationen auf Transaktions-Ebene In den klassischen Transaktionssystemen: begin of transaction (BOT): Mit diesem Befehl wird der Beginn einer eine Transaktion darstellende Befehlsfolge gekennzeichnet. commit: Hierdurch wird die Beendigung der Transaktion eingeleitet. Alle Änderungen der Datenbasis werden durch diesen Befehl festgeschrieben, d.h. sie werden dauerhaft in die Datenbank eingebaut. abort / rollback: Dieser Befehl führt zu einem Selbstabbruch der Transaktion. Das Datenbanksystem muss sicherstellen, dass die Datenbasis wieder in den Zustand zurückgesetzt wird, der vor Beginn der Transaktionsausführung existierte. Transaktionen - Intro

Abschluss einer Transaktion Für den Abschluss einer Transaktion gibt es zwei Möglichkeiten: Den erfolgreichen Abschluss durch ein commit. Den erfolglosen Abschluss durch ein abort / rollback. Transaktionen - Intro

Eigenschaften von Transaktionen: ACID Atomicity (Atomarität) Alles oder nichts Consistency Konsistenter Zustand der DB  konsistenter Zustand Isolation Jede Transaktion hat die DB „für sich allein“ Durability (Dauerhaftigkeit) Änderungen erfolgreicher Transaktionen dürfen nie verloren gehen Transaktionen - Intro

Transaktionsverwaltung in SQL commit: Die in der Transaktion vollzogenen Änderungen werden – falls keine Konsistenzverletzung oder andere Probleme aufgedeckt werden – festgeschrieben. rollback: Alle Änderungen sollen zurückgesetzt werden. Anders als der commit-Befehl muss das DBMS die „erfolgreiche“ Ausführung eines rollback-Befehls immer garantieren können. Transaktionen - Intro

Verschiedene Arten von Fehlern Computer-Fehler Hardware- oder Softwarefehler während der Transaktionsausführung. Plattenausfall Transaktions-Fehler Fehler durch Transaktions-Operation z.B. Division durch Null Lokale Fehler Zustände, die ein Beenden der Transaktion bewirken z.B. Von der Transaktion benötigte Daten werden nicht gefunden. Concurrency Fehler Abort der Transaktion aufgrund von Concurrency-Konflikten. Physikalische Probleme & Katastrophen Stromausfall, Feuer, Wasser, ... trotz all dieser Fehler soll das DBMS dafür sorgen, dass Daten konsistent bleiben und dauerhaft gespeichert bleiben. Transaktionen - Intro

Eigenschaften von Transaktionen Absturz T1 T2 t3 t1 t2 Zeitachse Abb.: Transaktionsbeginn und –ende relativ zu einem Systemabsturz Transaktionen - Intro

Sofortiges Transaktionsende Folgende SQL-Befehle bewirken ein sofortiges Transaktionsende (auch dann, wenn die Transaktion vorher aus vielen Anweisungen bestand) Es wird ein Commit-Befehl automatisch generiert mit: CREATE TABLE, CREATE INDEX, CREATE VIEW, CREATE TRIGGER ALTER TABLE, ALTER INDEX, ALTER VIEW DROP TABLE, DROP INDEX, DROP VIEW, DROP TRIGGER GRANT, REVOKE Transaktionen - Intro

Transaktionsverwaltung in SQL Beispiel: (set autocommit off) begin insert into Vorlesungen(VorlNr, Titel, SWS, gelesenvon) values (5275, `Physik`, 3, 2141); insert into Professoren(PersNr, Name, Rang, Raum) values (2141, `Curie`, `C4`, 205); commit / rollback Transaktionen - Intro

Check erst am Transaktions-Ende DEFERRED-Clause verschiebt die Prüfung des Constraints ans Ende der Transaktion CREATE TABLE bsp ( zahl NUMBER, CONSTRAINT unq_num UNIQUE (zahl) INITIALLY DEFERRED DEFERRABLE); Standardwert: INITIALLY IMMEDIATE Check des Constraints direkt nach Absetzen des SQL-Befehls NOT DEFERRABLE -> Check lässt sich nicht ans Ende der Transakton verschieben, auch nicht mit Session/Transaktions-Einstellungen SET CONSTRAINT ALL DEFERRED / IMMEDIATE in aktueller Transaktion alle Constraint-Prüfungen ans Ende schieben / sofort ausführen ALTER SESSION SET CONSTRAINTS=DEFERRED Einstellung für gesamte Session Transaktionen - Intro

Savepoints savepoint: definiert Sicherungspunkt, auf den sich die (noch aktive) Transaktion zurücksetzen lässt. Das DBMS muss sich dazu alle bis zu diesem Zeitpunkt ausgeführten Änderungen an der Datenbasis "merken". Diese Änderungen dürfen aber noch nicht in der Datenbasis festgeschrieben werden, da die Transaktion durch ein abort immer noch gänzlich aufgegeben werden kann. insert into R values (5, 6); savepoint my_sp_1; insert into R values (7, 8); savepoint my_sp_2; insert into R values (9, 10); rollback to my_sp_1; insert into R values (11, 12); commit; Transaktionen - Intro

Zustandsübergangs-Diagramm für Transaktionen verdrängen inkarnieren potentiell aktiv wartend einbringen beenden neustarten abbrechen wiederholbar gescheitert zurücksetzten abbrechen abbrechen aufgegeben abgeschlossen festschreiben persistent Transaktionen - Intro