Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Erhard Künzel für Info 9. Klasse: Digitale Schule Bayern© Erhard Künzel."—  Präsentation transkript:

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

2 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

3 Von Erix! Unter der Creative Commons Lizenz Namen nen- nen nicht kommerziell Weitergabe unter gleicher Bedingung http://www.flickr.com/photo_zoom.gne?id=1693229790&size=l 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

4 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 + 100 WHERE nr = 2; Sieh dir beide Konten an: SELECT * FROM dt631; Digitale Schule Bayern© Erhard Künzel

5 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 + 100 WHERE nr = 2; 4COMMIT 5 ROLLBACK 6 SELECT * FROM dt631; Digitale Schule Bayern© Erhard Künzel

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

7 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

8 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 + 100 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

9 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 + 100 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

10 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 + 100 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

11 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

12 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

13 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


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

Ähnliche Präsentationen


Google-Anzeigen