Προχωρημένα Θέματα Βάσεων Δεδομένων

Σχετικά έγγραφα
ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων: ημήτρης Πλεξουσάκης

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων: ημήτρης Πλεξουσάκης

Επεξεργασία οσοληψιών

ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΙΙ. Επεξεργασία οσοληψιών. το πώς βλέπει το Σ Β τα προγράµµατα των χρηστών. οσοληψία (transaction)

Βάσεις Δεδομένων ΙΙ Ενότητα 1

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων:. Πλεξουσάκης

Δοσοληψίες Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη

ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΙΙ. Σχετικά µε το µάθηµα: Αξιολόγηση. Σχετικά µε το µάθηµα:faq ΟΧΙ ΝΑΙ. Λιγότερος! (ας πούµε το 1/3-1/4)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

Προχωρημένα Θέματα Βάσεων Δεδομένων

Έλεγχος Ταυτοχρονισμού

Βάσεις Δεδομένων ΙΙ. Διάλεξη 1 η Επεξεργασία Δοσοληψιών. Σύστημα Επεξεργασίας Δοσοληψιών

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. Πληροφοριακά Συστήματα και Βάσεις Δεδομένων. Δρ. Κωνσταντίνος Χ.

Προχωρημένα Θέματα Βάσεων Δεδομένων

ΙΑΧΕΙΡΙΣΗ ΟΣΟΛΗΨΙΩΝ Να θυµηθούµε:

ΚΕΦΑΛΑΙΟ 1 ΣΥΝΑΛΛΑΓΕΣ ΚΑΙ ΕΛΕΓΧΟΣ ΤΑΥΤΟΧΡΟΝΙΣΜΟΥ

Βάσεις Δεδομένων 2. Φροντιστήριο Δοσοληψίες Τεχνικές ελέγχου συνδρομικότητας. Ημερ: 05/5/2009 Ακ.Έτος

Βάσεις Δεδομένων ΙΙ Ενότητα 2

Θεµατολόγιο. Πώς ελέγχουµε σειριοποιησιµότητα στην πράξη;

Επεξεργασία οσοληψιών

Διαχείριση Δοσοληψιών

Δοσοληψίες. Κατανεμημένα Συστήματα

Επεξεργασία οσοληψιών (συνέχεια)

Δοσοληψίες. Κατανεμημένα Συστήματα

Τεχνικές Ανάνηψης Περιεχόµενα

Επαναφορά του Συστήματος (Μέρος Α')

Σηµειώσεις Βάσεων εδοµένων. ιαχείριση οσοληψιών. Γιάννης Θεοδωρίδης. Τµήµα Πληροφορικής, Πανεπιστήµιο Πειραιά.

Κεφάλαιο 13 Δοσοληψίες

Τεχνικές Ανάκαµψης. Αtomicity (ατοµικότητα) - είτε όλες οι πράξεις είτε

Βάσεις Δεδομένων ΙΙ Ενότητα 3

Έλεγχος Ταυτοχρονισμού

Τεχνικές Ανάκαµψης. Αtomicity (ατοµικότητα) - είτε όλες οι πράξεις είτε

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Βάσεις Δεδομένων ΙΙ Ενότητα 2

Επεξεργασία οσοληψιών

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Έλεγχος Ταυτοχρονισμού

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 4

Εισαγωγικές Έννοιες. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος

Επανάκτηση δεδομένων. (εμπλουτισμένο υλικό)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΙI

Επεξεργασία οσοληψιών

Σημεία ελέγχου (Checkpoints)

3 η ΕΝΟΤΗΤΑ Συναρτήσεις στο MATLAB

Οικονομετρία. Εξειδίκευση του υποδείγματος. Μορφή της συνάρτησης: Πολυωνυμική, αντίστροφη και αλληλεπίδραση μεταβλητών

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα

Εισαγωγή στην Τοπολογία

Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 5: Προτασιακός Λογισμός: Κατασκευή Μοντέλων Τμήμα Επιστήμης Υπολογιστών

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

Αποκατάσταση συστήματος Βάσεις Δεδομένων

Βάσεις Δεδομένων ΙΙ. Διάλεξη 3 η Tεχνικές Aνάκαμψης. Ιδιότητες Δοσοληψιών

Transactions Management. (Διαχείριση Δοσοληψιών)

Εισαγωγή στους Αλγορίθμους

Τίτλος Μαθήματος: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΗΥ360 Αρχεία και Βάσεις εδοµένων

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim

Χρονοδιάγραμμα/Χρονοπρόγραμμα

Θεωρία Πιθανοτήτων & Στατιστική

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ ΠΕΡΣΕΦΟΝΗ ΠΟΛΥΧΡΟΝΙΔΟΥ ΤΜΗΜΑ ΛΟΓΙΣΤΙΚΗΣ ΤΕ

Συναλλαγές. Εαρινό Εξάμηνο Τμήμα Μηχανικών Η/Υ και Πληροϕορικής Πολυτεχνική Σχολή, Πανεπιστήμιο Πατρών. Συναλλαγές. Βάσεις Δεδομένων ΙΙ

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Εισαγωγή στους Αλγορίθμους

Εισαγωγή στους Αλγορίθμους

Βάσεις Περιβαλλοντικών Δεδομένων

Αυτοματοποιημένη χαρτογραφία

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ

Υπολογιστές Ι. Άδειες Χρήσης. Δομή του προγράμματος. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Δομημένος Προγραμματισμός

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 5

Θεµατολόγιο. Α) Πρακτικά Θέµατα στον Έλεγχο Ταυτοχρονισµού

Έλεγχος συγχρονικότητας Μέρος 2 Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη

Ιστορία της μετάφρασης

Εισαγωγή στους Αλγορίθμους Ενότητα 7η

ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΜΕ ΧΡΗΣΗ Η/Υ

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

Έλεγχος συγχρονικότητας Μέρος 1 Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη

Ιόνιο Πανεπιστήμιο - Τμήμα Πληροφορικής

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις

Γενικά Μαθηματικά Ι. Ενότητα 15: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Τμήμα Φυσικής

ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Ηλεκτρονικοί Υπολογιστές II

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Διδακτική της Πληροφορικής

Υπολογιστικά & Διακριτά Μαθηματικά

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 7: Σχέσεις και Συναρτήσεις

Υπολογιστικά & Διακριτά Μαθηματικά

Ηλεκτρονικοί Υπολογιστές I

Θεωρία Πιθανοτήτων & Στατιστική

Transcript:

Προχωρημένα Θέματα Βάσεων Δεδομένων Δοσοληψίες & Ταυτοχρονισμός Διδάσκων: Νεκτάριος Κοζύρης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Ε.Μ.Π.

Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άδεια χρήσης άλλου τύπου, αυτή πρέπει να αναφέρεται ρητώς. Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα» του ΕΜΠ έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.

οσοληψίες & Ταυτοχρονισµός Κράτησε για γιατον κ. κ. Χτηνθέση 13Αγια LA! LA! Κράτησε για γιατον κ. κ. Yτηνθέση 13Αγια LA! LA! DB Πόσοι ταξιδεύουν για για LA LA ;; 1 Θεµατολόγιο Η έννοια της δοσοληψίας Ιδιότητες των δοσοληψιών Καταστάσεις µιας δοσοληψίας Χρονοπρογράµµατα Σειριοποιησιµότητα Έλεγχος σειριοποιησιµότητας 2 1

οσοληψία οσοληψία είναι µια σειρά από ενέργειες, οι οποίες διαβάζουν ή γράφουν αντικείµενα της βάσης στα αγγλικά transaction σειρά: διατεταγµένοσύνολο, λίστα 3 Παράδειγµα δοσοληψίας T 0 : µεταφορά 50 απότο λογαριασµό A στο λογαριασµό B A := A - 50; write(a); B := B + 50; write(b). Σεότιαφορά τηβ : R(A);W(A);R(B);W(B). 4 2

Προβληµατισµός ύο είναι τα βασικά προβλήµατα µε τις δοσοληψίες: Τιθαγίνειανκατάτηδιάρκειατηςεκτέλεσης, πέσειτο σύστηµα; Τι θα γίνει αν δύο δοσοληψίες επιχειρούν να µεταβάλλουν το ίδιο αντικείµενο ταυτοχρόνως; 5 Ιδιότητες των δοσοληψιών Ατοµικότητα: είτε όλες οι πράξεις της δοσοληψίας επιτυγχάνουν, είτε όλες αποτυγχάνουν. Συνέπεια: στο τέλος της δοσοληψίας, η βάση πρέπει να είναι σε συνεπή µορφή. Αποµόνωση: ακόµα κι αν τρέχουν πολλές δοσοληψίες ταυτόχρονα, κάθε δοσοληψία πρέπει να νοµίζει ότι τρέχει µόνη της. Μονιµότητα: αν η δοσοληψία επιτύχει, πρέπει το αποτέλεσµά της να επιβιώνει, ακόµα κι αν αποτύχει το σύστηµα. 6 3

ACID Test ( A )tomicity Ατοµικότητα ( C )onsistency Συνέπεια ( I )solation Αποµόνωση ( D )urability Μονιµότητα ιεθνώς γνωστό ως ACID test... 7 Συνέπεια Μια βάση δεδοµένων διέπεται από κανόνες ακεραιότητας (π.χ. πρωτεύοντος κλειδιού...) Επιπλέον, υπάρχουν και λογικοί περιορισµοί, τους οποίους «κρύβουµε» στις εφαρµογές. Πριν και µετά την εκτέλεση της δοσοληψίας (αλλά όχι απαραίτηταενδιαµέσως), όλοιοιπεριορισµοίαυτοί, πρέπει να πληρούνται... 8 4

Συνέπεια EMP(EMP_ID,NAME,AGE,DEPT_ID,SALARY) Περιορισµοίακεραιότητας: EMP_IDπρωτεύονκλειδί AGE <= 65 SALARY > 0 9 Συνέπεια Παράδειγµαλογικούπεριορισµού: κατά τη διάρκεια της µεταφοράς χρηµάτων από ένα λογαριασµόσεέναάλλο, το άθροισµα των δύο λογαριασµών στο τέλος, πρέπει να ισούται µε το άθροισµα τους στην αρχή Συνεπής [κατάσταση της] Β : όλοι οι περιορισµοί ικανοποιούνται! 10 5

Συνέπεια Κάνουµε και την υπόθεση ότι µια δοσοληψία που ξεκινά να τροποποιεί µια συνεπή Β, θα καταλήξει σε µια συνεπήβ, επίσης!!! Trxn Συνεπής κατάσταση τηςβάσηςπριντην δοσοληψία Συνεπής κατάσταση τηςβάσηςµετάτην δοσοληψία 11 Συνέπεια A := A - 50; write(a); B := B + 50; write(b). A: 150 B: 200 A: 100 B: 250 A+B=350 A+B=350 12 6

ACID Test ( A )tomicity Ατοµικότητα ( C )onsistency Συνέπεια ( I )solation Αποµόνωση ( D )urability Μονιµότητα 13 Ατοµικότητα Η δοσοληψία είναι µια µονάδα εργασίας Παρότι αποτελείται από πολλές ενέργειες, δεν είναι αποδεκτό να εκτελεστούν µόνο µερικές από αυτές Αυτό µπορεί να συµβεί, π.χ., γιατί στη διάρκεια εκτέλεσης, το σύστηµα αποτυγχάνει Σαν αποτέλεσµα, κάποιοι κανόνες µπορεί να παραβιαστούν (και µαζί και η συνέπεια της βάσης)... 14 7

Ατοµικότητα 1. 2.A := A - 50; 3.write(A); A: 150 B: 200 A: 150 B: 200 A+B=350 A+B=300 15 Ατοµικότητα 1. 2.A := A - 50; 3.write(A); A: 150 B: 200 A: 100 B: 200 A+B=350 A+B=300 16 8

Ατοµικότητα A: 150 B: 200 A := A - 50; write(a); --CRASH-- B := B + 50; write(b). A: 100 B: 200 A+B=350 A+B=300 17 Ατοµικότητα Το DBMS εξασφαλίζει ότι η ατοµικότητα θα διατηρηθεί, αναιρώντας όλες τις δοσοληψίες που αποτυγχάνουν Τοπώςγίνεταιαυτό, θατοδούµεστοκεφάλαιοτης ανάνηψης... 18 9

Παράπλευρη παρατήρηση Τιπάειναπει read(a) ; A είναι µια µεταβλητή του προγράµµατος read(a)σηµαίνει: ιάβασεαπότοδίσκοτηναντίστοιχηµετο Aεγγραφήστη βάση, Φέρε την σε κάποιο buffer Αντίγραψέ την στην περιοχή µνήµης του προγράµµατος 19 Παράπλευρη παρατήρηση Hard Disk Buffer Program memory Το αντίστοιχο συµβαίνει και µε τη write Όπωςθαδούµε, τοαµπορείκαιναµηνείναιεγγραφή, αλλά π.χ., σελίδα στο δίσκο... 20 10

ACID Test ( A )tomicity Ατοµικότητα ( C )onsistency Συνέπεια ( I )solation Αποµόνωση ( D )urability Μονιµότητα 21 Μονιµότητα 3.Crash 1. 1. Κράτησεγια τονκ. Χτηνθέση 13Αγια LA! LA! 2. 2. ΟΚ! ΟΚ! DB 22 11

Μονιµότητα 4. 4. Restore DB 6.NO! 5. 5. Κράτησεγια τονκ. Yτηνθέση 13Αγια LA! LA! 23 ACID Test ( A )tomicity Ατοµικότητα ( C )onsistency Συνέπεια ( I )solation Αποµόνωση ( D )urability Μονιµότητα 24 12

Αποµόνωση Ας υποθέσουµε ότι στο σύστηµα τρέχουν περισσότερεςαπόµιαδοσοληψίεςταυτοχρόνως. Ανµιααπόαυτέςµπορέσειναδειταενδιάµεσα αποτελέσµατα της άλλης, τότε µπορεί να έχουµε ανεπιθύµητα αποτελέσµατα (διότι ενδιαµέσως στη δοσοληψία η βάση µπορεί να είναι ασυνεπής). Γι αυτό, θαθέλαµε, ιδεατά, οιδοσοληψίεςνατρέχουν ηµίαµετάτηνάλλησειριακά. Για λόγους απόδοσης, όµως, αυτό δεν γίνεται... 25 Αποµόνωση A: 150 B: 200 T1: 1. 2.A := A - 50; 3.write(A); 4. 5.B := B + 50; 6.write(B); Μόλις έχει έχει εκτελεστεί η Τ1::3. A: 100 B: 200 A+B=350 A+B=300 26 13

Αποµόνωση T1: idle [hold at T1::3] Μόλις έχει έχει εκτελεστεί η Τ1::3. A: 150 B: 200 T2: 1. 2.If B<220 B:=B*0.10; 3.write(B); A: 100 B: 200 A+B=350 A+B=300 27 Αποµόνωση T1: idle [hold at T1::3] Μόλις έχει έχει εκτελεστεί η Τ2::3. A: 150 B: 200 T2: 1. 2.If B<220 B:=B*1.10; 3.write(B); A: 100 B: 220 A+B=350 A+B=320 28 14

Αποµόνωση A: 150 B: 200 T1: 1. 2.A := A - 50; 3.write(A); 4. 5.B := B + 50; 6.write(B); Μόλις έχει έχει εκτελεστεί η Τ2::3. A: 100 B: 220 A+B=350 A+B=320 29 Αποµόνωση A: 150 B: 200 T1: 1. 2.A := A - 50; 3.write(A); 4. 5.B := B + 50; 6.write(B); Μόλις έχει έχει εκτελεστεί η Τ1::6. A: 100 B: 270 A+B=350 A+B=370 30 15

Αποµόνωση Και γιατί να µην τρέχουµε σειριακά τις δοσοληψίες, τη µίαµετάτηνάλλη; Παράλληλη χρήση της CPU και του Ι/Ο Οι σύντοµες δοσοληψίες, δεν έχουν λόγο να αναµένουν την ολοκλήρωση των πιο χρονοβόρων Έχουµε έξυπνους αλγόριθµους διαπλοκής των δοσοληψιών 31 Θεµατολόγιο Η έννοια της δοσοληψίας Ιδιότητες των δοσοληψιών Καταστάσεις µιας δοσοληψίας Χρονοπρογράµµατα Σειριοποιησιµότητα Έλεγχος σειριοποιησιµότητας 32 16

Καταστάσεις µιας δοσοληψίας partially committed committed active failed aborted 33 Καταστάσεις µιας δοσοληψίας Active: στο ξεκίνηµα και κατά τη διάρκειά της Failed: όταν το DBMS αντιληφθεί ότι η δοσοληψία δεν µπορεί να συνεχίσει Aborted: όταν η αποτυχηµένη δοσοληψία έχει αναιρεθείαπότοσύστηµακαιηβ είναισεσυνεπή µορφή Committed: όταν η δοσοληψία επιτύχει και η Β είναι σε συνεπή µορφή. 34 17

Καταστάσεις µιας δοσοληψίας Partially committed: όταν έχει εκτελεστεί η τελευταία εντολή της δοσοληψίας Λεπτή διάκριση µε την committed, θα επανέλθουµε στο κεφάλαιο της ανάκαµψης... 35 οσοληψία Ορθή επαναδιατύπωση οσοληψία είναι µια σειρά από ενέργειες, οι οποίες διαβάζουν ή γράφουν αντικείµενα της βάσης και η οποία τελειώνει είτε µε COMMIT, είτε µε ABORT 36 18

Συµβολισµός R X (A): ηδοσοληψίαχδιαβάζειτοαντικείµενοα W X (A): ηδοσοληψίαχ γράφειτοαντικείµενοα COMMIT X : ηδοσοληψίαχ τερµατίζειεπιτυχώς ABORT x : ηδοσοληψίαχ αποτυγχάνει Π.χ., R 4 (r3): ηδοσοληψίατ4διαβάζειτοαντικείµενο r3 37 Θεµατολόγιο Η έννοια της δοσοληψίας Ιδιότητες των δοσοληψιών Καταστάσεις µιας δοσοληψίας Χρονοπρογράµµατα Σειριοποιησιµότητα Έλεγχος σειριοποιησιµότητας 38 19

Χρονοπρογράµµατα Χρονοπρόγραµµα είναι µια σειρά από ενέργειες (read, write, commit, abort) µιας οµάδας δοσοληψιών όπου εµφανίζονται όλες οι ενέργειες αυτών των δοσοληψιών διατηρώντας τη σειρά µε την οποία εµφανίζονται σε κάθε δοσοληψία Στηναγγλική: schedule 39 Παράδειγµα οσοληψίατ 1 : R(A);R(B);W(A);COMMIT οσοληψίατ 2 : R(A);R(B);W(B);COMMIT Schedule S 1 : R 1 (A);R 1 (B);W 1 (A);C1;R 2 (A);R 2 (B);W 2 (Β);C2. Schedule S 2 : R 2 (A);R 2 (B);W 2 (Β);C2;R 1 (A);R 1 (B);W 1 (A);C1. Schedule S 3 : R 1 (A);R 1 (B);R 2 (A);W 1 (A);R 2 (B);C1;W 2 (Β);C2. 40 20

Αντιπαράδειγµα οσοληψίατ 1 : R(A);R(B);W(A);COMMIT οσοληψίατ 2 : R(A);R(B);W(B);COMMIT Schedule S 4 : R 1 (B);W 1 (A);C1;R 2 (A);R 2 (B);W 2 (Β);C2. Schedule S 5 : W 2 (Β);R 1 (A);R 1 (B);R 2 (A);W 1 (A);R 2 (B);C1;C2. 41 Χρονοπρόγραµµα Schedule S 3 : R 1 (A);R 1 (B);R 2 (A);W 1 (A);R 2 (B);C1;W 2 (Β);C2. Ένα χρονοπρόγραµµα περιγράφει τι βλέπει το DBMS και όχι τι προγραµµατίζουµε εµείς! 42 21

Παράδειγµα T1: µεταφέρει 50 απόασεβ T 1 T 2 temp := A * 0.1; A := A - temp; write(a); B := B + temp; write(b); T2: µεταφέρει 10%τουΑστο Β Συνέπεια: Α+Β σταθερό A := A - 50; write(a); B := B + 50; write(b). 43 Σειριακό Χρονοπρόγραµµα Serial Schedule:Ότανοι ενέργειες που ανήκουν σε µια δοσοληψία εµφανίζονται κολλητά η µίαµετηνάλλη Εναλλακτικά: ότανοι συναλλαγές εκτελούνται εξολοκλήρουηµία µετά την άλλη T 1 A := A - 50; write(a); B := B + 50; write(b). T 2 temp := A * 0.1; A := A - temp; write(a); B := B + temp; write(b); 44 22

Σειριακό Χρονοπρόγραµµα n! δυνατάσειριακά χρονοπρογράµµατα για n δοσοληψίες T 1 A := A - 50; write(a); B := B + 50; write(b); T 2 temp := A * 0.1; A := A - temp; write(a); B := B + temp; write(b). 45 Σειριακό Χρονοπρόγραµµα Α:150, Β:200, Α+Β: 350 Α:100, Β:250, Α+Β: 350 Α:90, Β:260, Α+Β: 350 T 1 A := A - 50; write(a); B := B + 50; write(b); T 2 temp := A * 0.1; A := A - temp; write(a); B := B + temp; write(b). 46 23

Μη Σειριακό Χρονοπρόγραµµα Α:150, Β:200, Α+Β: 350 Α:100, Β:200, Α+Β: 300 Α:90, Β:200, temp:10, Α+Β: 290 Α:90, Β:250, Α+Β: 340 Α:90, Β:260, Α+Β: 350 T 1 A := A - 50; write(a); B := B + 50; write(b); T 2 temp := A * 0.1; A := A - temp; write(a); B := B + temp; write(b). 47 Προβληµατικό Χρονοπρόγραµµα Α:150, Β:200, Α+Β: 350 Α:100, Β:200, Α+Β: 300 Α:100, Β:200, Α+Β: 300 Α:100, Β:250, Α+Β: 350 T 1 A := A - 50; write(a); B := B + 50; write(b); T 2 temp := A * 0.1; A := A - temp; write(a); B := B + temp; write(b). Α: 150,Β:200, Α+Β: 350 Α:135, Β:200, temp:15, Α+Β: 335 Α:100, Β:215, Α+Β: 315 48 24

Προσοχή!! Κάθε δοσοληψία στο χρονοπρόγραµµα, είναι σαν συνάρτηση: έχει δικό της χώρο µνήµης [γι αυτό και η τιµή των Α, Β εξαρτάται ΜΟΝΟ από τα read, write καιτιςτοπικέςµεταβολές καιόχιαπότιςαλλαγέςσε άλλες δοσοληψίες] 49 3 ειδών προβλήµατα µε τα χρονοπρογράµµατα Ασυνεπείς αναγνώσεις (dirty reads) Απώλειες ενηµερώσεων (lost updates) Μη επαναλήψιµες αναγνώσεις (non-repeatable reads) 50 25

Παράδειγµα Τ1: µεταφέρει 50 από τον Α στον Β Τ2: κάνειαύξησηστονακαιτοβκατά 10% Προσοχή: ενυφίσταταιπεριορισµόςγιατοα+β, πλέον! Σκοπός είναι να δείξουµε προβλήµατα που µπορούν να προκύψουν... 51 Σειριακό Χρονοπρόγραµµα Α:150, Β:200 Α:100, Β:250 Α:110, Β:275 T 1 A := A - 50; write(a); B := B + 50; write(b); T 2 temp := A * 0.1; A := A + temp; write(a); temp := Β * 0.1; B := B + temp; write(b). 52 26

Ασυνεπής Ανάγνωση (Dirty Read) Α:150, Β:200 Α:100, Β:200 Α:110, Β:200 Α:110, Β:220 Α:110, Β:270 T 1 A := A - 50; write(a); B := B + 50; write(b). T 2 temp := A * 0.1; A := A + temp; write(a); temp := Β * 0.1; B := B + temp; write(b); ιαφορετικό από το 275 του σειριακού!!! 53 Ασυνεπής Ανάγνωση (Dirty Read) Α:150, Β:200 Α:100, Β:200 Α:110, Β:200 Τώρα; Τιθα κάνειητ2 ; T 1 A := A - 50; write(a); ABORT! T 2 temp := A * 0.1; A := A + temp; write(a); temp := Β * 0.1; B := B + temp; write(b); 54 27

Dirty read ΟόροςπροκύπτειαπότογεγονόςότιηΤ2 διαβάζει µιατιµήγιατοα, ενώητ1, ηοποίαείχεξεκινήσεινα το τροποποιεί, δεν έχει ολοκληρώσει ακόµα. Κατά συνέπεια, αν η Τ1 κάνει abort, πρέπει να κάνει και η Τ2 [ασχέτως που έχει ήδη ολοκληρώσει]... 55 Σειριακό Χρονοπρόγραµµα Α:150, Β:200 Α:100, Β:250 Α:110, Β:275 T 1 A := A - 50; write(a); B := B + 50; write(b); T 2 temp := A * 0.1; A := A + temp; write(a); temp := Β * 0.1; B := B + temp; write(b). 56 28

Απώλεια Ενηµερώσεων (lost updates) Α:150, Β:200 Α:100, Β:200 Α:165, Β:200 Η A:100 χάθηκε διότιητ2::read(a) «βιάστηκε» T 1 A := A - 50; write(a); B := B + 50; write(b). T 2 temp := A * 0.1; A := A + temp; write(a); temp := Β * 0.1; B := B + temp; write(b); 57 Μη επαναλήψιµες αναγνώσεις (Non-repeatable reads) Ακόµακιανδεν έχει νόηµα να διαβάσει 2 φορές τοα, το T1είναι ένα έγκυρο transaction T 1 temp1 := A - 50; temp2 := A + 50; T 2 temp := A * 0.1; A := A + temp; write(a). 58 29

Μη επαναλήψιµες αναγνώσεις (Non-repeatable reads) Στην ίδια δοσοληψία, διαβάσαµε 2 φορές τοακαιπήραµε διαφορετική τιµή!! T 1 temp1 := A - 50; temp2 := A + 50; T 2 temp := A * 0.1; A := A + temp; write(a). 59 Πλήρες χρονοπρόγραµµα Πλήρες χρονοπρόγραµµα: ένα χρονοπρόγραµµα που συµπεριλαµβάνει abort ή commit στο τέλος της κάθε δοσοληψίας. 60 30

Θεµατολόγιο Η έννοια της δοσοληψίας Ιδιότητες των δοσοληψιών Καταστάσεις µιας δοσοληψίας Χρονοπρογράµµατα Σειριοποιησιµότητα Έλεγχος σειριοποιησιµότητας 61 Σειριοποιησιµότητα Βασικό ζητούµενο είναι η συνέπεια της βάσης Η σειριακή εκτέλεση των δοσοληψιών (σειριακό χρονοπρόγραµµα) εγγυάται τη συνέπεια Σειριοποιήσιµοχρονοπρόγραµµα: ένα χρονοπρόγραµµα που εγγυηµένα έχει το ίδιο αποτέλεσµα µε ένα πλήρες σειριακό χρονοπρόγραµµα. Αποµόνωση: θυµάστε τι είναι; 62 31

Σειριοποιησιµότητα Κατάσυνέπεια, ανµαςδοθείέναχρονοπρόγραµµα, πρέπει να µπορέσουµε να αποφανθούµε αν είναι σειριοποιήσιµο ή όχι! ύο τεχνικές: Σειριοποιησιµότητα συγκρούσεων Σειριοποιησιµότητα όψεως //δε θα επικεντρώσουµε! Στο εξής, θα αγνοούµε το processing στη µνήµη και θαµαςαπασχολούνµόνοοι read και write αλληλεπιδράσεις των δοσοληψιών µε τη βάση δεδοµένων!! 63 Σειριοποιησιµότητα συγκρούσεων T1: read(x) T2: write(x) DB Πότε Πότευπάρχει σύγκρουση; 64 32

Συγκρούσεις Έστω δύο δοσοληψίες, Τ1 και Τ2, οι οποίες θέλουν να ενεργήσουν µέσα στο ίδιο χρονοπρόγραµµα πάνω στο ίδιο αντικείµενο Α. Πότε θα τοεπιτρέψουµε; [Εναλλακτικά:, πότε συγκρούονται οι ενέργειές τους;] Τ1\Τ2 Read Read Write Write 65 Σειριοποιησιµότητα συγκρούσεων ύο χρονοπρογράµµατα καλούνται ισοδύναµα συγκρούσεων αν για κάθε σύγκρουση, οι συγκρουόµενες πράξεις έχουν την ίδια σειρά στα δύο προγράµµατα. 66 33

Σειριακό Χρονοπρόγραµµα S1 R1(A); W1(A); R1(B); W1(B); C1; R2(A); W2(A); R2(B); W2(Β); C2 T 1 A := A - 50; write(a); B := B + 50; write(b); T 2 temp := A * 0.1; A := A - temp; write(a); B := B + temp; write(b). 67 Μη Σειριακό Χρονοπρόγραµµα S2 R1(A); W1(A); R2(A); W2(A); R1(B); W1(B); C1; R2(B); W2(Β); C2 T 1 A := A - 50; write(a); B := B + 50; write(b); T 2 temp := A * 0.1; A := A - temp; write(a); B := B + temp; write(b). 68 34

Προβληµατικό Χρονοπρόγραµµα S3 R1(A); R2(A); W2(A); R2(B); W1(A); R1(B); W1(B); C1; W2(Β); C2 T 1 A := A - 50; write(a); B := B + 50; write(b); T 2 temp := A * 0.1; A := A - temp; write(a); B := B + temp; write(b). 69 S1: Ισοδυναµία ; R1(A);W1(A);R1(B);W1(B);C1;R2(A);W2(A);R2(B);W2(Β);C2 S2: order preserving R1(A);W1(A); R2(A);W2(A);R1(B);W1(B);C1;R2(B);W2(Β);C2 S3: order changed! R1(A); R2(A);W2(A); R2(B);W1(A); R1(B);W1(B);C1;W2(Β);C2 70 35

Σειριοποιησιµότητα [τυπικά] Ένα χρονοπρόγραµµα είναι σειριοποιήσιµο συγκρούσεων αν είναι ισοδύναµο συγκρούσεων µε ένα σειριακό.... αν, δηλαδή, όλες οι συγκρουόµενες πράξεις έχουν τηνίδιασειράπουθαείχανσεένασειριακό... 71 ιαισθητικά [και όχι τυπικά] Στο σειριακό χρονοπρόγραµµα, κάθε δοσοληψία «ξεµπερδεύει» ξεχωριστά (σε αποµόνωση) µε κάθε αντικείµενο και µετά το «αναλαµβάνει» µια άλλη... Σε ένα σειριοποιήσιµο, το να ΜΗΝ υπάρχει σύγκρουση σηµαίνει ότι το χρονοπρόγραµµα «ξεµπερδεύει» µε τα αντικείµενα µε την ίδια σειρά ανά δοσοληψία, µετηνοποίαθατοέκανεκαιτο σειριακό... Επιβεβαιώστε µε τα προηγούµενα... 72 36

Ερώτηση T 1 write(a); write(b). T 2 write(b); write(a). Είναι σειριοποιήσιµο ή όχι; 73 Θεµατολόγιο Η έννοια της δοσοληψίας Ιδιότητες των δοσοληψιών Καταστάσεις µιας δοσοληψίας Χρονοπρογράµµατα Σειριοποιησιµότητα Έλεγχος σειριοποιησιµότητας 74 37

Γράφος Σειριοποιησιµότητας Μοντελοποιούµε τις συγκρούσεις ενός χρονοπρογράµµατος µε ένα γράφο, ο οποίος έχει: Για κάθε δοσοληψία και ένα κόµβο Μιακατευθυνόµενηακµήαπότηνδοσοληψία T i στην δοσοληψία T j, ανµιαενέργειατης T i συγκρούεταιµεµια επακόλουθή της, της Tj. Ήτοι, γιακάθεσύγκρουσηπράξη i (X);Πράξη j (X)µια ακµή από τον προηγούµενο κόµβο i στον επόµενο κόµβο j 75 Γράφος σειριοποιησιµότητας Για ευκολία, µπορούµε να σηµειώνουµε και το αντικείµενο για το οποίο οι δύο δοσοληψίες συγκρούονται... 76 38

Γράφος σειριοποιησιµότητας S1: R1(A);W1(A);R1(B);W1(B);C1;R2(A);W2(A);R2(B);W2(Β);C2 Α,Β T 1 T 2 Θυµίζω: ακµή από τον προηγούµενο κόµβο i στον επόµενο κόµβο j 77 Γράφος σειριοποιησιµότητας S2: R1(A);W1(A); R2(A);W2(A);R1(B);W1(B);C1;R2(B);W2(Β);C2 Α,Β T 1 T 2 78 39

S3: Γράφος σειριοποιησιµότητας R1(A); R2(A);W2(A); R2(B);W1(A); R1(B);W1(B);C1;W2(Β);C2 A,B T 1 T 2 A,B 79 Θεώρηµα Γράφος µε κύκλο είναι µη σειριοποιήσιµος σε σχέση µε τις συγκρούσεις Γράφος χωρίς κύκλο είναι σειριοποιήσιµος σε σχέση µε τις συγκρούσεις Το ισοδύναµο σειριακό πρόγραµµα προκύπτει από την τοπολογική ταξινόµηση του γράφου. T 0 T 11 T 33 T 22 T 0 T 1 T 2 T 3 T 0 T 00 T 11 T 22 T 33 80 40

Ερώτηση T 1 write(a); write(b). T 2 write(b); write(a). Είναι σειριοποιήσιµο ή όχι; 81 Θεώρηµα Σειριοποιησιµότητα συγκρούσεων έλλειψη κύκλου στο γράφο Υπάρχειόµωςκαιάλληεκδοχήσειριοποιησιµότητας, η σειριοποιησιµότητα όψεως... 82 41

Σειριοποιησιµότητα όψεως Ποιος ο γράφος σειριοποίησης του παρακάτω χρονοπρογράµµατος; T 3 read(q) write(q) T 4 write(q) T 6 write(q) 83 Σειριοποιησιµότητα όψεως T 3 T 4 T 6 T 3 read(q) write(q) T 4 write(q) T 6 write(q) 84 42

Σειριοποιησιµότητα όψεως Και λοιπόν; Αφού ούτως ή άλλως, σηµασία έχειτιγράφειητ6... T 3 read(q) write(q) T 4 write(q) T 6 write(q) 85 Σειριοποιησιµότητα συγκρούσεων και όψεων Κάθε χρονοπρόγραµµα που είναι σειριοποιήσιµο σε σχέση µε συγκρούσεις, είναι σειριοποιήσιµο όψεως. Το αντίστροφο ΕΝ ισχύει. Κάθε χρονοπρόγραµµα που είναι σειριοποιήσιµο όψεως, και ΕΝ είναι σειριοποιήσιµο σε σχέση µε συγκρούσεις, περιέχει τυφλές εγγραφές (writes που δεν έχει προηγηθεί read γι αυτές στην δοσοληψία τους) 86 43

Ελέγχοντας την σειριοποιησιµότητα όψεως Οαλγόριθµοςείναι NP-complete καικατάσυνέπεια, όχι πρακτικός Εν γένει, σε σχέση µε τη σειριοποιησιµότητα όψεως, στο πλαίσιο του µαθήµατος, το πολύ να σας ζητηθεί να υποψιαστείτε αν ένα χρονοπρόγραµµα είναι σειριοποιήσιµο... 87 Αλγόριθµος για view serializability Απότονγράφοπροτεραιότηταςµεετικέτεςστιςακµές, προσπάθησε να βρεις ένα συνεκτικό ακυκλικό γράφο, διαλέγονταςαπόκάθεζεύγοςακµώνµείδιαετικέτα, µίαεκτωνδύο... 88 44