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

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

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

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

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

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

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΑ ΣΥΣΤΗΜΑΤΑ ΔΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

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

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

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

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

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

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

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

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

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

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

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

Μάθημα 4 ο. Κρίσιμα Τμήματα και Αμοιβαίος Αποκλεισμός

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

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

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

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Ενότητα 1: Εισαγωγή στις Βάσεις Δεδομένων. Αθανάσιος Σπυριδάκος Διοίκηση Επιχειρήσεων

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

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

Υ- 07 Παράλληλα Συστήματα Transac9onal memory

Εισαγωγή στην Πληροφορική

Κεφάλαιο 3. Διδακτικοί Στόχοι

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

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

Προγραμματισμός Η/Υ. Χειρισμός Αρχείων. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

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

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

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

Ιατρική Πληροφορική. Δρ. Π. ΑσβεστΑΣ ΤμΗμα ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ

Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας

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

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

Προγραμματισμός Η/Υ. 7 η ενότητα: Αρχεία. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα

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

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Συστήματα Διαχείρισης Βάσεων Δεδομένων

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

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

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

Οργάνωση ενός σύγχρονου Υπολογιστικού Συστήματος ή Ηλεκτρονικού Υπολογιστή (Η/Υ) Τα σύγχρονα συστήματα Η/Υ έχουν την παρακάτω οργάνωση:

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

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

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής)

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

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

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

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

Λειτουργικά Συστήματα

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας

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

Α. Να χαρακτηρίσετε τις παρακάτω προτάσεις ως σωστές (Σ) η λανθασμένες (Λ).

Εισαγωγή στην πληροφορική

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

Εισαγωγή στην Πληροφορική

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

Σχεδιασμός Επεξεργασίας και Τηλεπεξεργασίας

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

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

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή

Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών

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

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

Υ- 07 Παράλληλα Συστήματα Συνέπεια και συνοχή μνήμης

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

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

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

Μαλούτα Θεανώ Σελίδα 1

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

Αρχιτεκτονική Υπολογιστών

Μέσα Αποθήκευσης. Ιεραρχία μνήμης Μαγνητικοί δίσκοι Συστοιχίες δίσκων RAID Οπτικοί δίσκοι Μαγνητικές ταινίες Άλλα μέσα αποθήκευσης

Transcript:

Βάσεις Δεδομένων Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Βάσεις Δεδομένων», 2015-2016

Κεφάλαιο 7: Transactions (Συναλλαγές)

Ο λόγος που αναπτύχθηκαν οι Βάσεις Δεδομένων και τα ΣΔΒΔ είναι η δυνατότητα των χρηστών να εκτελούν συναλλαγές με αυτά μέσω των εφαρμογών που έχουν αναπτυχθεί για αυτό το σκοπό. Έτσι για παράδειγμα ο πελάτης μιας Τράπεζας μπορεί να εκτελέσει μια πληρωμή λογαριασμού, ή μια μεταφορά χρηματικού ποσού χρησιμοποιώντας την αντίστοιχη εφαρμογή. Η εφαρμογή θα αλληλεπιδράσει με τη Β.Δ. για να γίνουν οι απαραίτητες τροποποιήσεις στα δεδομένα (π.χ. μείωση του ποσού του καταθέτη, πίστωση του αντίστοιχου ποσού στον δικαιούχο κλπ). Χρήστης Χρήστης Βάση Δεδομένων Συναλλαγή (Transaction) με μια Βάση Δεδομένων ονομάζουμε μια σειρά ενεργειών που εκτελούνται από κάποιον χρήστη ή κάποια εφαρμογή και έχουν ως στόχο την προσπέλαση της Β.Δ. ή την πραγματοποίηση τροποποιήσεων σε αυτή. Το σύνολο των ενεργειών που περιλαμβάνει μια συναλλαγή αποτελεί μια λογική μονάδα εργασίας. Ουσιαστικά η συναλλαγή (ή δοσοληψία) είναι μια λογική ομάδα εντολών SQL που πρέπει να εκτελεστούν ΟΛΕΣ επιτυχώς ή να μην εκτελεστεί καμία.

Χρήστης Χρήστης Βάση Δεδομένων Τα Σ.Δ.Β.Δ. έχουν φτιαχτεί ώστε να εξυπηρετούν πολλούς χρήστες ταυτόχρονα. Κάποιοι χρήστες είναι δυνατό να επιχειρούν την ταυτόχρονη προσπέλαση των ίδιων δεδομένων (π.χ. της ίδιας εγγραφής ενός πίνακα). Η ταυτόχρονη ανάγνωση ΔΕΝ αποτελεί πρόβλημα Η ταυτόχρονη τροποποίηση απαιτεί ειδικό χειρισμό από το ΣΔΒΔ. Ο χειρισμός του ΣΔΒΔ σε αυτές τις περιπτώσεις πρέπει να είναι αυτόματος χωρίς να απαιτεί παρέμβαση πχ του διαχειριστή ή του προγραμματιστή. Παράδειγμα: Δύο πελάτες ενός ξενοδοχείου προσπαθούν ταυτόχρονα να κάνουν κράτηση ενός δωματίου. Η δοσοληψία (transaction) πρέπει να αφήνει τη Β.Δ. σε έγκυρη κατάσταση, συνεπή προς την παλιά.

Καταστάσεις δοσοληψίας (transaction) Transaction Manager Δοσοληψία (transaction) Επιτυχής στο σύνολό της: Επικυρώνεται (COMMIT) Ανεπιτυχής: Ακυρώνεται (ROLLBACK) Στην περίπτωση που μια δοσοληψία ακυρώνεται (Rollback) η Β.Δ. πρέπει να επανέλθει ακριβώς στην κατάσταση που βρισκόταν πριν την απόπειρα εκτέλεσης της δοσοληψίας. Transaction Manager: Το τμήμα του ΣΔΒΔ που διαχειρίζεται της δοσοληψίες

Επισήμανση δοσοληψίας (transaction) Ένα ΣΔΒΔ δε μπορεί να αντιληφτεί αυτόματα αν μια ομάδα εντολών SQL που δέχεται αποτελούν μια δοσοληψία. Έτσι οι προγραμματιστές πρέπει να δηλώνουν την αρχή και το τέλος της δοσοληψίας. COMMIT BEGIN TRANSACTION SQL εντολή 1 SQL εντολή 2 SQL εντολή ν Ή ROLLBACK

Ιδιότητες που πρέπει να πληρούνται Ατομικότητα (atomicity): Κάθε συναλλαγή πρέπει να εκτελείται ως ενιαίο σύνολο. Όλες οι επιμέρους εντολές θα εκτελεστούν με επιτυχία ή δε θα εκτελεστεί καμία. Συνοχή (consistency): Κάθε συναλλαγή πρέπει να διασφαλίζει τη συνοχή της Β.Δ. Την παραλαμβάνει σε μια έγκυρη κατάσταση και πρέπει να την παραδίδει σε έγκυρη κατάσταση. Απομόνωση (isolation): Κάθε συναλλαγή πρέπει να εκτελείται ανεξάρτητα από τις άλλες. Αν εκτελούνται πολλές συναλλαγές ταυτόχρονα τα προσωρινά αποτελέσματα μιας δεν πρέπει να επηρεάζουν τις υπόλοιπες. Διατηρισιμότητα (Durability): Τα αποτελέσματα μιας επιτυχούς συναλλαγής πρέπει να είναι μόνιμα, να αποθηκευτούν και να μη χαθούν π.χ. σε περίπτωση κατάρρευσης του συστήματος. Οι παραπάνω αρχές είναι γνωστές και ως A.C.I.D. Από τα αρχικά των αγγλικών όρων

Παράδειγμα Συναλλαγής (1/2) Ο πελάτης μιας τράπεζας διατηρεί δύο λογαριασμούς Α (500 ) και Β (1000 ) και θέλει να μεταφέρει 100 από τον ένα λογαριασμό στον άλλο. BEGIN TRANSACTION Διάβασε Υπόλοιπο Α Αφαίρεσε 100 από το υπόλοιπο Α Αποθήκευσε νέο Υπόλοιπο Α Διάβασε Υπόλοιπο Β Πρόσθεσε στο Υπόλοιπο Β 100 Αποθήκευσε νέο Υπόλοιπο Β COMMIT ή ROLLBACK Οι παραπάνω ενέργειες αποτελούν μια συναλλαγή καθώς αποτυχία έστω και μιας από τις παραπάνω ενέργειες θα προκαλούσε αλλοίωση της πραγματικής εικόνας των λογαριασμών του πελάτη.

Παράδειγμα Συναλλαγής (2/2) Ατομικότητα (atomicity): Αν γινόταν η ανάληψη από τον λογαριασμό Α και δεν καταχωρούταν η πίστωση στο λογαριασμό Β ο πελάτης θα έχανε 100. Η έννοια της ατομικότητας προστάζει να εκτελεστούν ΟΛΕΣ οι ενέργειες ή καμία από αυτές. Συνοχή (consistency): Πριν τη συναλλαγή ο πελάτης είχε 1500 (500 + 1000). Μετά τη συναλλαγή πρέπει να έχει πάλι 1500 (400 + 1100 ). Η Β.Δ. δηλαδή να διατηρήσει τη συνοχή της. Απομόνωση (isolation): Έστω ότι παράλληλα με την παραπάνω συναλλαγή εκτελείται και μια παράλληλη συναλλαγή όπως η πληρωμή ενός λογαριασμού 200 από την κατάθεση Β. Η δύο συναλλαγές πρέπει να εκτελεστούν απρόσκοπτα χωρίς να παρεμβάλλεται η μία στην άλλη και στο τέλος ο λογαριασμός Α να έχει 400 (500-100) και ο λογαριασμός Β 900 (1000 + 100 200). Διατηρισιμότητα (Durability): Αν παρουσιαστεί μια βλάβη πχ στο σύστημα της τράπεζας και η συναλλαγή έχει μόλις ολοκληρωθεί, πρέπει μετά την αποκατάσταση του προβλήματος οι λογαριασμοί να έχουν τα νέα ποσά.

Παράδειγμα Συναλλαγής (2/2) Ατομικότητα (atomicity): Αν γινόταν η ανάληψη από τον λογαριασμό Α και δεν καταχωρούταν η πίστωση στο λογαριασμό Β ο πελάτης θα έχανε 100. Η έννοια της ατομικότητας προστάζει να εκτελεστούν ΟΛΕΣ οι ενέργειες ή καμία από αυτές. Συνοχή (consistency): Πριν τη συναλλαγή ο πελάτης είχε 1500 (500 + 1000). Μετά τη συναλλαγή πρέπει να έχει πάλι 1500 (400 + 1100 ). Η Β.Δ. δηλαδή να διατηρήσει τη συνοχή της. Απομόνωση (isolation): Έστω ότι παράλληλα με την παραπάνω συναλλαγή εκτελείται και μια παράλληλη συναλλαγή όπως η πληρωμή ενός λογαριασμού 200 από την κατάθεση Β. Η δύο συναλλαγές πρέπει να εκτελεστούν απρόσκοπτα χωρίς να παρεμβάλλεται η μία στην άλλη και στο τέλος ο λογαριασμός Α να έχει 400 (500-100) και ο λογαριασμός Β 900 (1000 + 100 200). Διατηρισιμότητα (Durability): Αν παρουσιαστεί μια βλάβη πχ στο σύστημα της τράπεζας και η συναλλαγή έχει μόλις ολοκληρωθεί, πρέπει μετά την αποκατάσταση του προβλήματος οι λογαριασμοί να έχουν τα νέα ποσά.

Ταυτόχρονη εκτέλεση συναλλαγών Σε ένα ΣΔΒΔ επιτρέπεται η ταυτόχρονη εκτέλεση πολλών συναλλαγών. Η ιδέα είναι το ανάλογο του πολύ-προγραμματισμού στα Λειτουργικά Συστήματα όπου πολλές διεργασίες εκτελούνται ταυτόχρονα. Η παράλληλη εκτέλεση συναλλαγών είναι επιθυμητή για διάφορους λόγους, όπως: Μια συναλλαγή αποτελείται από επι-μέρους ενέργειες. Έτσι μια εντολή μιας συναλλαγής μπορεί να απασχολεί το σκληρό δίσκο ενώ μια άλλη εντολή άλλης συναλλαγής τη CPU. Έτσι γίνεται καλύτερη εκμετάλλευση των πόρων του συστήματος. Μια συναλλαγή μπορεί να παίρνει πολύ χρόνο να εκτελεστεί ενώ ταυτόχρονα μπορούν να υπάρχουν άλλες πολύ σύντομες. Αν όλες οι συναλλαγές εκτελούταν σειριακά, οι σύντομες μπορεί να περίμεναν για πολλή ώρα μέχρι να τερματιστεί η πολύπλοκη. Με την παράλληλη εκτέλεση, η ολοκλήρωση της πολύπλοκης συναλλαγής θα αργήσει ακόμη περισσότερο αλλά παράλληλα θα εξυπηρετηθούν και οι σύντομης διάρκειας που διαφορετικά θα περίμεναν. Έτσι ο μέσος χρόνος αναμονής των συναλλαγών μικραίνει.

Προβλήματα από την ταυτόχρονη εκτέλεση συναλλαγών Η ταυτόχρονη εκτέλεση πολλών συναλλαγών απαιτεί έλεγχο διαφορετικά ανακύπτουν σοβαρά θέματα εγκυρότητας στη Β.Δ. Παράδειγμα 1: Σε μια τραπεζική Β.Δ. πρέπει να εκτελεστούν οι παρακάτω συναλλαγές για έναν πελάτη που διαθέτη λογαριασμό Α με 100.000 υπόλοιπο. Η σειριακή εκτέλεση των συναλλαγών θα είχε σαν αποτέλεσμα το νέο υπόλοιπο του λογαριασμού Α να είναι 150.000. Η παράλληλη εκτέλεση των συναλλαγών με μια μικρή χρονική διαφορά η μία από την άλλη και χωρίς κανέναν έλεγχο θα είχε σαν αποτέλεσμα την απώλεια ποσού από τον λογαριασμό, όπως φαίνεται παρακάτω: Το συγκεκριμένο πρόβλημα λέγεται χαμένη ενημέρωση (Lost update). Δεν πρέπει λοιπόν μια συναλλαγή να διαβάζει τιμές από μια περιοχή της Β.Δ. όταν μια άλλη συναλλαγή ΕΝΗΜΕΡΩΝΕΙ την ίδια περιοχή.

Προβλήματα από την ταυτόχρονη εκτέλεση συναλλαγών Παράδειγμα 2: Στην ίδια περίπτωση με το προηγούμενο παράδειγμα (λογαριασμός Α, 100.000 ) η παράλληλη εκτέλεση των δύο συναλλαγών μετατοπίζεται χρονικά ως εξής: Αν για κάποιο λόγο (π.χ. διακοπή της online σύνδεσης), η Συναλλαγή 2 δεν επικυρωθεί, τότε κανονικά θα έπρεπε να ισχύσουν μόνο όσα περιλαμβάνει η Συναλλαγή 1, και το υπόλοιπο να γίνει 50.000. Εδώ όμως η Συναλλαγή 1 έχει προλάβει να διαβάσει το ενδιάμεσο αποτέλεσμα της Συναλλαγής 2 ΠΡΙΝ αυτή γίνει ROLL BACK με αποτέλεσμα να προκύπτει λανθασμένο αποτέλεσμα. Το συγκεκριμένο πρόβλημα λέγεται ανεπικύρωτη εξάρτηση (uncommitted dependency). Δεν πρέπει λοιπόν μια συναλλαγή να έχει πρόσβαση στα ΕΝΔΙΑΜΕΣΑ αποτελέσματα άλλης συναλλαγής.

Προβλήματα από την ταυτόχρονη εκτέλεση συναλλαγών Παράδειγμα 3: Σε αυτό το παράδειγμα η Συναλλαγή Α μεταφέρει 50.000 από τον Α στο Β ενώ η Συναλλαγή 2 υπολογίζει το συνολικό ποσό των δύο καταθέσεων ΩΡΑ Συναλλαγή Α Συναλλαγή Β Υπόλοιπο Α Υπόλοιπο Β SUM 11:00 ΑΡΧΗ 100.000 50.000 11:01 ΑΡΧΗ SUM <- 0 100.000 50.000 0 11:02 Διάβασε Α Διάβασε Α 100.000 50.000 0 11:03 Α <- Α-50.000 SUM <- SUM + A 100.000 50.000 100.000 11:04 Αποθήκευσε Α 50.000 50.000 100.000 11:05 Διάβασε Β 50.000 50.000 100.000 11:06 Β <- Β + 50.000 50.000 50.000 100.000 11:07 Αποθήκευσε Β Διάβασε Β 50.000 100.000 100.000 11:08 ΤΕΛΟΣ (Commit) SUM <- SUM + B 50.000 100.000 100.000 ΤΕΛΟΣ (Commit) 200.000 Εδώ λόγω του χρονισμού η Συναλλαγή Β υπολογίζει λάθος το συνολικό ποσό σε 200.000. Το πρόβλημα θα λυνόταν αν η Συναλλαγή Β ξαναδιάβαζε το Υπόλοιπο Α που θα το έβλεπε πλέον μειωμένο κατά 50.000. Το συγκεκριμένο πρόβλημα λέγεται ανεπανάληπτη ανάγνωση (unrepeatable read) γιατί αν επαναλαμβανόταν στο τη Συναλλαγή Β η ανάγνωση του Υπολοίπου Α δε θα υπήρχε πρόβλημα

Μηχανισμοί Προστασίας Λόγω των προβλημάτων που αναφέρθηκαν τα ΣΔΒΔ περιλαμβάνουν έναν Διαχειριστή του Ελέγχου Ταυτοχρονισμού (Concurrency Control Manager) που επιλύει αυτόματα τέτοια θέματα. Ο βασικός μηχανισμός είναι τα κλειδώματα (locks). Η βασική ιδέα είναι ότι όταν μια συναλλαγή θέλει να διαβάσει ή να τροποποιήσει μια τιμή θα αιτηθεί το αντίστοιχο κλείδωμα (ανάγνωσης ή εγγραφής).

Πηγές: Database Systems: A Practical Approach to Design, Implementation, and Management Thomas Connolly Carolyn Begg Βάσεις Δεδομένων, ΤΕΕ Β Τάξη, 1 ος Κύκλος, Ινστιτούτο Τεχνολογίας Υπολογιστών και Εκδόσεων «Διόφαντος»