Transaktionsverarbeitung
|
|
- Dörte Frei
- vor 7 Jahren
- Abrufe
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 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
MehrDatenbanken 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!
MehrDatenbanken: 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
MehrDatenintegritä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
MehrTag 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
MehrSoftware-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.
MehrTransaktionen 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
MehrTransaktionsverwaltung
Transaktionsverwaltung VU Datenbanksysteme vom 21.10. 2015 Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Transaktionsverwaltung
Mehr9 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
MehrView. 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.
MehrTag 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
MehrTransaktionen 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);
MehrTransaktionen und Synchronisation konkurrierender Zugriffe
Transaktionen und Synchronisation konkurrierender Zugriffe Fragestellungen Aufgaben des Transaktionsmanagers Aktivieren von Transaktionen entsprechend den Anforderungen von Anwendungsprogrammen. Dabei
MehrDieser 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,
MehrIsolationsstufen 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
MehrTransaktionsverwaltung
Transaktionsverwaltung Commit Eigenschaften von Transaktionen (ACID) Transaktionen in SQL Kapitel 9 1 Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1. Lese den Kontostand
MehrDatenbankadministration
Datenbankadministration 11. Synchronisation AG DBIS University of Kaiserslautern, Germany Karsten Schmidt kschmidt@informatik.uni-kl.de (Vorlage TU-Dresden) Wintersemester 2008/2009 Transaktion Transaktion
MehrDatenbanken 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,
MehrKapitel 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
MehrDatenbanksysteme 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
Mehrfbi 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
MehrTAV Ü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.
MehrP.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
MehrLiteratur 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:
MehrVorlesung 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
MehrTeil 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
MehrDatenbankanwendungen (JDBC)
Datenbankanwendungen (JDBC) Hierarchie: Connection Transaction Statement Connection Aufbau (klassisch): Registrierung des JDBC Driver beim DriverManager: Class.forName(JDBC Driver); Eigentlicher Verbindungsaufbau
MehrPostgreSQL 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
MehrJDBC. 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
MehrDarunter 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
MehrMehrbenutzersynchronisation
Kapitel 10 Mehrbenutzersynchronisation 381 / 520 Mehrbenutzersynchronisation Alle TAs strikt seriell (also nacheinander) auszuführen ist sicher, aber langsam Oft werden Systemressourcen nicht voll ausgenutzt,
MehrKapitel 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 Prof. Dr. Peter Mandl Verteilte Systeme Einführung und Überblick Zeitsynchronisation Wahl und Übereinstimmung RPC, verteilte Objekte und Dienste Verteilte Transaktionen
MehrDatenbanksystem. 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
MehrRecovery- 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)
MehrGrundlagen 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
MehrDatenbanken: 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
MehrWiederherstellung (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
MehrOracle 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
MehrSynchronisierung 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
MehrUNIVERSITÄ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 //
MehrWiederanlauf (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
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,
MehrAufbau 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
MehrProgrammieren 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)
MehrHochschule 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
MehrKapitel 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
MehrDatenbanksysteme. 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
MehrDB-Anwendungsprogrammierung
Hauptaufgabe: Abbildung der unterschiedlichen Datenmodelle und Zugriffsparadigmen zwischen Programmiersprache und dem DBMS, z.b. C++ Basisdatentypen und flexible Typkonstruktoren wie Strukturen und Klassen
MehrDatenbanken 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
MehrDatenbank-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
MehrDatenbanksysteme 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:
MehrClient/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
Mehr11. Backup & Recovery. Datenbankadministration
11. Backup & Recovery Datenbankadministration Wiederholung Transaktionen TRANSAKTIONEN Kapselung mehrerer Datenbankoperationen ACID-Prinzip - D Dauerhaftigkeit Abschluss mit COMMIT oder ROLLBACK Achtung:
MehrKoordination 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
Mehrwww.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,
MehrUniversitä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
MehrIsolationslevel 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
MehrSynchronisation 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.
MehrDatenbank 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......................
Mehrseit 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
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
MehrRECOVERY. "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
MehrSynchronisation 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
MehrIT-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,
MehrDie 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
MehrJava 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
MehrJava 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.
MehrSerialisierbarkeit 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
MehrDr. 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
MehrDatenadminstrator, 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
MehrBeispiel: 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
MehrDatenbankentwicklung 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
Mehr7. 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
MehrFehlerbehandlung (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:
Mehr2. 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
MehrTU 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)
MehrDatenbanken & 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
MehrDatenbanken: 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
MehrProzessarchitektur 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
Mehr10. 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
MehrPersistenz 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)
MehrProzedurale 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.
MehrSQLJ. 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
MehrKapitel 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
MehrFachhochschule 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:
MehrGrundlagen 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
MehrOrientation 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
MehrVorlesung 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
MehrJava 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
MehrDatenbanken. 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)
MehrBeispiel: 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
MehrKapitel 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)
MehrDatenbanksysteme 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
MehrWebbasierte 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)
MehrInstallation 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
MehrBeispiel 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
MehrVerteilte 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
MehrThread-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