Συναλλαγές - dblab.upatras.gr fileΣυναλλαγές Βάσεις ΔεδομένωνΙΙ...

Post on 02-Sep-2019

4 views 0 download

Transcript of Συναλλαγές - dblab.upatras.gr fileΣυναλλαγές Βάσεις ΔεδομένωνΙΙ...

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Συναλλαγές

Βάσεις Δεδομένων ΙΙ

Τμήμα Μηχανικών Η/Υ και ΠληροϕορικήςΠολυτεχνική Σχολή, Πανεπιστήμιο Πατρών

Εαρινό Εξάμηνο 2011-2012

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Table of contents

1 Εισαγωγή

2 Συγχρονικότητα

3 Αναϕορές

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Table of contents

1 Εισαγωγή

2 Συγχρονικότητα

3 Αναϕορές

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Table of contents

1 Εισαγωγή

2 Συγχρονικότητα

3 Αναϕορές

ToC

1 Εισαγωγή

2 Συγχρονικότητα

3 Αναϕορές

. . . . . .

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Συναλλαγές

Tread(A)A -= 30write(A)read(B)B += 30write(B)

Πότε χρειαζόμαστε συναλλαγές?

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Συναλλαγές

ACID

Atomicity

ConsistencyIsolationDurability

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Συναλλαγές

ACID

AtomicityConsistency

IsolationDurability

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Συναλλαγές

ACID

AtomicityConsistencyIsolation

Durability

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Συναλλαγές

ACID

AtomicityConsistencyIsolationDurability

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Συναλλαγές

ACID

AtomicityConsistencyIsolationDurability

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Συναλλαγές

Ατομικότητα

Οι λειτουργίες της συναλλαγής πρέπει να γίνουν είτεόλες είτε καμία

ΣυνέπειαΗ εκτέλεση μιας συναλλαγής θα πρέπει να διατηρεί τησυνέπεια της βάσης δεδομένων

Απομόνωση

Κάθε συναλλαγή δε θα πρέπει να ξέρει για τις άλλεςσυναλλαγές που εκτελούνται ταυτόχρονα

Αντοχή

Μετά την επιτυχή εκτέλεση μιας συναλλαγής θα πρέπειοι αλλαγές να παραμένουν στην βάση δεδομένων

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Συναλλαγές

Ατομικότητα

Οι λειτουργίες της συναλλαγής πρέπει να γίνουν είτεόλες είτε καμία

ΣυνέπειαΗ εκτέλεση μιας συναλλαγής θα πρέπει να διατηρεί τησυνέπεια της βάσης δεδομένων

Απομόνωση

Κάθε συναλλαγή δε θα πρέπει να ξέρει για τις άλλεςσυναλλαγές που εκτελούνται ταυτόχρονα

Αντοχή

Μετά την επιτυχή εκτέλεση μιας συναλλαγής θα πρέπειοι αλλαγές να παραμένουν στην βάση δεδομένων

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Συναλλαγές

Ατομικότητα

Οι λειτουργίες της συναλλαγής πρέπει να γίνουν είτεόλες είτε καμία

ΣυνέπειαΗ εκτέλεση μιας συναλλαγής θα πρέπει να διατηρεί τησυνέπεια της βάσης δεδομένων

Απομόνωση

Κάθε συναλλαγή δε θα πρέπει να ξέρει για τις άλλεςσυναλλαγές που εκτελούνται ταυτόχρονα

Αντοχή

Μετά την επιτυχή εκτέλεση μιας συναλλαγής θα πρέπειοι αλλαγές να παραμένουν στην βάση δεδομένων

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Συναλλαγές

Ατομικότητα

Οι λειτουργίες της συναλλαγής πρέπει να γίνουν είτεόλες είτε καμία

ΣυνέπειαΗ εκτέλεση μιας συναλλαγής θα πρέπει να διατηρεί τησυνέπεια της βάσης δεδομένων

Απομόνωση

Κάθε συναλλαγή δε θα πρέπει να ξέρει για τις άλλεςσυναλλαγές που εκτελούνται ταυτόχρονα

Αντοχή

Μετά την επιτυχή εκτέλεση μιας συναλλαγής θα πρέπειοι αλλαγές να παραμένουν στην βάση δεδομένων

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Καταστάσεις Συναλλαγών

Ενεργή

Εν μέρη εκτελεσμένηΑποτυχημένηΔιακοπείσαΕκτελεσμένη

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Καταστάσεις Συναλλαγών

ΕνεργήΕν μέρη εκτελεσμένη

ΑποτυχημένηΔιακοπείσαΕκτελεσμένη

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Καταστάσεις Συναλλαγών

ΕνεργήΕν μέρη εκτελεσμένηΑποτυχημένη

ΔιακοπείσαΕκτελεσμένη

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Καταστάσεις Συναλλαγών

ΕνεργήΕν μέρη εκτελεσμένηΑποτυχημένηΔιακοπείσα

Εκτελεσμένη

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Καταστάσεις Συναλλαγών

ΕνεργήΕν μέρη εκτελεσμένηΑποτυχημένηΔιακοπείσαΕκτελεσμένη

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Ταυτόχρονη vs Σειριακή Εκτέλεση

Για ένα σύνολο συναλλαγών προς εκτέλεση: Σειριακά ή"Παράλληλα"?

Σειριακή

Η σειριακή εκτέλεση δε δημιουργεί προβλήματα στησυνέπεια, αλλά..

"Παράλληλη"

Βελτιωμένη απόδοση και Χρήση ΠόρωνΠεριορισμένος Χρόνος Αναμονής

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Ταυτόχρονη vs Σειριακή Εκτέλεση

Για ένα σύνολο συναλλαγών προς εκτέλεση: Σειριακά ή"Παράλληλα"?

Σειριακή

Η σειριακή εκτέλεση δε δημιουργεί προβλήματα στησυνέπεια, αλλά..

"Παράλληλη"

Βελτιωμένη απόδοση και Χρήση ΠόρωνΠεριορισμένος Χρόνος Αναμονής

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Συνέπεια

T1 T2

read(A)A = A-50

read(A)A = A -50write(A)read(B)

write(A)read(B)B = B + 50write(B)

B = B + 50write(B)

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Σειριακή Διάταξη με Διένεξη

Δύο εντολές έρχονται σε διένεξη αν:

είναι διαϕορετικών συναλλαγώνχρησιμοποιούν τα ίδια δεδομέναμια από αυτές είναι write()

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Σειριακή Διάταξη με Διένεξη

Αν ένα χρονοδιαγράμματα μπορεί να μετασχηματιστείσε ένα άλλο από μια σειρά εναλλαγών εντολών που δενέρχονται σε διένεξη, λέμε ότι τα χρονοδιαγράμματααυτά είναι ισοδύναμα ως προς τις διενέξεις.

Ένα χρονοδιάγραμμα S είναι σε σειριακή διάταξη ανείναι ισοδύναμο ως προς τις διενέξεις με ένα σειριακόχρονοδιάγραμμα.

Ιδιαίτερα αυστηρό κριτήριο

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Σειριακή Διάταξη με Διένεξη

Αν ένα χρονοδιαγράμματα μπορεί να μετασχηματιστείσε ένα άλλο από μια σειρά εναλλαγών εντολών που δενέρχονται σε διένεξη, λέμε ότι τα χρονοδιαγράμματααυτά είναι ισοδύναμα ως προς τις διενέξεις.

Ένα χρονοδιάγραμμα S είναι σε σειριακή διάταξη ανείναι ισοδύναμο ως προς τις διενέξεις με ένα σειριακόχρονοδιάγραμμα.

Ιδιαίτερα αυστηρό κριτήριο

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Σειριακή Διάταξη με Διένεξη

Αν ένα χρονοδιαγράμματα μπορεί να μετασχηματιστείσε ένα άλλο από μια σειρά εναλλαγών εντολών που δενέρχονται σε διένεξη, λέμε ότι τα χρονοδιαγράμματααυτά είναι ισοδύναμα ως προς τις διενέξεις.

Ένα χρονοδιάγραμμα S είναι σε σειριακή διάταξη ανείναι ισοδύναμο ως προς τις διενέξεις με ένα σειριακόχρονοδιάγραμμα.

Ιδιαίτερα αυστηρό κριτήριο

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Σειριακή Διάταξη με Διένεξη

T1 T2read(A)write(A)

read(A)write(A)

read(B)write(B)

read(B)write(B)

Σειριακή διάταξη?

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Έλεγχος σειριακής διάταξης

Γράϕημα Προτεραιότητας

κόμβοι: συναλλαγέςακμές: Ti → Tj αν:

Ti εκτελεί write(A) πριν η Tj εκτελέσει read(A)Ti εκτελεί write(A) πριν η Tj εκτελέσει write(A)Ti εκτελεί read(A) πριν η Tj εκτελέσει write(A)

Αν το γράϕημα περιέχει κύκλο, τότε το αντίστοιχοχρονοδιάγραμμα δεν είναι σειριακής διάταξης μεδιένεξη

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Έλεγχος σειριακής διάταξης

Γράϕημα Προτεραιότητας

κόμβοι: συναλλαγέςακμές: Ti → Tj αν:

Ti εκτελεί write(A) πριν η Tj εκτελέσει read(A)Ti εκτελεί write(A) πριν η Tj εκτελέσει write(A)Ti εκτελεί read(A) πριν η Tj εκτελέσει write(A)

Αν το γράϕημα περιέχει κύκλο, τότε το αντίστοιχοχρονοδιάγραμμα δεν είναι σειριακής διάταξης μεδιένεξη

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Παράδειγμα

είναι τα παρακάτω σειριοποιήσιμα?

S1 = R1(x),R2(y), W2(x), W1(x)S2 = R4(x), R1(x), R2(y), W2(x), R3(y), W3(y), R4(z),W4(x), W2(z), W4(y)

ToC

1 Εισαγωγή

2 Συγχρονικότητα

3 Αναϕορές

. . . . . .

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Εισαγωγή

Πως διασϕαλίζουμε ότι τα χρονοδιαγράμματα μπαίνουνσε σειριακή διάταξη?

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Καταστάσεις Κλειδώματος

Κοινόχρηστη (S)Αποκλειστική (X)

S XS True FalseX Flase Flase

Συναρτήσεις

lock-S(A)lock-X(A)unlock(A)

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Πρωτόκολλο κλειδώματος δυο ϕάσεων 2PL

κάθε συναλλαγή κλειδώνει και ξεκλειδώνει πόρους σε 2ϕάσεις:

Φάση ΑνάπτυξηςΦάση Σύμπτυξης

Παραλλαγές:

Strict 2PLRigorous 2PL

Διασϕαλίζει Σειριακή Διάταξη Διένεξης

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Παράδειγμα

μπορεί το παρακάτω χρονοπρόγραμμα να είναιαποτέλεσμα του 2PL?

R1[x], W2[x], R1[x]

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Άσκηση 1

R1[y];R2[x];W1[y];W3[y];W1[z];R2[z];R3[z]

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Λύση - Άσκηση 1

R1[y];R2[x];W1[y];W3[y];W1[z];R2[z];R3[z]T1

T2

T3

x y z

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Λύση - Άσκηση 1

R1[y];R2[x];W1[y];W3[y];W1[z];R2[z];R3[z]T1

T2

T3

x y z

X1[y] R1[y]

X

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Λύση - Άσκηση 1

R1[y];R2[x];W1[y];W3[y];W1[z];R2[z];R3[z]T1

T2

T3

x y z

X1[y] R1[y] S2[x] R2[x]

S

X

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Λύση - Άσκηση 1

R1[y];R2[x];W1[y];W3[y];W1[z];R2[z];R3[z]T1

T2

T3

x y z

X1[y] R1[y] S2[x] R2[x]

S

W1[y]

X

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Λύση - Άσκηση 1

R1[y];R2[x];W1[y];W3[y];W1[z];R2[z];R3[z]T1

T2

T3

x y z

X1[y] R1[y] S2[x] R2[x]

S

W1[y] X1[z]

X X

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Λύση - Άσκηση 1

R1[y];R2[x];W1[y];W3[y];W1[z];R2[z];R3[z]T1

T2

T3

x y z

X1[y] R1[y] S2[x] R2[x]

S

W1[y] X1[z] U1[y]

X X

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Λύση - Άσκηση 1

R1[y];R2[x];W1[y];W3[y];W1[z];R2[z];R3[z]T1

T2

T3

x y z

X1[y] R1[y] S2[x] R2[x]

S

W1[y] X1[z] U1[y]

X3[y]

X

W3[y]

X X

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Λύση - Άσκηση 1

R1[y];R2[x];W1[y];W3[y];W1[z];R2[z];R3[z]T1

T2

T3

x y z

X1[y] R1[y] S2[x] R2[x]

S

W1[y] X1[z] U1[y]

X3[y]

X

W3[y]

X X

W1[z]

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Λύση - Άσκηση 1

R1[y];R2[x];W1[y];W3[y];W1[z];R2[z];R3[z]T1

T2

T3

x y z

X1[y] R1[y] S2[x] R2[x]

S

W1[y] X1[z] U1[y]

X3[y]

X

W3[y] U1[z]

X X

W1[z]

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Λύση - Άσκηση 1

R1[y];R2[x];W1[y];W3[y];W1[z];R2[z];R3[z]T1

T2

T3

x y z

X1[y] R1[y] S2[x] R2[x]

S

W1[y] X1[z] U1[y]

X3[y]

X

W3[y] U1[z] S2[z]

S

R2[z]

X X

W1[z]

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Λύση - Άσκηση 1

R1[y];R2[x];W1[y];W3[y];W1[z];R2[z];R3[z]T1

T2

T3

x y z

X1[y] R1[y] S2[x] R2[x]

S

W1[y] X1[z] U1[y]

X3[y]

X

W3[y] U1[z] S2[z]

S

R2[z] S3[z] R3[z]

X X

W1[z]

S

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Λύση - Άσκηση 1

R1[y];R2[x];W1[y];W3[y];W1[z];R2[z];R3[z]T1

T2

T3

x y z

X1[y] R1[y] S2[x] R2[x]

S

W1[y] X1[z] U1[y]

X3[y]

X

W3[y] U1[z] S2[z]

S

R2[z] S3[z]

S

R3[z] U1, 2, 3[all]

X X

W1[z]

S

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Άσκηση 2

R1(X);R2(Y);W1(X);R2(X);R3(Z);W3(Z);R1(Y);R3(X);W1(Y);

ToC

1 Εισαγωγή

2 Συγχρονικότητα

3 Αναϕορές

. . . . . .

Συναλλαγές

ΒάσειςΔεδομένων ΙΙ

Εισαγωγή

Συγχρονικότητα

Αναϕορές

. . . . . .

Αναϕορές

Abraham Silberschatz, Henry F. Korth and S.Sudarshan, Database System Concepts FourthEdition, McGraw-Hill, 2002Raghu Ramakrishnan and Johannes Gehkre,Database Management Systems Second Edition,McGraw Hill, 2000