Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
1
Βάσεις Δεδομένων ΙΙ 5η διάλεξη
2
1 Επανάληψη
3
Επανάληψη Κανονικές μορφές Ρύθμιση ΒΔ
4
Διαχείριση συναλλαγών
2 Διαχείριση συναλλαγών
5
Συναλλαγές Μία συναλλαγή είναι ο αφαιρετικός τρόπος που βλέπουμε να εκτελείται το πρόγραμμα ενός χρήστη: μία σειρά από αναγνώσεις (read) και εγγραφές (write)
6
Συναλλαγές Ο χρήστης μπορεί να κάνει πολλές πράξεις με τα δεδομένα όμως τη ΒΔ την ενδιαφέρει τι διαβάζει και τι γράφει!
7
Κάθε συναλλαγή πρέπει να διατηρεί τη συνέπεια της ΒΔ
Ιδιότητες συναλλαγών Όλες οι συναλλαγές εκτελούνται ατομικά, είτε εκτελούνται όλες, είτε καμία Κάθε συναλλαγή πρέπει να διατηρεί τη συνέπεια της ΒΔ Οι συναλλαγές κάθε χρήστη αφορούν μόνο αυτόν και δεν επηρεάζονται από ταυτόχρονες συναλλαγές άλλων χρηστών (απομόνωση) Εφόσον το σύστημα ενημερώσει το χρήστη ότι οι συναλλαγές ολοκληρώθηκαν τότε θα πρέπει να αποθηκεύονται μόνιμα!
8
Μία συναλλαγή είναι μια λίστα από ενέργειες
Συναλλαγή για το DBMS Μία συναλλαγή είναι μια λίστα από ενέργειες Οι ενέργειες μπορεί να είναι: διάβασε και γράψε ένα «αντικείμενο» Ο συμβολισμός τους είναι: R(O), W(O) Μια τελευταία ενέργεια είναι: COMMIT ή ABORT
9
Είναι μια αλληλουχία εκτέλεσης ενεργειών
Χρονοπρόγραμμα Είναι μια αλληλουχία εκτέλεσης ενεργειών Το χρονοπρόγραμμα περιγράφει τις εντολές των συναλλαγών όπως τις βλέπεις το DBMS.
10
Παράδειγμα αλληλουχίας εντολών (χρονοπρόγραμμα)
Τ1 Τ2 R(A) W(A) R(B) W(B) R(C) W(C)
11
Πλήρες χρονοπρόγραμμα: αυτό το οποίο τελειώνει με commit ή abort
Χρονοπρόγραμμα Πλήρες χρονοπρόγραμμα: αυτό το οποίο τελειώνει με commit ή abort Σειριακό χρονοπρόγραμμα: αυτό που κάθε συναλλαγή εκτελείται εξ ολοκλήρου πριν εκτελεστεί μία άλλη
12
Δεν υπάρχει καμία εξασφάλιση ότι το Τ1 θα έχει ολοκληρωθεί πριν το Τ2
Παράδειγμα Συναλλαγές Δεν υπάρχει καμία εξασφάλιση ότι το Τ1 θα έχει ολοκληρωθεί πριν το Τ2 T1 T2 BEGIN A=A+100 A=A*1,06 B=B-100 B=B*1,06 END
13
Παράδειγμα T1 T2 A=A+100 A=A*1,06 B=B-100 B=B*1,06
14
Παράδειγμα T1 T2 A=A+100 B=B-100 A=A*1,06 B=B*1,06
15
Παράδειγμα T1 T2 A=A+100 A=A*1,06 B=B*1,06 B=B-100
16
Μας ενδιαφέρει για να γίνεται βελτίωση της απόδοσης
Ταυτόχρονη εκτέλεση Μας ενδιαφέρει για να γίνεται βελτίωση της απόδοσης Σειριοποιήσιμο χρονοπρόγραμμα: Αυτό το οποίο έχει το ίδιο αποτέλεσμα αν εκτελούνταν σειριακά!
17
Προβλήματα εναλλασσόμενης εκτέλεσης
Δύο ενέργειες συγκρούονται όταν έστω μία από αυτές είναι ενέργεια εγγραφής (write). Ανάμεσα σε δύο συναλλαγές έχουμε τις πιθανές συγκρούσες: Write-read (WR) Read-write (RW) Write-write (WW)
18
WR πρόβλημα Τ1 Τ2 R(A) W(A) R(Α) W(Α) R(C) W(C) Abort Commit
19
RW πρόβλημα Τ1 Τ2 R(A) R(Α) W(Α) W(A) Commit
20
WW πρόβλημα Τ1 Τ2 W(A) W(Α) W(B) Commit
21
Επαναφέρσιμο χρονοπρόγραμμα
Είναι αυτό στο οποίο οι συναλλαγές ολοκληρώνονται μόνο όταν ολοκληρώνονται και οι συναλλαγές των οποίων τις αλλαγές διαβάζουν
22
Έλεγχος ταυτοχρονισμού
3 Κλειδαριές Έλεγχος ταυτοχρονισμού
23
Έλεγχος ταυτοχρονισμού
Ιδανικά: Σειριοποιήσιμα, επαναφέρσιμα προγράμματα Πρωτόκολλο κλειδώματος!
24
Πρωτόκολλο κλειδώματος
Σύνολο κανόνων που πρέπει να ακολουθεί κάθε συναλλαγή ώστε ακόμα κι αν οι ενέργειες πολλών συναλλαγών εκτελούνται με εναλλασσόμενο τρόπο να διασφαλίζεται ότι το τελικό αποτέλεσμα είναι ταυτόσημο με αυτό της εκτέλεσης των συναλλαγών με κάποια συγκεκριμένη σειρά
25
Αυστηρό κλείδωμα δύο φάσεων (2 Phase Locking)
Αν μια συναλλαγή θέλει να διαβάσει το αντικείμενο Α πρώτα ζητά μια κοινόχρηστη κλειδαριά πάνω στο αντικείμενο – S(O) Αν μια συναλλαγή θέλει να διαβάσει το αντικείμενο Α πρώτα ζητά μια αποκλειστική κλειδαριά πάνω στο αντικείμενο – X(O) Όλες οι κλειδαριές αποδεσμεύονται με την ολοκλήρωση της συναλλαγής
26
2PL Τ1 Τ2 X(A) R(A) W(A) Commit
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.