Erhard Künzel für Info 9. Klasse: Digitale Schule Bayern© Erhard Künzel.

Slides:



Advertisements
Ähnliche Präsentationen
Kapitel 15 Verteilte Datenbanken
Advertisements

Object Relational Mapping
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
Folien 2-5, 7-8 © Prof. Dr. Manfred Rössle (FH Aalen)
System J – Compiler – Praktikum: Datenbanksystementwicklung Knut Stolze
MySQL.
Müll 1NaturEinkaufenMüll 2Vermischtes
Bauinformatik II Softwareanwendungen 1
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
Objektrelationales Mapping mit JPA Working with Persistent Objects Jonas Bandi Simon Martinelli.
BCD Ripple Carry Adder von Enrico Billich.
SQL als Abfragesprache
Datensicherheit in DBMS
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
Open Database Connectivity (ODBC). © Prof. T. Kudraß, HTWK Leipzig Open Database Connectivity (ODBC) Idee: – API für eine DBMS, das ein Call-Level-Interface.
Otto-von-Guericke-Universität Magdeburg Gamal Kassem 1 Tabellenzeile mit READ lesen READ TABLE itab INDEX idx READ TABLE itab WITH KEY comp1 = f1.... Compn.
Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz.
Datenintegrität Referentielle Integrität create table
Datenbanksysteme für FÜ SS 2000 Seite Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz Isolation.
1 Kapitel 12: Transaktionsverwaltung Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück Osnabrück
1 Kapitel 12: Transaktionsverwaltung. 2 Transaktion Bündelung mehrerer Datenbankoperationen Mehrbenutzersynchronisation Recovery.
15.1 Synchronisation nebenläufiger Prozesse
Erhard Künzel für Info 9. Klasse: © Erhard Künzel für digitale-schule-bayern.
Datenbanken 13: Objekt-Klasse-Datenbank
Datenbanken 7: Schlüssel
Erhard Künzel für Info 9. Klasse: Digitale Schule Bayern© Erhard Künzel.
Erhard Künzel für Info 9. Klasse: Digitale Schule Bayern© Erhard Künzel.
Datenbanken 2: Die relationale Datentabelle
Erhard Künzel für Info 9. Klasse: digitale-schule-bayern.de © Erhard Künzel.
Datenbanken 10: Einfügen, Ändern, Löschen
Erhard Künzel für Info 9. Klasse: Digitale Schule Bayern© Erhard Künzel.
Datenbanken 2: Einfache Aufgaben mit TabCalc
Erhard Künzel für Info 9. Klasse: Digitale Schule Bayern © Erhard Künzel.
Erhard Künzel für Info 9. Klasse: digitale-schule-bayern.de © Erhard Künzel.
Tabellenkalkulationssysteme
Einführung MySQL mit PHP
3.5.2 Fremdschlüssel/ Referentielle Integrität (6/9)
Modellierung von Transaktionen Zur Formalisierung der ACID-Garantien muss Verhalten von Transaktionen modelliert werden. Folge aus der Forderung nach lokaler.
Synchronisation paralleler Transaktionen AIFB SS Konzept der Transaktion 4.2 Konzept der Transaktion (1/4) Eine Transaktion ist ein in sich geschlossener,
JDBC: JAVA Database Connectivity
I. Determinismus oder Indeterminismus
Datenbankentwicklung IV-LK
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
Erhard Künzel für Info 9. Klasse:. Bezeichner für Bezüge Attribut Bezeichner Weitere Funktionen Mehrere Flüsse Drucken Digitale Schule Bayern© Erhard.
Erhard Künzel für Info 9. Klasse: Digitale Schule Bayern© Erhard Künzel.
... Unternehmens- leitung
Erhard Künzel für Info 9. Klasse: Digitale Schule Bayern© Erhard Künzel.
Parallel Programming ( J ) CSP
WS 2012/13 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #11 Transaktionsverwaltung.
WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #10 Transaktionsverwaltung.
Transaktion Huang Zhenhao FU Shuai.
Bestandteile von Formeln
Datenbankanbindung mit
Structured Query Language
Transaktionen Dr. Heidrun Bethge Datenbanken II.
Structured Query Language
2. Kommunikation und Synchronisation von Prozessen 2
Transaktionsverwaltung
7 Verändern von Daten. 9-2 Ziele Beschreibe jeden DML Befehl Einfügen von Zeilen in eine Tabelle Ändern von Zeilen in einer Tabelle Löschen von Zeilen.
Prof. K. Gremminger Folie 1 Vorlesung Datenbanksysteme SS 2002 Abhängigkeiten zwischen Transaktionen (Fehlerklassen) u Lost-Update-Problem u Dirty Read.
6.3 Verteilte Transaktionen
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
Datenbanken erstellen mit PostgreSQL
Effektives Delta Laden DOAG SID Data Warehouse. Ziele Welche CDC Methoden gibt es? Typische Fallen Verschiedene Lösungsansätze praktische Beispiele.
DOAG SID Data Warehouse
6.3 Verteilte Transaktionen
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
Beispiele zur Datenänderung
 Präsentation transkript:

Erhard Künzel für Info 9. Klasse: Digitale Schule Bayern© Erhard Künzel

0 Bankautomat 1 Problem mit mehrschrittigem Prozess 2 Transaktionen 3 Problem mit parallelen Prozessen 4 Die ACID Anforderungen 5 Deadlocks Digitale Schule Bayern© Erhard Künzel

Von Erix! Unter der Creative Commons Lizenz Namen nen- nen nicht kommerziell Weitergabe unter gleicher Bedingung Eine Aktion am Geldautomaten besteht aus mehreren Teilen. Wenn nun mittendrin etwas schief geht? Zudem greifen gleichzeitig viele Leute zu. Kann da was durcheinander kommen? Digitale Schule Bayern© Erhard Künzel

Lege in der Klassendatenbank eine Datentabelle an, z.B. CREATE TABLE dt631 (nr integer, geld integer, PRIMARY KEY(ktnr)); Vorsicht InnoDB wählen!! Fülle sie mit zwei Datensätzen, z.B. INSERT INTO dt631 VALUES (1, 100), (2,200); Überweise von Konto 1 auf Konto 2 100, etwa mit UPDATE dt631 SET geld = geld – 100 WHERE nr = 1; UPDATE dt631 SET geld = geld WHERE nr = 2; Sieh dir beide Konten an: SELECT * FROM dt631; Digitale Schule Bayern© Erhard Künzel

Wenn nun zwischen beiden Update-Befehlen die Verbindung abreißt oder das Frontend abstürzt? Wir schauen, dass beide Updates oder keines ausgeführt wird. Tippe dazu in SQLyogs Queryfenster: 1 START TRANSACTION; 2 UPDATE dt631 SET geld = geld – 100 WHERE nr = 1; 3 UPDATE dt631 SET geld = geld WHERE nr = 2; 4COMMIT 5 ROLLBACK 6 SELECT * FROM dt631; Digitale Schule Bayern© Erhard Künzel

Setze den Cursor nacheinander in die angegebenen Zeilen und führe jeweils die Anweisung aus Beende Verbindung und starte neu Digitale Schule Bayern© Erhard Künzel

Die Anweisungen zwischen START TRANSACTION und Abbruch werden alle nicht ausgeführt. Die Anweisungen zwischen START TRANSACTION und COMMIT werden zuverlässig alle gleichzeitig ausgeführt. Die Anweisungen zwischen START TRANSACTION und ROLLBACK werden alle nicht ausgeführt. Digitale Schule Bayern© Erhard Künzel

Je zwei Gruppen A/B vereinbaren Zusammenarbeit auf der Datentabelle von A. A überweist, B kontrolliert: 1 START TRANSACTION; 2 UPDATE dt631 SET geld = geld – 100 WHERE nr = 1; 3SELECT * FROM dt631; 4 UPDATE dt631 SET geld = geld WHERE nr = 2; 5COMMIT 6 SELECT * FROM dt631; SELECT * FROM dt631; B bekommt von allen Anweisungen erst was mit, nachdem A COMMIT abgeschickt hat. Digitale Schule Bayern© Erhard Künzel

Probiere verschiedene Abläufe zB A1, B1, A2, A3, B2, A4, B3, B4, A5, B5. Probiere auch jeweils 4 ROLLBACK. 1 START TRANSACTION; 2 UPDATE dt631 SET geld = geld WHERE nr = 1; 3SELECT * FROM dt631; 4COMMIT 5 SELECT * FROM dt631; 1 START TRANSACTION; 2 UPDATE dt631 SET geld = geld + 50 WHERE nr = 1; 3SELECT * FROM dt631; 4COMMIT 5 SELECT * FROM dt631; Wird erst nach A4 ausgeführt Digitale Schule Bayern© Erhard Künzel

Probiere verschiedene Abläufe zB A1, B1, A2, A3, B2, A4, B3, B4, A5, B5. Probiere auch jeweils 4 ROLLBACK. 1 START TRANSACTION; 2 UPDATE dt631 SET geld = geld WHERE nr = 1; 3SELECT * FROM dt631; 4COMMIT 5 SELECT * FROM dt631; 1 START TRANSACTION; 2 UPDATE dt631 SET geld = geld + 50 WHERE nr = 2; 3SELECT * FROM dt631; 4COMMIT 5 SELECT * FROM dt631; Wird gleich ausgeführt Digitale Schule Bayern© Erhard Künzel

Die Transaktionen sorgen dafür, dass die Handlungen von A für B atomar, d.h. unteilbar schlagartig eintreten und umgekehrt. Zudem sind die Handlungen von A und B voneinander isoliert. B merkt nur beim Ändern eines Datensatzes nur etwas, wenn A ihn schon geändert hat, also nur wenn es unvermeidbar ist. Digitale Schule Bayern© Erhard Künzel

Suche im Internet unter Datenbanken ACID und versuche das A und das I zu verstehen. WIKIPEDIA: Von einer atomaren Operation spricht man, wenn die Transaktion entweder ganz oder gar nicht ausgeführt wird … sobald sich jedoch herausstellt, dass die Transaktion nicht abgeschlossen werden kann, wird ein Rollback durchgeführt, also alles bisher Erledigte wieder rückgängig gemacht. WIKIPEDIA: Durch das Prinzip der Isolation wird verhindert, dass sich in Ausführung befindliche Transaktionen gegenseitig beeinflussen. Digitale Schule Bayern© Erhard Künzel

Prozess A erwirbt Sperre für ktnr1 Prozess B erwirbt Sperre für ktnr2 Prozess A wartet auf B Prozess B wartet auf A?? Deadlock Rollback für Prozess B Digitale Schule Bayern© Erhard Künzel