Transaktionsverarbeitung

Größe: px
Ab Seite anzeigen:

Download "Transaktionsverarbeitung"

Transkript

1 Transaktionsverarbeitung Lehrveranstaltung Datenbanktechnologien Prof. Dr. Ingo Claßen Prof. Dr. Martin Kempa Hochschule für Technik und Wirtschaft Berlin Mechanismen zur Umsetzung von Transaktionen Einbettung von Transaktionen in Anwendungsprogramme Transaktionssysteme Steuerung der Nebenläufigkeit Wiederherstellung in Java c Ingo Claßen, Martin Kempa

2 Transaktionen Folge von Datenbankanweisungen, die als Einheit betrachtet werden Beispiel: Geld von einem Unterkonto auf ein anderes überweisen Kontonummern auswählen: uk1nr, uk2nr Betrag eingeben: betrag // Überprüfung ob Unterkonto 1 gedeckt ist if ok then update Konto set Kontostand = Kontostand - :betrag where KontoNr = :uk1nr update Konto set Kontostand = Kontostand + :betrag where KontoNr = :uk2nr end c Ingo Claßen, Martin Kempa 2/58 Transaktionsverarbeitung

3 ACID-Eigenschaften Atomarität (atomicity) Ausführung aller Aktionen oder keiner Konsistenz (consistency) Überführung der Datenbank von einem konsistenten in einen konsistenten Zustand Isolation (isolation) Keine Beeinflussung parallel ablaufender Transaktionen Dauerhaftigkeit (durability) Bestätigte Veränderungen dürfen nicht verloren gehen c Ingo Claßen, Martin Kempa 3/58 Transaktionsverarbeitung

4 Mechanismen zur Sicherstellung von ACID Einbettung von Transaktionen in Anwendungsprogramme Programmtechnische Transaktionssteuerung Schnittstelle zwischen Anwendungsprogramm und Transaktionsmanager Transaktionssysteme Transaktionsmanager Transaktionsmonitore Steuerung der Nebenläufigkeit (concurrency control) Synchronisation von Zugriffen auf gemeinsame Daten Wiederherstellung (recovery) Herstellung eines konsistenten Zustands nach Fehlern c Ingo Claßen, Martin Kempa 4/58 Transaktionsverarbeitung

5 Einbettung von Transaktionen in Anwendungsprogramme Transaktionssysteme Steuerung der Nebenläufigkeit Wiederherstellung Transaktionssteuerung BOT Beginn der Transaktion (Begin of Transaction) COMMIT Erfolgreiches Ende ROLLBACK Abbruch c Ingo Claßen, Martin Kempa 5/58 Transaktionsverarbeitung

6 Einbettung von Transaktionen in Anwendungsprogramme Transaktionssysteme Steuerung der Nebenläufigkeit Wiederherstellung Kontrollfluss zwischen Datenbanksystem und Anwendungsprogramm Anwendungsprogramm Datenbanksystem Transaktionsbeginn Sicherstellen der Rücksetzbarkeit von Änderungsoperationen Aufruf einer Datenbankoperation Änderungen ausführen Überprüfen von unverzögerten Integritätsbedingungen Transaktionsende Überprüfen der verzögerten Integritätsbedingungen Sicherstellen der Wiederholbarkeit aller Änderungen Weiterarbeit Anwendungsprogramm Sichtbarmachen von Änderungen Bestätigung über erfolgreiches Ende c Ingo Claßen, Martin Kempa 6/58 Transaktionsverarbeitung

7 Einbettung von Transaktionen in Anwendungsprogramme Transaktionssysteme Steuerung der Nebenläufigkeit Wiederherstellung Architekturvarianten AP: Anwendungsprogramm TM: Transaktionsmanager RM: Ressourcenmanager c Ingo Claßen, Martin Kempa 7/58 Transaktionsverarbeitung

8 Einbettung von Transaktionen in Anwendungsprogramme Transaktionssysteme Steuerung der Nebenläufigkeit Wiederherstellung Transaction-Processing-Monitor (TP-Monitor) Betriebssystem für Transaktionsverarbeitung Reduktion der Anwendungsentwicklungs-Komplexität Effiziente Ressourcen-Nutzung Hoher Durchsatz c Ingo Claßen, Martin Kempa 8/58 Transaktionsverarbeitung

9 Einbettung von Transaktionen in Anwendungsprogramme Transaktionssysteme Steuerung der Nebenläufigkeit Wiederherstellung Vermeidung von Anomalien Anomalien Nebeneffekte durch verzahnten Ablauf von Transaktionen Sperren Erreichung der Isolation durch Kontrolle der Nebenläufigkeit Konsistenzstufen Umsetzung der Isolation in SQL c Ingo Claßen, Martin Kempa 9/58 Transaktionsverarbeitung

10 Einbettung von Transaktionen in Anwendungsprogramme Transaktionssysteme Steuerung der Nebenläufigkeit Wiederherstellung Anomalie: Lost Update a = 80 freie Plätze 5 Neubuchungen, 4 Stornierungen Erwartetes Ergebnis für a: 79 freie Plätze Tatsächliches (falsches) Ergebnis für a: 84 freie Plätze T1: Neubuchungen T2: Stornierungen read a a = a - 5 read a a = a + 4 write a write a c Ingo Claßen, Martin Kempa 10/58 Transaktionsverarbeitung

11 Einbettung von Transaktionen in Anwendungsprogramme Transaktionssysteme Steuerung der Nebenläufigkeit Wiederherstellung Anomalie: Dirty Read a = 1 freier Platz Eine Neubuchung keine freien Plätze mehr T2 führt keine Aktion aus, da keine freien Plätze mehr T1 bricht ab. T2 hätte buchen können, hat aber einen nicht bestätigten Wert gelesen T1: Reservierung letzter Platz T2: Versuch einer Reservierung read a a = a - 1 write a read a Anscheinend keine Plätze frei Keine weitere Aktion Reservierung wird nicht bestätigt Abbruch der Transaktion c Ingo Claßen, Martin Kempa 11/58 Transaktionsverarbeitung

12 Einbettung von Transaktionen in Anwendungsprogramme Transaktionssysteme Steuerung der Nebenläufigkeit Wiederherstellung Anomalie: Non-repeatable Read Wiederholtes Lesen von a in T2 führt zu unterschiedlichen Werten Phantome sind eine spezielle Form des non-repeatable read. Neue Datensätze erscheinen im Laufe der Bearbeitung T1: Neubuchungen T2: Wiederholtes Lesen read a read a a = a - 5 write a read a c Ingo Claßen, Martin Kempa 12/58 Transaktionsverarbeitung

13 Einbettung von Transaktionen in Anwendungsprogramme Transaktionssysteme Steuerung der Nebenläufigkeit Wiederherstellung Isolation durch Setzen von Sperren read, write Lesen und Schreiben von Daten. Entspricht select und update von SQL slock (shared lock) Sperren auf Daten, die von mehreren Transaktionen gemeinsam gesetzt werden können xlock (exclusive lock) Exklusive Sperre, kann nur von einer Transaktion gesetzt werden unlock Aufhebung von Sperren bot, commit, rollback Starten einer Transaktionen, erfolgreiches Abschließen bzw. Verwerfen der durchgeführten Operationen c Ingo Claßen, Martin Kempa 13/58 Transaktionsverarbeitung

14 Einbettung von Transaktionen in Anwendungsprogramme Transaktionssysteme Steuerung der Nebenläufigkeit Wiederherstellung Transaktionen mit Sperren Transaktionen sind Listen von Aktionen, die mit begin starten und mit commit oder rollback enden T1 bot slock a xlock b read a write b commit T2 bot slock a read a xlock b write b rollback c Ingo Claßen, Martin Kempa 14/58 Transaktionsverarbeitung

15 Einbettung von Transaktionen in Anwendungsprogramme Transaktionssysteme Steuerung der Nebenläufigkeit Wiederherstellung Ersetzung von bot, commit und rollback Weglassen von bot Endet eine Transaktion mit commit, so wird dieses durch eine Liste von unlock-operationen ersetzt. Für jedes slock a oder xlock a wird ein unlock a erzeugt Endet eine Transaktion mit rollback, so wird dieses durch eine Liste von write- und unlock-operationen ersetzt. Die unlock- Operationen werden wie im commit-fall erzeugt. Die write- Operationen schreiben wieder die alten Werte zurück und bewirken damit ein Rückgängigmachen der ausgeführten Operationen T1 slock a xlock b read a write b unlock a unlock b T2 slock a read a xlock b write b write b (undo) unlock a unlock b c Ingo Claßen, Martin Kempa 15/58 Transaktionsverarbeitung

16 Einbettung von Transaktionen in Anwendungsprogramme Transaktionssysteme Steuerung der Nebenläufigkeit Wiederherstellung Verträglichkeit von Sperren Angeforderter Modus Erteilter Modus slock xlock slock + 1 xlock 2 1 +: verträglich 2 : nicht verträglich c Ingo Claßen, Martin Kempa 16/58 Transaktionsverarbeitung

17 Einbettung von Transaktionen in Anwendungsprogramme Transaktionssysteme Steuerung der Nebenläufigkeit Wiederherstellung Sperrprotokolle Varianten für das Setzen von Sperren Keine Sperren Setzen von slock vor dem Lesen von Daten Setzen von xlock vor dem Schreiben von Daten Sperrdauer Kurze Sperren: direkt nach dem Benutzen wieder freigeben (vor Transaktionsende) Lange Sperren: erst am Transaktionsende freigeben c Ingo Claßen, Martin Kempa 17/58 Transaktionsverarbeitung

18 Einbettung von Transaktionen in Anwendungsprogramme Transaktionssysteme Steuerung der Nebenläufigkeit Wiederherstellung Lösung für Lost Update mit Sperren T1 xlock a read a a = a - 5 T2 xlock a (blockiert, da nicht verträglich) write a unlock a read a (Sperre kann jetzt erteilt werden) a = a + 4 write a unlock a c Ingo Claßen, Martin Kempa 18/58 Transaktionsverarbeitung

19 Einbettung von Transaktionen in Anwendungsprogramme Transaktionssysteme Steuerung der Nebenläufigkeit Wiederherstellung Hierachische Sperren Sperrgranularität/-hierachie Spalte, Datensatz, Seite, Tabelle, Datei, Datenbank Erweiterte Sperrmodi IX: Vorhaben eine gemeinsame oder exklusive Sperre auf einer niedrigeren Ebene zu setzen (intend exclusive) IS: Vorhaben eine gemeinsame Sperre auf einer niedrigeren Ebene zu setzen (intend share) SIX: Setzen einer gemeinsamen Sperre auf höherer Ebene und Vorhaben eine exklusive Sperre auf einer niedrigeren Ebene zu setzen (shared and intend exclusive) U: Setzen einer gemeinsamen Sperre, die ggf. in eine exklusive Sperre umgewandelt werden kann c Ingo Claßen, Martin Kempa 19/58 Transaktionsverarbeitung

20 Einbettung von Transaktionen in Anwendungsprogramme Transaktionssysteme Steuerung der Nebenläufigkeit Wiederherstellung Kompatibilitätsmatrix Angeforderter Modus Erteilter Modus IS IX S SIX U X IS IX + + S + + SIX + U + X c Ingo Claßen, Martin Kempa 20/58 Transaktionsverarbeitung

21 Einbettung von Transaktionen in Anwendungsprogramme Transaktionssysteme Steuerung der Nebenläufigkeit Wiederherstellung SQL-Konsistenzstufen Read Uncommitted Keine slock, Daten ändern nicht erlaubt Read Committed Kurze slock, lange xlock Repeatable Read Lange slock, lange xlock Serializable Lange slock, lange xlock, xlock auf höherer Ebene Anomalie Dirty Read Non-repeatable Read Konsistenzstufe Phantome Read Uncommitted Read Committed + + Repeatable Read + Serializable c Ingo Claßen, Martin Kempa 21/58 Transaktionsverarbeitung

22 Einbettung von Transaktionen in Anwendungsprogramme Transaktionssysteme Steuerung der Nebenläufigkeit Wiederherstellung Systemkomponenten Fehlerarten Transaktionsfehler Systemfehler Gerätefehler c Ingo Claßen, Martin Kempa 22/58 Transaktionsverarbeitung

23 Einbettung von Transaktionen in Anwendungsprogramme Transaktionssysteme Steuerung der Nebenläufigkeit Wiederherstellung Ausschreibungsstrategien Änderungen vor Commit Nosteal: Keine Ausschreibung schmutziger Änderungen Steal: Ausschreibung schmutziger Änderungen Beim Commit Force: Ausschreibung von Änderungen vor Abschluss Commit Noforce: Kein Zwang zur Ausschreibung von Änderungen vor Abschluss Commit Force NoForce Steal Undo-Recovery Kein Redo-Recovery Undo-Recovery Redo-Recovery NoSteal nicht möglich Kein Undo-Recovery Redo-Recovery c Ingo Claßen, Martin Kempa 23/58 Transaktionsverarbeitung

24 Einbettung von Transaktionen in Anwendungsprogramme Transaktionssysteme Steuerung der Nebenläufigkeit Wiederherstellung Protokollierung (Logging) Do-Redo-Undo-Prinzip Prinzipieller Aufbau von Protokolleinträgen T = Transaktions-ID [start transaction, T] [write, T, x, Wert vorher, Wert nacher] [commit, T] c Ingo Claßen, Martin Kempa 24/58 Transaktionsverarbeitung

25 Einbettung von Transaktionen in Anwendungsprogramme Transaktionssysteme Steuerung der Nebenläufigkeit Wiederherstellung Protokolierungsregeln Write-Ahead-Log-Prinzip Erst Undo-Informationen in Log schreiben Auf Festplatte sichern Dann schmutzige Änderungen in die DB einbringen Commit-Regel Erst Redo-Informationen in Log schreiben Auf Festplatte sichern Dann Commit durchführen Wiederherstellung nach Systemfehler Undo aller Änderungen ohne Commit im Log Redo aller Änderungen mit Commit Log c Ingo Claßen, Martin Kempa 25/58 Transaktionsverarbeitung

26 Einbettung von Transaktionen in Anwendungsprogramme Transaktionssysteme Steuerung der Nebenläufigkeit Wiederherstellung Gesamtsicherung und Wiederherstellung (Backup) Speicherung auf einem externen Medium (z. B. Band) Gesamte DB Log-Dateien Zeitlicher Rahmen Gesamte DB selten, dauert lange, kein normaler Betrieb Log-Dateien häufig Recovery Gesamte DB einspielen Log abarbeiten: Redo aller Transaktionen mit Commit c Ingo Claßen, Martin Kempa 26/58 Transaktionsverarbeitung

27 mit Konsistenzstufen Tabelle Plaetze VeranstaltungsNr Bezeichnung FreiePlaetze DMDB DBTECH REALDBAS 21 c Ingo Claßen, Martin Kempa 27/58 Transaktionsverarbeitung

28 Konsistenzstufe: Read Committed Transaktion 1 update PLAETZE set FREIE_PLAETZE = FREIE_PLAETZE - 5 where VERANSTALTUNGSNR = Transaktion 2 select * from PLAETZE Ergebnis Transaktion 2 bleibt stehen, da Transaktion 1 eine Sperre auf Zeile setzt. Damit wird das Lesen nicht bestätigter Änderungen verhindert. c Ingo Claßen, Martin Kempa 28/58 Transaktionsverarbeitung

29 Konsistenzstufe: Read Committed Transaktion 1 select * from PLAETZE Transaktion 2 update PLAETZE set FREIE_PLAETZE = FREIE_PLAETZE - 5 where VERANSTALTUNGSNR = Ergebnis Transaktion 2 läuft durch, da sie Ihre Sperren trotz des Lesens von Transaktion 1 setzen kann. c Ingo Claßen, Martin Kempa 29/58 Transaktionsverarbeitung

30 Konsistenzstufe: Read Committed Transaktion 1 update PLAETZE set FREIE_PLAETZE = FREIE_PLAETZE - 5 where VERANSTALTUNGSNR = Transaktion 2 update PLAETZE set FREIE_PLAETZE = FREIE_PLAETZE - 3 where VERANSTALTUNGSNR = Ergebnis Beide Transaktionen laufen durch, da die Sperren auf verschiedene Zeilen gesetzt werden. c Ingo Claßen, Martin Kempa 30/58 Transaktionsverarbeitung

31 Konsistenzstufe: Read Uncommitted Transaktion 1 update PLAETZE set FREIE_PLAETZE = FREIE_PLAETZE - 5 where VERANSTALTUNGSNR = Transaktion 2 select * from PLAETZE Ergebnis Transaktion 2 läuft durch und berücksichtigt auf Grund der Konsistenzstufe Read-Uncommitted die Sperren nicht. Damit wird das Lesen nicht bestätigter Änderungen zugelassen. c Ingo Claßen, Martin Kempa 31/58 Transaktionsverarbeitung

32 Konsistenzstufe: Repeatable Read Transaktion 1 select * from PLAETZE Transaktion 2 update PLAETZE set FREIE_PLAETZE = FREIE_PLAETZE - 5 where VERANSTALTUNGSNR = Ergebnis Transaktion 2 bleibt stehen. So wird verhindert, das Transaktion 1 beim nochmaligen Lesen der Daten durch Transaktion 2 geänderte Werte erhält. c Ingo Claßen, Martin Kempa 32/58 Transaktionsverarbeitung

33 Konsistenzstufe: Repeatable Read Transaktion 1 select * from PLAETZE Transaktion 2 insert into PLAETZE values ( , DB4,10) Ergebnis Transaktion 2 läuft durch, da Repeatable-Read Phantome zulässt. Ein nochmaliges Lesen innerhalb der noch offenen Transaktion 1 würde die eingefügte Zeile anzeigen. c Ingo Claßen, Martin Kempa 33/58 Transaktionsverarbeitung

34 Konsistenzstufe: Serializable Transaktion 1 select * from PLAETZE Transaktion 2 insert into PLAETZE values ( , DB4,10) Ergebnis Transaktion 2 bleibt stehen, da Serializable keine Phantome zulässt. Um dieses Verhalten zu erreichen muss eine Sperre auf die gesamte Plätze-Tabelle gesetzt werden. c Ingo Claßen, Martin Kempa 34/58 Transaktionsverarbeitung

35 Lokale Transaktionen Methoden zur Transaktionssteuerung in der Schnittstelle Connection Standardmäßig arbeiten Verbindungen im AutoCommit-Modus, d. h. jede einzelne SQL-Anweisung wird als eigenständige Transaktion betrachtet ohne commit bzw. rollback aufzurufen. Transaktionen werden nicht explizit gestartet. Der Start erfolgt implizit durch die erste SQL-Anweisung bzw. durch die erste SQL-Anweisung nach Aufruf des letzten commit bzw. rollback. public interface Connection { public static final int TRANSACTION_READ_UNCOMMITTED; public static final int TRANSACTION_READ_COMMITTED; public static final int TRANSACTION_REPEATABLE_READ; public static final int TRANSACTION_SERIALIZABLE;... public void setautocommit(boolean autocommit); public void settransactionisolation(int level); public void commit(); public void rollback(); c Ingo Claßen, Martin... Kempa 35/58 Transaktionsverarbeitung

36 Ausführung einer lokalen Transaktion try { // AutoCommit ausschalten, damit mehrere SQL-Anweisungen zu einer // Transaktion zusammengefasst werden können connection.setautocommit(false); // Ggf. SQL-Konsistenzstufe setzen connection. settransactionisolation(...); // Zwei Datenbankoperationen ausführen Statement statement = connection.createstatement(); statement.executeupdate(...);... statement.executeupdate(...);... // Transaktion erfolgreich beenden connection.commit(); } catch (SQLException e) {... connection.rollback(); } finally { // Ressourcen freigeben } c Ingo Claßen, Martin Kempa 36/58 Transaktionsverarbeitung

37 in Java Transaktionen, die mehr als eine Ressource umfassen Typische Ressource-Manager sind Datenbank- oder Messaging-Systeme Beteiligte c Ingo Claßen, Martin Kempa 37/58 Transaktionsverarbeitung

38 in Java Anforderungen ACID muss wie bei nicht verteilten Transaktionen gewahrt werden. Insbesondere müssen für die Atomarität alle RM entweder die Transaktion erfolgreich beenden oder alle ihre Änderungen rückgängig machen. Dafür ist ein spezielles Protokoll erforderlich, das sogenannte Zwei-Phasen-Commit-Protokoll, das die beteiligten RM steuert. Dieses Protokoll muss insbesondere mit Systemfehlern umgehen: Kommunikationsfehler, wenn die beteiligten RM auf verschiedenen Servern laufen, die über ein Netzwerk miteinander verbunden sind. TM stürtzt ab, RM stürzt ab. Der Wiederherstellungsprozess muss die notwendigen Aktionen zur Sicherstellung der Atomarität durchführen. c Ingo Claßen, Martin Kempa 38/58 Transaktionsverarbeitung

39 in Java Spezifikationen Grundlage bildet das Distributed-Transaction-Processing-Modell (DTP) TX-Spezifikation Beschreibt die Schnittstelle zwischen dem AP und dem TM. Das AP steuert die Transaktion durch Anweisungen zum Starten (bot), erfolgreichem Beenden (commit) und Abbruch (rollback). XA-Spezifikation Beschreibt die Schnittstelle zwischen dem TM und den RM. Mit Funktionen dieser Schnittstelle können Operationen im RM mit einer Transaktion assoziiert werden. Stellt Funktionen zur Abbildung des Zwei-Phasen-Commit-Protokolls bereit. c Ingo Claßen, Martin Kempa 39/58 Transaktionsverarbeitung

40 in Java Beispiel: Geld zwischen Giro- und Sparkonto überweisen Annahme: Giro- und Sparkonto werden von verschiedenen Unternehmenseinheiten verwaltet, die jeweils eine eigene IT-Infrastruktur haben c Ingo Claßen, Martin Kempa 40/58 Transaktionsverarbeitung

41 in Java Zwei-Phasen-Commit-Protokoll (erfolgreicher Abschluss) Speicherung von Protokolleinträgen auf Platte erzwingen (force write) c Ingo Claßen, Martin Kempa 41/58 Transaktionsverarbeitung

42 in Java Zwei-Phasen-Commit-Protokoll (Fehlerabbruch) c Ingo Claßen, Martin Kempa 42/58 Transaktionsverarbeitung

43 in Java Zustandsübergänge in RM executing RM führt Operationen durch, z. B. Änderungen an Daten. Bei Fehler kann sofort in den aborting/aborted-zustand gewechselt werden. Nach der prepare-aufforderung durch den TM wird bei positivem Ergebnis in den prepared-zustand gewechselt. Der RM muss auf die Entscheidung durch den TM warten. abort executing prepared prepare* prepared Abhängig von der Entscheidung des TM wird die Transaktion erfolgreich beendet oder es findet ein Rückgängigmachen aller Operationen statt. aborting/aborted Transaktion wurde abgebrochen aborting/ aborted abort* commit* committing/ committed commiting/committed Transaktion wurde erfolgreich beendet c Ingo Claßen, Martin Kempa 43/58 Transaktionsverarbeitung

44 in Java Zustandsübergänge in TM executing TM startet commit-bearbeitung. Sendet prepare-meldung an alle RM. Kann aber Transaktion auch abbrechen. prepared TM wartet auf Ergebnisse von den RM. Antworten alle RM positiv geht er in den Zustand committing über. Antwortet nur ein RM negativ geht er in den aborting-zustand über. aborting, commiting TM warted auf Bestätigungen. aborted/committed Information zur Transaktion wird in den Programmstrukturen des TM gelöscht, da sie komplett abgeschlossen ist. abort aborting executing end aborted prepared abort* commit starten commit* committing end committed c Ingo Claßen, Martin Kempa 44/58 Transaktionsverarbeitung

45 in Java Heuristische Entscheidungen RM haben dem prepare-aufruf mit vote yes geantwortet und danach stürzt der TM ab oder kann aus anderen Gründen nicht das Ende der Transaktion einleiten Alle Sperren müssen im RM gehalten werden. Andere Transaktionen auf diesem RM werden möglicherweise blockiert. Pragmatische Lösung für diesen Fall: RM können von sich aus, d. h. heuritisch, eine Entscheidung zum Ausgang der Transaktion treffen, entweder commit oder abort. Dadurch wird die Atomarität der Transaktion durchbrochen, da der TM möglicherweise eine andere Entscheidung zum Ausgang getroffen hat. In diesem Fall muss ggf. manuell wieder ein konsistenter Gesamtzustand des Systems hergestellt werden. c Ingo Claßen, Martin Kempa 45/58 Transaktionsverarbeitung

46 in Java Lokale und globale Lokale Transaktionen behandeln den nicht verteilten Fall und werden in JDBC komplett über die Schnittstelle Connection abgebildet. Globale Transaktionen entsprechen verteilten Transaktionen und werden über die Java Transaction API (JTA) gesteuert. Diese stellt Schnittstellen und Klassen zur Verfügung, die das Zwei-Phasen-Commit-Protokoll realisieren. JDBC-Verbindungen können innerhalb lokaler und globaler Transaktionen verwendet werden, allerdings immer nur in einer der beiden Transaktionsarten. c Ingo Claßen, Martin Kempa 46/58 Transaktionsverarbeitung

47 in Java Thread-Bindung von Transaktionen Pro Thread kann immer nur eine Transaktion existieren bzw. aktiv sein Transaktionen werden in ThreadLocal-Variablen gespeichert Der Transaktionsmanager bezieht seine Transaktion über den Thread in dem er aufgerufen wird. c Ingo Claßen, Martin Kempa 47/58 Transaktionsverarbeitung

48 in Java Schnittstelle TransactionManager Diese Schnittstelle dient zur programmtechnischen Steuerung von Transaktionen. Es verwaltet alle Transaktionen. void begin() Erzeugt eine neue Transaktion und verbindet sie mit dem aktuellen Thread. void commit() Schließt die mit dem Thread verbundene Transaktion positiv ab und löst die Verbindung zu diesem. void rollback() Schließt die mit dem Thread verbundene Transaktion negativ ab und löst die Verbindung zu diesem Transaction gettransaction() Liefert das Transaktionsobjekt, das mit dem aktuellen Thread verbunden ist. c Ingo Claßen, Martin Kempa 48/58 Transaktionsverarbeitung

49 in Java Schnittstelle Transaction Diese Schnittstelle beschreibt das Transaktionsobjekt, das pro Thread nur einmal existieren kann. boolean enlistresource(xaresource xares) Registriert die Resource in der Transaktion. Damit arbeitet die Resource im Kontext der Transaktion. boolean delistresource(xaresource xares, int flag) Entfernt die Registrierung der Resource aus der Transaktion. void commit() Schreibt Änderungen fest und schließt die Transaktion ab. void rollback() Macht Änderungen rückgängig und schließt die Transaktion ab void registersynchronization(synchronization sync) Registriert ein Synchronisationsobjekt, das vor und nach der Abschlussphase der Transaktion informiert wird (callback). Damit können Aktionen wie z. B. Zurückschreiben eines Objektzustandes in die Datenbank (flushing) vor Abschluss der Transaktion angestoßen werden. c Ingo Claßen, Martin Kempa 49/58 Transaktionsverarbeitung

50 in Java Schnittstelle XADataSource Eine XADataSource ist eine DataSource, die die XA-Spezifikation unterstützt, und damit in verteilten Transaktionen verwendet werden kann. Sie ist eine Fabrik für XAConnection-Objekte. XAConnection getxaconnection(string user, String password) Liefert eine XAConnection. c Ingo Claßen, Martin Kempa 50/58 Transaktionsverarbeitung

51 in Java Schnittstelle XAConnection Instanzen, die diese Schnittstelle implementieren, nehmen an verteilten Transaktionen teil. Zu jeder XAConnection gehört eine XAResource, die das Zwei-Phasen-Commit-Protokoll steuert. XAResource getxaresource() Connection getconnection() void addconnectioneventlistener(connectioneventlistener listener) Registriert ein Callback-Objekt, das bei Schließen der Verbindung aufgerufen wird. void removeconnectioneventlistener(connectioneventlistener listener) Hebt die Registrierung des Callback-Objekts auf. c Ingo Claßen, Martin Kempa 51/58 Transaktionsverarbeitung

52 in Java Schnittstelle Xid Instanzen, die diese Schnittstelle implementieren, sind Transaktions-Identifizierer. Damit werden Datenbankaktionen im Datenbankprotokoll gekennzeichnet um die Wiederherstellung (undo oder redo) zu ermöglichen. Xids sind strukturiert aufgebaut. byte[ ] getglobaltransactionid() Der globale Anteil des Transaktions-Identifizierers, der für alle beteiligten Ressourcen in einer verteilten Transaktion gleich ist. byte[ ] getbranchqualifier() Der lokale Anteil des Transaktions-Identifizierers, der innerhalb einer Ressource eindeutig sein muss. int getformatid() Kennzeichnung des Transaktionsmanagers, damit Transaktions-Identifizierer verschiedener Transaktionsmanager nicht zufälligerweise als gleich betrachtet werden. c Ingo Claßen, Martin Kempa 52/58 Transaktionsverarbeitung

53 in Java Schnittstelle XAResource Java-Abstraktion einer XA-Ressource entsprechend der XA-Spezifikation. void start(xid xid, int flags) Nach Aufruf dieser Methode arbeitet die Ressource im Kontext der mit xid gekennzeichneten Transaktion. void end(xid xid, int flags) Mit dieser Methode wird der Bezug zur Transaktion aufgehoben. int prepare(xid xid) Mit dieser Methode wird die Ressource im Rahmen des Zwei-Phasen-Commit-Protokolls aufgefordert, sich auf den Abschluss der Transaktion vorzubereiten. void commit(xid xid, boolean onephase) Festschreiben der Änderungen. void rollback(xid xid) Rückgängigmachen der Änderungen. c Ingo Claßen, Martin Kempa 53/58 Transaktionsverarbeitung

54 in Java Schnittstelle Synchronization Instanzen, die diese Schnittstelle implementieren, dienen als Callback, um notwendige Aktionen vor Transaktionsabschluss durchführen zu können. void beforecompletion() Wird vor prepare aufgerufen. Ausnahmen und Fehler in dieser Methode führen zum Abbruch (rollback) der Transaktion. void aftercompletion(int status) Wird nach kompletter Durchführung der Transaktion aufgerufen. Hat keinen Einfluss auf das Transaktionsergebnis mehr. Kann z. B. dazu genutzt werden, die programminternen Datenstrukturen mit der Datenbank abzugleichen. c Ingo Claßen, Martin Kempa 54/58 Transaktionsverarbeitung

55 in Java Arbeitsphase einer Transaktion c Ingo Claßen, Martin Kempa 55/58 Transaktionsverarbeitung

56 in Java Abschlussphase commit c Ingo Claßen, Martin Kempa 56/58 Transaktionsverarbeitung

57 in Java Abschlussphase rollback c Ingo Claßen, Martin Kempa 57/58 Transaktionsverarbeitung

58 in Java Heuristische Entscheidung c Ingo Claßen, Martin Kempa 58/58 Transaktionsverarbeitung

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

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

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

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

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

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

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

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

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

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 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

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

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

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

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

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

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

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

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

fbi h_da Datenbanken Kapitel 7: Transaktionsmanagement Schestag Datenbanken (Cnam) Kapitel 7-1

fbi h_da Datenbanken Kapitel 7: Transaktionsmanagement Schestag Datenbanken (Cnam) Kapitel 7-1 Datenbanken Kapitel 7: Transaktionsmanagement Schestag Datenbanken (Cnam) Kapitel 7-1 Transaktionsmanagement Inhalte des Kapitels Das Transaktionskonzept Konkurrierende Zugriffe und Sperren (Concurrency

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

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

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

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

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

Datenbankanwendungen (JDBC)

Datenbankanwendungen (JDBC) Datenbankanwendungen (JDBC) Hierarchie: Connection Transaction Statement Connection Aufbau (klassisch): Registrierung des JDBC Driver beim DriverManager: Class.forName(JDBC Driver); Eigentlicher Verbindungsaufbau

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

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann.

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann. JDBC in 5 Schritten JDBC (Java Database Connectivity) ist eine Sammlung von Klassen und Schnittstellen, mit deren Hilfe man Verbindungen zwischen Javaprogrammen und Datenbanken herstellen kann. 1 Einrichten

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

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

Kapitel 15. Transaktionen, Fehlerbehandlung, Multi-User. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken

Kapitel 15. Transaktionen, Fehlerbehandlung, Multi-User. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken Kapitel 15 Transaktionen, Fehlerbehandlung, Multi-User 1 Transaktionen, Fehlerbehandlung, Multi-User Transaktionskonzept Fehlerbehandlung Mehrbenutzersynchronisation 2 Transaktionen Warum? Beispiel 1 Was

Mehr

Überblick Wintersemester 2014/2015

Überblick Wintersemester 2014/2015 Überblick Wintersemester 2014/2015 Prof. Dr. Peter Mandl Verteilte Systeme Einführung und Überblick Zeitsynchronisation Wahl und Übereinstimmung RPC, verteilte Objekte und Dienste Verteilte Transaktionen

Mehr

Datenbanksystem. System Global Area. Hintergrundprozesse. Dr. Frank Haney 1

Datenbanksystem. System Global Area. Hintergrundprozesse. Dr. Frank Haney 1 Datenbanksystem System Global Area Hintergrundprozesse Dr. Frank Haney 1 Komponenten des Datenbanksystems System Global Area Program Global Area Hintergrundprozesse Dr. Frank Haney 2 System Global Area

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

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

Datenbanken: Backup und Recovery

Datenbanken: Backup und Recovery Der Prozess der Wiederherstellung der Daten einer Datenbank nach einem Fehler im laufenden Betrieb in einen konsistenten, möglichst verlustfreien Zustand heißt Recovery. Beteiligt an diesem Recovery sind

Mehr

Wiederherstellung (Recovery)

Wiederherstellung (Recovery) Fragestellungen Aufgaben der Komponenten für das Recovery: Sicherstellung der Dauerhaftigkeit der gespeicherten Daten, d.h. Daten, die in einer Transaktion einmal bestätigt wurden (commit), bleiben auch

Mehr

Oracle Datenbank - Recovery

Oracle Datenbank - Recovery Oracle Datenbank - Recovery H.-G. Hopf Georg-Simon-Ohm Fachhochschule Nürnberg Datenbank-Recovery / 1 Η. G.Hopf / 10.04.2003 Inhaltsverzeichnis Transaktionsablauf Prozess - Recovery Instanz - Recovery

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

UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme

UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme 8. Übung zur Vorlesung Datenbanksysteme WS 08/09 Musterlösung Aufgabe 8-1: SQLJ //

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

Ü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

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

Programmieren II. Beispiele für RDBMS. Relationale Datenbanken. Datenbanken SQL. Dr. Klaus Höppner JDBC. Hochschule Darmstadt SS 2008

Programmieren II. Beispiele für RDBMS. Relationale Datenbanken. Datenbanken SQL. Dr. Klaus Höppner JDBC. Hochschule Darmstadt SS 2008 Programmieren II Datenbanken Dr. Klaus Höppner SQL Hochschule Darmstadt SS 2008 JDBC 1 / 20 2 / 20 Relationale Datenbanken Beispiele für RDBMS Ein Datenbanksystem ist ein System zur Speicherung von (großen)

Mehr

Hochschule Karlsruhe Technik und Wirtschaft

Hochschule Karlsruhe Technik und Wirtschaft Hochschule Karlsruhe Technik und Wirtschaft Sommersemester 2009 Seite 1/12 Fakultät: Fakultät für Informatik und Wirtschaftsinformatik Semester: BC3 D4 Prüfungsfach: Datenbanken I Fachnummer: I 3B71 I

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

Datenbanksysteme. Programmieren von Datenbankzugriffen mit JDBC. Burkhardt Renz. Fachbereich MNI Technische Hochschule Mittelhessen

Datenbanksysteme. Programmieren von Datenbankzugriffen mit JDBC. Burkhardt Renz. Fachbereich MNI Technische Hochschule Mittelhessen Programmieren von Datenbankzugriffen mit JDBC Fachbereich MNI Technische Hochschule Mittelhessen Sommersemester 2015 Überblick über das Package java.sql Übersicht Architektur von JDBC Grundstruktur eines

Mehr

DB-Anwendungsprogrammierung

DB-Anwendungsprogrammierung Hauptaufgabe: Abbildung der unterschiedlichen Datenmodelle und Zugriffsparadigmen zwischen Programmiersprache und dem DBMS, z.b. C++ Basisdatentypen und flexible Typkonstruktoren wie Strukturen und Klassen

Mehr

Datenbanken und SQL. Kapitel 8. Concurreny und Recovery. Edwin Schicker: Datenbanken und SQL

Datenbanken und SQL. Kapitel 8. Concurreny und Recovery. Edwin Schicker: Datenbanken und SQL Datenbanken und SQL Kapitel 8 Concurreny und Recovery Concurrency und Recovery Transaktionen Recovery Einführung in die Recovery Logdateien Checkpoints Conncurrency Sperrmechanismen Deadlocks SQL-Norm

Mehr

Datenbank-Administration im WS 2012/13 - Einführung in Projekt 3 - Prof. Dr. Klaus Küspert Dipl.-Math. Katharina Büchse Dipl.-Inf.

Datenbank-Administration im WS 2012/13 - Einführung in Projekt 3 - Prof. Dr. Klaus Küspert Dipl.-Math. Katharina Büchse Dipl.-Inf. Datenbank-Administration im WS 2012/13 - Einführung in Projekt 3 - Prof. Dr. Klaus Küspert Dipl.-Math. Katharina Büchse Dipl.-Inf. Andreas Göbel Friedrich-Schiller-Universität Jena Lehrstuhl für Datenbanken

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

Client/Server-Programmierung

Client/Server-Programmierung Client/Server-Programmierung WS 2014/2015 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 20. November 2015 Betriebssysteme / verteilte

Mehr

11. Backup & Recovery. Datenbankadministration

11. Backup & Recovery. Datenbankadministration 11. Backup & Recovery Datenbankadministration Wiederholung Transaktionen TRANSAKTIONEN Kapselung mehrerer Datenbankoperationen ACID-Prinzip - D Dauerhaftigkeit Abschluss mit COMMIT oder ROLLBACK Achtung:

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

www.informatik-aktuell.de

www.informatik-aktuell.de www.informatik-aktuell.de Flashback Reise in die Vergangenheit einfach. gut. beraten. Warum Oracle Zeitreisen anbieten kann, der Microsoft SQL Server aber leider nicht. IT-Tage Datenbanken 18.12.2015,

Mehr

Universität Karlsruhe (TH)

Universität Karlsruhe (TH) Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Cluster-Praktikum Sommersemester 2007 Transparent Replizierte Objekte in JavaParty Institut für Programmstrukturen und Datenorganisation

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

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

Datenbank und Informationssysteme

Datenbank und Informationssysteme Datenbank und Informationssysteme Inhaltsverzeichnis 1 Programmierung von Datenbankzugriffen 3 1.1 Architektur des SQL/CLI am Beispiel JDBC................... 4 1.2 Anfragen und Ergebnismengen in JDBC......................

Mehr

seit Java 1.1 Bestandteil der API: packages java.sql, javax.sql

seit Java 1.1 Bestandteil der API: packages java.sql, javax.sql JDBC inoffizielle Abkürzung für: Java Database Connectivity seit Java 1.1 Bestandteil der API: packages java.sql, javax.sql ist eine Menge von Klassen und Methoden, um aus Java-Programmen relationale Datenbanken

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

RECOVERY. "Concurrency Control and Recovery in Database Systems" Bernstein, Hadzilacos, Goodman. Addison-Wesley. Kapitel 1, 6

RECOVERY. Concurrency Control and Recovery in Database Systems Bernstein, Hadzilacos, Goodman. Addison-Wesley. Kapitel 1, 6 Recovery 1 RECOVERY "Concurrency Control and Recovery in Database Systems" Bernstein, Hadzilacos, Goodman Addison-Wesley Kapitel 1, 6 (Online: http://research.microsoft.com/enus/people/philbe/ccontrol.aspx

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

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

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

Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1

Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1 Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1 Was ist JDBC? Hauptsächlich eine Sammlung von Java Klassen und Schnittstellen für eine einfache Verbindung von Java Programmen

Mehr

Java Persistence API 2.x. crud + relationships + jp-ql

Java Persistence API 2.x. crud + relationships + jp-ql Java Persistence API 2.x crud + relationships + jp-ql Grundprinzip 10.02.10 2 Problematik Man muss bei der Persistierung immer das Klassenmodell und dessen Umsetzung im Datenmodell (in der DB) berücksichtigen.

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

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

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

Beispiel: DB-Mock (1/7)

Beispiel: DB-Mock (1/7) Beispiel: DB-Mock (1/7) Aufgabe: DB, auf die vereinfachend nur lesend zugeriffen wird mocken warum: benötigte keine DB-Lizenz, garantiert gleiche Werte ohne aufwändiges reset, kein Zeitverlust durch Verbindungsaufbau

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

7. Datenkontrolle. Klassifikation von Integritästbedingungen Integritätsbedingungen in SQL. Zugriffskontrolle/Autorisierung in SQL 7-1

7. Datenkontrolle. Klassifikation von Integritästbedingungen Integritätsbedingungen in SQL. Zugriffskontrolle/Autorisierung in SQL 7-1 7. Datenkontrolle ACID und Datenkontrolle Synchronisation i Anomalien Isolation Level Integritätskontrolle Klassifikation von Integritästbedingungen Integritätsbedingungen in SQL Integritätsregeln / Trigger

Mehr

Fehlerbehandlung (Recovery)

Fehlerbehandlung (Recovery) Kapitel 9 Fehlerbehandlung (Recovery) 345 / 520 Überblick Recovery Wichtige Aufgabe eines DBMS ist das Verhindern von Datenverlust durch Systemabstürze Die zwei wichtigsten Mechanismen des Recovery sind:

Mehr

2. Hintergrundverarbeitung in Android: Services und Notifications

2. Hintergrundverarbeitung in Android: Services und Notifications 2. Hintergrundverarbeitung in Android: Services und Notifications Übersicht 2. Hintergrundverarbeitung in Android: Services und Notifications Übersicht: In Mobis 1: Threads; hier genauerer Blick auf Services

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

Datenbanken & Informationssysteme Übungen Teil 1

Datenbanken & Informationssysteme Übungen Teil 1 Programmierung von Datenbankzugriffen 1. Daten lesen mit JDBC Schreiben Sie eine Java-Anwendung, die die Tabelle Books in der Datenbank azamon ausgibt. Verwenden Sie dabei die SQL-Anweisung select * from

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

Prozessarchitektur einer Oracle-Instanz

Prozessarchitektur einer Oracle-Instanz 6. Juni 2008 Inhaltsverzeichnis Oracle Instanz 1 Oracle Instanz 2 3 Redo Log Buffer Shared Pool Java Pool & Large Pool Oracle Instanz Eine Oracle-Instanz ist Hauptbestandteil des Oracle Datenbank Management

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

Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten)

Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten) Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten) O/R Mapping - Objekte (Attribute) - 1:1, 1:n, n:m Beziehungen - Vererbungen (- Interfaces)

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

SQLJ. Standardisierte Java-DB. DB-Schnittstelle. Spezifikationen. Oracle, IBM, Informix, Sybase,, Tandem, Sun, Microsoft stehen dahinter

SQLJ. Standardisierte Java-DB. DB-Schnittstelle. Spezifikationen. Oracle, IBM, Informix, Sybase,, Tandem, Sun, Microsoft stehen dahinter SQLJ Standardisierte Java-DB DB-Schnittstelle Spezifikationen Part 0: Embedded SQL für Java (ANSI-Standard; Object Language Binding) Statische Einbettung von SQL-Anweisungen in Java-Quelltext Part 1: Java

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

Fachhochschule Wiesbaden. Vortrag: Teil 1. EJB- Timer. Teil 2. Transaktionen. Version: 1.0

Fachhochschule Wiesbaden. Vortrag: Teil 1. EJB- Timer. Teil 2. Transaktionen. Version: 1.0 Frankfurt Wiesbaden am Main 07.01.2009 05.12.2008 Alaoui Soulimani, Achraf & Alaoui El Haddajy, Soulimani, Hicham Achraf Fachhochschule Wiesbaden Vortrag: Teil 1. EJB- Timer Teil 2. Transaktionen Version:

Mehr

Grundlagen der PostgreSQL Administration

Grundlagen der PostgreSQL Administration Jens Wilke Vortrag bei der BELUG 16.03.2011 Der Vortrag behandelt die Installation und Konfiguration von PostgreSQL, dem fortschrittlichsten Open Source Datenbanksystem. Es wird auf die wichtigsten Konfigurationsparameter

Mehr

Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de Version: 2014 Orientation 1.0 in Objects GmbH Der Sprecher Erik Bamberg (OIO) 2 1 s Aufgaben des Cachings Datenbank

Mehr

Vorlesung 30.03.2009 1) Einführung

Vorlesung 30.03.2009 1) Einführung Vorlesung 30.03.2009 1) Einführung Was versteht man unter dem Begriff Datenbank? - Eine Datenbank ist eine Struktur zur Speicherung von Daten mit lesendem und schreibendem Zugriff - Allgemein meint man

Mehr

Java Database Connectivity-API (JDBC)

Java Database Connectivity-API (JDBC) Java Database Connectivity-API (JDBC) Motivation Design Grundlagen Typen Metadaten Transaktionen Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Motivation Problem: Zugriff auf ein DBMS ist herstellerabhängig

Mehr

Datenbanken. Ein DBS besteht aus zwei Teilen:

Datenbanken. Ein DBS besteht aus zwei Teilen: Datenbanken Wikipedia gibt unter http://de.wikipedia.org/wiki/datenbank einen kompakten Einblick in die Welt der Datenbanken, Datenbanksysteme, Datenbankmanagementsysteme & Co: Ein Datenbanksystem (DBS)

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

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

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

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

Installation MySQL Replikationsserver 5.6.12

Installation MySQL Replikationsserver 5.6.12 Ergänzen Konfigurationsdatei my.ini auf Master-Server:!!! softgate gmbh!!! Master und Slave binary logging format - mixed recommended binlog_format = ROW Enabling this option causes the master to write

Mehr

Beispiel für überladene Methode

Beispiel für überladene Methode Beispiel für überladene Methode class Gras extends Futter {... abstract class Tier { public abstract void friss (Futter x); class Rind extends Tier { public void friss (Gras x) {... public void friss (Futter

Mehr

Verteilte Datenbanken. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Verteilte Datenbanken. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München Kapitel 8 Verteilte Datenbanken Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München 2008 Thomas Bernecker, Tobias Emrich unter Verwendung der Folien des Datenbankpraktikums aus dem Wintersemester

Mehr

Thread-Synchronisation in in Java. Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen

Thread-Synchronisation in in Java. Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen Thread-Synchronisation in in Java Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen Die Klasse Thread Die Die Klasse Thread gehört zur zur Standardbibliothek von von

Mehr