ΤΕΧΝΙΚΕΣ ΤΑΥΤΟΧΡΟΝΙΣΜΟΥ

Σχετικά έγγραφα
Έλεγχος Ταυτοχρονισμού

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

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

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

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

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

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

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

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

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

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

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

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

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

Επαναληπτικές ασκήσεις

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

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

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

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

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

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

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

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

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

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

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

Ψευδοκώδικας. November 7, 2011

Τεχνικές Ελέγχου Συνδροµικότητας

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Τμήμα Πληροφορικής

Θεωρία Υπολογισμού και Πολυπλοκότητα

10 η Διάλεξη Python Βάσεις δεδομένων στη python

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

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

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

Λειτουργικά Συστήματα. Ενότητα # 6: Αδιέξοδα Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

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

9. Συστολικές Συστοιχίες Επεξεργαστών

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΤΕΛΟΣ 1ΗΣ ΣΕΛΙΔΑΣ

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

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

Διαδικασιακός Προγραμματισμός

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (2)

Συναρτησιακές Εξαρτήσεις και Κανονικοποίηση

num(m(w 1 ;... ; w k )) = f(num(w 1 ),..., num(w k ))

Σενάριο 16: Ο κόσμος του Robby

Πρωτόκολλο ARP. Γεωργιλά Χιονία Καθηγήτρια Πληροφορικής ΠΕ1901

Σενάριο Χρήσης myschool

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

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

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

ΕΝΤΟΛΕΣ. 7.1 Εισαγωγικό μέρος με επεξήγηση των Εντολών : Επεξήγηση των εντολών που θα

Εισαγωγή στην. Εισαγωγή Σ Β. Αρχεία ευρετηρίου Κατάλογος. συστήματος. Αρχεία δεδομένων

Περιληπτικά, τα βήματα που ακολουθούμε γενικά είναι τα εξής:

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

Οδηγός γρήγορης εκκίνησης του PowerSuite

Περιεχόμενα Ορισμός και λειτουργία των μηχανών Turing Θεωρία Υπολογισμού Ενότητα 20: Μηχανές Turing: Σύνθεση και Υπολογισμοί Επ. Καθ. Π. Κατσαρός Τμήμ

Κατανεμημένα Συστήματα με Java. Ενότητα # 7: Ατομικές συναλλαγές Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Διάλεξη 16: SQL DML IV, SQL DCL, SQL TCL. Διδάσκων: Παναγιώτης Ανδρέου

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

Θέμα Α Α3.1 ΤΕΛΟΣ 1ΗΣ ΑΠΟ 9 ΣΕΛΙΔΕΣ

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (2)

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

Έλεγχος του εγγράφου και της διάταξης εμφάνισης περιθώρια, μέγεθος γραμματοσειράς, μορφοποίησης και ορθογραφία

Ειδικά Θέματα Δικτύων Ι

Προστασία Δεδομένων Φυσικών Προσώπων - GDPR

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

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

DBTechNet. DBTech VET. SQL Transactions. Θεωρία και Ασκήσεις Πρακτικής Εφαρμογής. Στην ελληνική

Διαδικασιακός Προγραμματισμός

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

Θεωρία Υπολογισμού και Πολυπλοκότητα Αναγωγές

Α1. Να χαρακτηρίσετε καθεμία από τις παρακάτω προτάσεις με τη λέξη Σωστή ή με τη λέξη Λάθος.

Πρόσθεση, αφαίρεση και πολλαπλασιασμός φυσικών αριθμών

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ. i. Η συνθήκη α > β ή α <= β α) είναι πάντα Αληθής β) είναι πάντα Ψευδής γ) δεν υπολογίζεται δ) τίποτα από τα προηγούμενα

Συνήθεις Διαφορικές Εξισώσεις Ι Ασκήσεις - 19/10/2017. Ακριβείς Διαφορικές Εξισώσεις-Ολοκληρωτικοί Παράγοντες. Η πρώτης τάξης διαφορική εξίσωση

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 7η ΕΝΟΤΗΤΑ: ΟΡΓΑΝΩΣΗ ΧΡΟΝΟΥ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ

Θανάσης Βασιλόγιαννης. Το Εκπαιδευτικό Υλικό

EL Eνωμένη στην πολυμορφία EL A8-0204/271. Τροπολογία. Kosma Złotowski, Roberts Zīle εξ ονόματος της Ομάδας ECR

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή

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

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

2 Ο ΔΙΑΓΩΝΙΣΜΑ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΟΝ Γ ΛΥΚΕΙΟΥ

Ιδιοκτησία Αντικειµένου

ΑΕΠΠ Ερωτήσεις θεωρίας

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

Πανεπιστήμιο Αθηνών Τμήμα Φυσικής Κβαντομηχανική ΙΙ

όπου D(f ) = (, 0) (0, + ) = R {0}. Είναι Σχήµα 10: Η γραφική παράσταση της συνάρτησης f (x) = 1/x.

Εισαγωγή στους Υπολογιστές

Διαχείριση Πολιτισμικών Δεδομένων

Περιγραφικές Λογικές. Αλγόριθμοι αυτόματης εξαγωγής συμπερασμάτων. Γ. Στάμου

ΘΕΜΑ Α. Α1. Να γράψετε στο. 2. Τα του. τις. αριθμητικές. πρώτες. β. Να. Σελίδα 1 από 5. 2) χ 2. χ Τ_Ρ(α) ΓΡΑΨΕ. ΓΡΑΨΕ χ χ χ+2

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ

Ενδεικτικές Ερωτήσεις Θεωρίας

Βάσεις δεδομένων (Access)

Πλειάδες φαντάσματα (phantoms)

Transcript:

ΤΕΧΝΙΚΕΣ ΤΑΥΤΟΧΡΟΝΙΣΜΟΥ ΓΕΩΡΓΙΑ ΓΚΑΡΑΝΗ ΕΠΙΚΟΥΡΟΣ ΚΑΘΗΓΗΤΡΙΑ ΤΜΗΜΑ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΤΕΙ ΛΑΡΙΣΑΣ garani@teilar.gr

Σειροποιησιμότητα 2 Ησειροποιησιμότητα αποτελεί το γενικά αποδεκτό κριτήριο γα τον έλεγχο των συναλλαγών. Έτσι, μια δεδομένη πλεκτή εκτέλεση ενός συνόλου συναλλαγών θεωρείται σωστή αν είναι σειροποιήσιμη, δηλ. αν παράγει το ίδιο αποτέλεσμα με κάποια σειριακή εκτέλεση των ίδιων συναλλαγών, όπου εκτελούνται μία μία. 1. Οι μεμονωμένες συναλλαγές θεωρούνται σωστές δηλ. θεωρείται ότι μετατρέπουν μια συνεπή κατάσταση της βάσης δεδομένωνσεμιαάλλησυνεπήκατάσταση. 2. Ηεκτέλεση των συναλλαγών μίας προς μίας, με οποιαδήποτε σειρά, είναι επομένως σωστή επίσης, -λέμε «με οποιαδήποτε σειρά» επειδή θεωρούμε ότι οι μεμονωμένες συναλλαγές είναιανεξάρτητεςμεταξύτους. 3. Μια πλεκτή εκτέλεση είναι λοιπόν σωστή αν είναι ισοδύναμη μεκάποιασειριακήανάλυση, δηλ. ανείναισειροποιήσιμη.

Χρονοδιάγραμμα 3 Με δεδομένο ένα σύνολο συναλλαγών, οποιαδήποτε εκτέλεση αυτών των συναλλαγών (πλεκτή ή όχι) ονομάζεται χρονοδιάγραμμα (schedule). Η εκτέλεση των συναλλαγών μίας προς μία, χωρίς διαπλοκήαποτελείένα σειριακό χρονοδιάγραμμα. Ένα χρονοδιάγραμμα που δεν είναι σειριακό είναι ένα πλεκτό χρονοδιάγραμμα. Δύο χρονοδιαγράμματα λέγονται ισοδύναμα αν είναι εγγυημένο ότι δίνουν το ίδιο αποτέλεσμα, ανεξάρτητα από την αρχική κατάσταση της βάσης δεδομένων. Έτσι, ένα χρονοδιάγραμμα είναι σωστό (δηλ. σειροποιήσιμο) αν είναιισοδύναμο μεκάποιοσειριακόχρονοδιάγραμμα.

Θεώρημα του κλειδώματος δύο φάσεων 4 Αν όλες οι συναλλαγές υπακούουν στο «πρωτόκολλο κλειδώματος δύο φάσεων», τότε όλα τα δυνατά πλεκτά χρονοδιαγράμματα είναι σειροποιήσιμα. Το πρωτόκολλοκλειδώματοςδύο φάσεων ορίζεταιως εξής: Πριν επενεργήσει σε οποιοδήποτε αντικείμενο (π.χ. σε μια συστοιχία βάσης δεδομένων), μια συναλλαγή πρέπει να αποκτήσει ένακλείδωμασεαυτότοαντικείμενο. Αφού απελευθερώσει ένα κλείδωμα, μία συναλλαγή δεν πρέπει ποτέ ναπροχωρήσειστηναπόκτησηκαιάλλωνκλειδωμάτων. Μια συναλλαγή που υπακούει σε αυτό το πρωτόκολλο έχει λοιπόν δύο φάσεις, μία φάση απόκτησης κλειδώματος και μία φάση απελευθέρωσης κλειδώματος που ενσωματώνεται συνήθως στην πράξηcommit ή ROLLBACK στοτέλος της συναλλαγής.

Παρατηρήσεις στα χρονοδιαγράμματα 5 Δύο διαφορετικά σειριακά χρονοδιαγράμματα που περιλαμβάνουν το ίδιο σύνολο συναλλαγών θα μπορούσαν να δίνουν διαφορετικά αποτελέσματα και επομένως, δύο διαφορετικά πλεκτά χρονοδιαγράμματα που περιλαμβάνουν αυτές τις συναλλαγές μπορεί επίσης να δίνουν διαφορετικό αποτέλεσμα και, παρόλα αυτά, να θεωρούνται και τα δύο σωστά. Παράδειγμα: Ας υποθέσουμε ότι η συναλλαγή Α είναι της μορφής «Να προστεθεί 1 στο x» και η συναλλαγή Β της μορφής «Να διπλασιαστεί το x» (όπου x κάποιο στοιχείο στη βάση δεδομένων). Υποθέστεεπίσης, ότιηαρχική τιμή του x είναι 10. Τότε, το σειριακό χρονοδιάγραμμα «πρώτα ηακαι μετά ηβ» δίνει x=22, ενώ τοσειριακό χρονοδιάγραμμα «πρώτα ηβκαι μετά ηα» δίνει x=21. Αυτά τα δύο χρονοδιαγράμματα είναι και τα δύο σωστά και οποιοδήποτε χρονοδιάγραμμα που είναι εγγυημένα ισοδύναμο είτε με το ένα είτε με το άλλο είναι επίσης σωστό.

Παρατηρήσεις στα χρονοδιαγράμματα (συν.) 6 Έστω Εένα πλεκτό χρονοδιάγραμμα που περιλαμβάνει ένα σύνολο συναλλαγών Τ1, Τ2,, Τn. Αν το Ε είναι σειροποιήσιμο, τότε υπάρχει κάποιο σειριακό χρονοδιάγραμμα S που περιλαμβάνει τις Τ1, Τ2,, Τn, έτσιώστετοεναείναιισοδύναμομετο S. Λέμεότιτο S είναι μια σειροποίηση του Ε (το S δεν είναι απαραίτητα μοναδικό). Έστω ότι Τi και Tj δύο οποιεσδήποτεσυναλλαγέςαπότοσύνολο Τ1, Τ2,, Τn. Θεωρούμε ότι η Τi προηγείται της Tj στη σειροποίηση S. Στο πλεκτό διάγραμμα Ε,το αποτέλεσμα πρέπει να είναι σαν να εκτελείται πραγματικά η Ti πριν από την Tj. Με άλλα λόγια, αν οι Α και Β είναι δύο συναλλαγές που περιλαμβάνονται σε κάποιο χρονοδιάγραμμα σειροποίησης, τότε ήηαπροηγείται λογικά της Β ήηβπροηγείται λογικά της Ασε αυτό τοχρονοδιάγραμμα, δηλ. ήη Ββλέπει τηνέξοδο της ΑήηΑβλέπει την έξοδο της Β.Αντίθετα, αν τοαποτέλεσμα δενείναι ούτεσαννα εκτελέστηκεηαπριναπότηβ ούτε σαν να εκτελέστηκε η Β πριν από την Α, τότε το χρονοδιάγραμμα δεν είναι σειροποιήσιμο και, επομένως, δεν είναι σωστό.

Επίπεδα απομόνωσης 7 Οόρος επίπεδο απομόνωσης χρησιμοποιείται για να υποδηλώσει τον βαθμό παρεμβολής που μπορεί να ανεχθεί μια δεδομένη συναλλαγή όσον αφορά τις ταυτόχρονεςσυναλλαγές. Μπορούν να οριστούν πολλά διαφορετικά επίπεδα απομόνωσης. Όσο υψηλότερο το επίπεδο απομόνωσης, τόσο μικρότερες είναι οι παρεμβολές (καιτόσοχαμηλότεροςοταυτοχρονισμός).

Επίπεδα απομόνωσης (DB2) 8 To DB2 υποστηρίζει δύο επίπεδα απομόνωσης, τη σταθερότητα δρομέα (cursor stability, CS) και την επαναλήψιμη ανάγνωση (repeatable read, RR). Ηεπαναλήψιμη ανάγνωση είναι το υψηλότερο επίπεδο, αν όλες οι συναλλαγές λειτουργούν σε αυτό το επίπεδο, τότε όλα τα χρονοδιαγράμματαείναισειροποιήσιμα. Αντίθετα, μετησταθερότηταδρομέα: αν μια συναλλαγή Τ1 αποκτήσει δυνατότητα προσπέλασης κάποιας συστοιχίας p θέτοντας ένα δρομέα που δείχνει σε αυτή τησυστοιχίακαιεπομένως αποκτήσειένακλείδωμαστην p καιέπειτα παραιτηθεί από τη δυνατότητά της για προσπέλαση της συστοιχίας p χωρίς να την ενημερώσει, και επομένως δενπροάγειτοκλείδωμάτηςσεεπίπεδοχ,τότε αυτό το κλείδωμα μπορεί να απελευθερωθεί χωρίς να χρειάζεταιναπεριμένειγιατοτέλοςτηςσυναλλαγής.

Επίπεδα απομόνωσης (DB2) 9 Κάποια άλλη συναλλαγή Τ2 μπορεί τώρα να ενημερώσει τη συστοιχία p και να επικυρώσει τη μεταβολή. Αν τώρα η συναλλαγή Τ1 επανέλθει και κοιτάξει πάλι τη συστοιχία p,θα δει αυτή τη μεταβολή και έτσι μπορεί να διαπιστώσει μια ασυνεπή κατάστασητηςβάσηςδεδομένων. Αντίθετα, στο επίπεδο της επαναλήψιμης ανάγνωσης, όλα τα κλειδώματα συστοιχιών (όχι μόνο τα κλειδώματα Χ) διατηρούνται μέχρι το τέλος της συναλλαγής και επομένως το πρόβλημα που περιγράψαμεεδώδεμπορείναπροκύψει.

S Κλειδώματα Χ και S 10 Η Τ ανέχεται ταυτόχρονες αναγνώσεις, αλλά όχι ταυτόχρονες ενημερώσεις της R. Η ίδια η Τ δεν ενημερώνεισυστοιχίεςτης R. Χ ΗΤδεν ανέχεται καμία απολύτως προσπέλαση της R. Ηίδια ητμπορεί να ενημερώνει ήνα μην ενημερώνει μεμονωμένεςσυστοιχίεςτης R.

Προτιθέμενο κλείδωμα 11 Κλειδώματα μπορούν να εφαρμόζονται σε μεμονωμένες συστοιχίες, σε ολόκληρες σχέσεις ήκαι σε ολόκληρη τη βάση δεδομένων ήακόμη και σε μια συγκεκριμένη τιμή γνωρίσματος μέσασεμιασυγκεκριμένησυστοιχία. Αυτό ονομάζεται μικροδομήτου κλειδώματος. Όσο πιο λεπτή είναι ημικροδομή, τόσο μεγαλύτερος είναι ο ταυτοχρονισμός, όσο πιο χοντρή είναι η μικροδομή, τόσο λιγότερα κλειδώματα χρειάζεται να τίθενται και να ελέγχονται καιτόσοχαμηλότερηείναιηεπιβάρυνση. Παράδειγμα: Αν μια συναλλαγή έχει ένα κλείδωμα Χπάνω σε μια ολόκληρη σχέση, δεν είναι ανάγκη να τίθενται κλειδώματα Χ σε μεμονωμένες συστοιχίες μέσα σε αυτή τη σχέση, πράγμα που προφανώς μειώνει το συνολικό αριθμό των κλειδωμάτων. Από την άλλη, καμία ταυτόχρονη συναλλαγή δε θα μπορεί να αποκτήσει κανένα κλείδωμα σε αυτή τη σχέση ήτις συστοιχίες αυτήςτηςσχέσης.

Προτιθέμενο κλείδωμα (συν.) 12 Έστωότικάποια συναλλαγήτζητάει ένα κλείδωμα Χσε μία σχέση R. Μόλις πάρει την αίτηση της Τα, το σύστημα πρέπει να έχει τη δυνατότητα να διαπιστώσει αν οποιαδήποτε άλλη συναλλαγή κατέχει ήδη ένα κλείδωμα σε οποιαδήποτε συστοιχία της R γιατί αν συμβαίνει αυτό, η αίτηση της Τ δεν μπορεί να ικανοποιηθεί τη συγκεκριμένηστιγμή. Πώς μπορεί το σύστημα να εντοπίσει μια τέτοια σύγκρουση; Προφανώςδενείναιεπιθυμητόναεξετάζεικάθεσυστοιχίατηςσχέσης R για να δει αν οποιαδήποτε συστοιχία είναι κλειδωμένη από οποιαδήποτε άλλη συναλλαγή ήνα εξετάζει κάθε υπάρχον κλείδωμα γιαναδει ανκάποιοαπόαυτάαφοράμιασυστοιχίατης R. Γι αυτό, εισάγουμε ένα άλλο πρωτόκολλο, το πρωτόκολλο προτιθέμενου κλειδώματος, σύμφωνα με το οποίο καμία συναλλαγή δεν επιτρέπεται να αποκτήσει ένα κλείδωμα σε συστοιχία ανδεναποκτήσειπρώταένακλείδωμα τοοποίομπορεί ναείναι προτιθέμενο κλείδωμα στη σχέση που την περιέχει. Οεντοπισμός της σύγκρουσης γίνεται τότε ένα σχετικά απλό ζήτημα, αρκεί να διαπιστωθεί αν οποιαδήποτε συναλλαγή έχει κάποιο συγκρουόμενο κλείδωμασεεπίπεδοσχέσης.

Προτιθέμενο κλείδωμα (συν.) 13 Εισάγουμε τρία νέα είδη κλειδωμάτων, που ονομάζονται προτιθέμενα κλειδώματα, τα οποία έχουν νόημα και γιαολόκληρεςσχέσειςκαιγιαμεμονωμένεςσυστοιχίες: 1.Προτιθέμενομεριζόμενο κλείδωμα (IS) 2.Προτιθέμενοαποκλειστικόκλείδωμα (IX) 3.Μεριζόμενο και προτιθέμενο αποκλειστικό κλείδωμα (SIX)

1.Προτιθέμενο μεριζόμενο κλείδωμα (IS) 14 Η συναλλαγή Τ σκοπεύει να θέσει κλειδώματα S σε μεμονωμένες συστοιχίες της R, για να εξασφαλιστεί η σταθερότητα αυτών των συστοιχιών ενώ γίνεται η επεξεργασίατους.

2.Προτιθέμενο αποκλειστικό κλείδωμα (IX) 15 Το ίδιο με το IS και επιπλέον η Τ μπορεί να χρειαστεί να ενημερώνει μεμονωμένες συστοιχίες της R, γι αυτό θέτεικλειδώματαχσεαυτέςτιςσυστοιχίες.

3.Μεριζόμενο και προτιθέμενο αποκλειστικό κλείδωμα (SIX) 16 Συνδυάζει τα S και IX, δηλ. η Τ ανέχεται ταυτόχρονες αναγνώσεις, αλλά όχι ταυτόχρονες ενημερώσεις της R, και επιπλέον η Τ μπορεί να χρειαστεί να ενημερώνει μεμονωμένες συστοιχίες της R, γι αυτό θέτεικλειδώματα X σεαυτέςτιςσυστοιχίες.

Μητρώο συμβατότητας 17 X SIX IX S IS - X O O O O O N SIX O O O O N N IX O O N O N N S O O O N N N IS O N N N N N - N N N N N N

Πρωτόκολλο προτιθέμενου κλειδώματος 18 1. Για να μπορέσει μια δεδομένη συναλλαγή να αποκτήσει ένα κλείδωμα S σε μια δεδομένη συστοιχία, πρέπει πρώτα να αποκτήσει ένα κλείδωμα IS πάνω στη σχέση που περιέχει αυτή τη συστοιχία. 2. Για να μπορέσει μια δεδομένη συναλλαγή να αποκτήσει ένα κλείδωμα Χ σε μια δεδομένη συστοιχία, πρέπει πρώτα να αποκτήσει ένα κλείδωμα IX πάνω στη σχέση που περιέχει αυτή τη συστοιχία.

Γράφημα προτεραιότητας Λέμε ότι ο τύπος κλειδώματος L2 είναι ισχυρότερος δηλ. πιο ψηλά στο γράφημα- από τον τύπο κλειδώματος L1 αν και μόνο αν, όποτε υπάρχει ένα «Ο» (μια σύγκρουση) στη στήλη του L1 στο μητρώο συμβατότητας σε μια δεδομένη γραμμή, υπάρχει επίσης ένα «Ο» στη στήλη του L2 σε αυτή την ίδια γραμμή. 19 S Χ SIX IX Σημείωση: Μια αίτηση κλειδώματος που αποτυγχάνει για ένα δεδομένο τύπο κλειδώματος σίγουρα θα αποτύχει και για έναν ισχυρότερο τύπο κλειδώματος. IS

Κλιμάκωση κλειδωμάτων 20 Όταν το σύστημα φτάσει σε κάποιο προκαθορισμένο κατώφλι, αντικαθιστά αυτόματα ένα σύνολο κλειδωμάτων λεπτής μικροδομής με ένα μόνο κλείδωμα χονδρής μικροδομής για παράδειγμα, καταργώντας ένα σύνολο μεμονωμένων κλειδωμάτων S σε επίπεδο συστοιχίας και μετατρέποντας το κλείδωμα IS της περιέχουσαςσχέσης σε κλείδωμα S.

Υποστήριξη από την SQL 21 Η SQL δεν παρέχει δυνατότητα για δυνατότητα για ρητά κλειδώματα. Απαιτεί όμως από την υλοποίηση να παρέχει τις συνηθισμένες εγγυήσεις για τις παρεμβολές ήμάλλον για την απουσία τους, μεταξύ συναλλαγών που εκτελούνταιταυτόχρονα. Ειδικότερα, απαιτεί οι ενημερώσεις που πραγματοποιούνται από μια δεδομένη συναλλαγή Τ1να μη γίνονται ορατές σε οποιαδήποτε άλλη συναλλαγή Τ2, παρά μόνο αν και όταν η συναλλαγή Τ1 τερματιστεί με επικύρωση (COMMIT). Ο τερματισμός με επικύρωση κάνει όλες τις ενημερώσεις που πραγματοποιήθηκαν από τη συναλλαγή να γίνουν ορατές στις άλλες συναλλαγές. Ο τερματισμός με ανασκευή (ROLLBACK) κάνει όλες τις ενημερώσεις που πραγματοποιήθηκαναπότησυναλλαγήναακυρωθούν.

Επίπεδα απομόνωσης στην SQL 22 SET TRANSACTION: χρησιμοποιείται για τον ορισμό κάποιων χαρακτηριστικών της επόμενης συναλλαγής που θα ξεκινήσει Ένα από αυτά τα χαρακτηριστικά είναι απομόνωσηςπουείναιένααπόταπαρακάτω: το επίπεδο READ UNCOMMITED ανάγνωση ανεπικύρωτων READ COMMITTED ανάγνωση επικυρωμένων REPEATABLE READ επαναλήψιμη ανάγνωση SERIALIZABLE σειροποιήσιμο Η προεπιλογή είναι SERIALIZABLE. Αν καθοριστεί οποιοδήποτε από τα άλλα τρία επίπεδα, η υλοποίηση έχει την ελευθερία να επιλέξει κάποιο ανώτερο επίπεδο, όπουτο «ανώτερο» ορίζεται μεβάσητηδιάταξη: SERIALIZABLE >REPEATABLE READ> READ COMMITTED > READ UNCOMMITED

Επίπεδα απομόνωσης στην SQL(συν.) 23 Αν όλες οι συναλλαγές εκτελούνται στο επίπεδο απομόνωσης SERIALIZABLE, τότε ηπλεκτή εκτέλεση οποιουδήποτε συνόλου συναλλαγών είναι εγγυημένα σειροποιήσιμη. Αν όμως οποιαδήποτε συναλλαγή εκτελείται σε κατώτερο επίπεδο απομόνωσης, τότε η σειροποιησιμότητα μπορεί να παραβιαστεί με πολλούς διαφορετικούςτρόπους. Το πρότυπο ορίζει τρεις συγκεκριμένους τρόπους με τους οποίους θα μπορούσε να παραβιαστεί η σειροποιησιμότητα, που είναι η αναξιόπιστη ανάγνωση, η μη επαναλήψιμη ανάγνωση και τα φαντάσματα.

Αναξιόπιστη ανάγνωση 24 Υποθέστε ότι μια συναλλαγή T1 κάνει μια ενημέρωση σε κάποια γραμμή, μετά η συναλλαγή Τ2 ανακαλεί αυτή τη συναλλαγή και μετά η συναλλαγή Τ1 τερματίζεται με ανασκευή. Τότε, ησυναλλαγή Τ2έχει δει μια γραμμή που δεν υπάρχει πια και κατά μια έννοια, δεν υπήρξε ποτέ (επειδή η συναλλαγή Τ1 ουσιαστικάδενεκτελέστηκεποτέ).

Μη επαναλήψιμη ανάγνωση 25 Υποθέστε ότιησυναλλαγή T1 ανακαλείμια γραμμή, μετά ησυναλλαγή Τ2ενημερώνει αυτή τη γραμμή και μετά η συναλλαγή Τ1 ανακαλεί πάλι την «ίδια» γραμμή. Ησυναλλαγή Τ1έχει ανακαλέσει τώρα την «ίδια» γραμμή δύο φορές, αλλά βλέπει δύο διαφορετικέςτιμές.

Φαντάσματα 26 Υποθέστε ότι η συναλλαγή T1 ανακαλεί το σύνολο όλωντωνγραμμώνπουικανοποιούνκάποιασυνθήκη. Υποθέστε ότι στη συνέχεια ησυναλλαγή Τ2εισάγει μια νέα γραμμήπουικανοποιείαυτή τηνίδια συνθήκη. Αν τώρα η συναλλαγή Τ1 επαναλάβει την αίτηση ανάκλησης, θα δει μια γραμμή που δεν υπήρχε πριν ένα «φάντασμα».

Επιτρεπόμενες παραβιάσεις 27 Τα διάφορα επίπεδα απομόνωσης ορίζονται με βάση ποιες από τις προηγούμενες παραβιάσεις της σειροποιησιμότητας επιτρέπουν. Επίπεδοαπομόνωσης Αναξιόπιστη ανάγνωση Μηεπαναλήψιμη ανάγνωση Φάντασμα READ UNCOMMITTED Ν Ν Ν READCOMMITTED Ο Ν Ν REPEATABLE READ Ο Ο Ν SERIALIZABLE Ο Ο Ο Πώς μπορεί το σύστημα να εμποδίσει να εμφανίζονται «φαντάσματα»;