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

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

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

Transcript

1 Κεφάλαιο 13 Δοσοληψίες Σύνοψη Στο παρόν κεφάλαιο θα παρουσιασθούν βασικά στοιχεία όσον αφορά τις δοσοληψίες, την έννοια της σειριοποιησιμότητας και των διαφόρων επιπέδων απομόνωσης. Προαπαιτούμενη γνώση H ύλη των προηγούμενων κεφαλαίων του βιβλίου Εισαγωγικές Έννοιες Με τον όρο δοσοληψία, εννοούμε μια μονάδα εργασίας που μπορεί να έχει πρόσβαση σε διάφορα δεδομένα, διαβάζοντας ή ενημερώνοντάς τα. Είναι μια σειρά από ενέργειες, οι οποίες διαβάζουν ή γράφουν αντικείμενα της βάσης. Όταν εκτελείται μια δοσοληψία, η βάση δεδομένων μπορεί να αλλάζει. Με το πέρας της δοσοληψίας όμως, η βάση πρέπει να παραμένει σταθερή. Δύο είναι τα βασικά προβλήματα με τις δοσοληψίες: 1. Τι θα γίνει αν κατά τη διάρκεια της εκτέλεσης, πέσει το σύστημα; 2. Τι θα γίνει αν δύο δοσοληψίες επιχειρούν να μεταβάλλουν το ίδιο αντικείμενο ταυτοχρόνως; Για να διασφαλίσει την ακεραιότητα των δεδομένων το σύστημα βάσης δεδομένων πρέπει να εξασφαλίσει: 1. Ατομικότητα: είτε όλες οι πράξεις της δοσοληψίας επιτυγχάνουν, είτε όλες αποτυγχάνουν. 2. Συνέπεια: στο τέλος της δοσοληψίας, η βάση πρέπει να είναι σε συνεπή μορφή. 3. Απομόνωση: ακόμα κι αν τρέχουν πολλές δοσοληψίες ταυτόχρονα, κάθε δοσοληψία πρέπει να νομίζει ότι τρέχει μόνη της. 4. Μονιμότητα: αν η δοσοληψία επιτύχει, πρέπει το αποτέλεσμά της να επιβιώνει, ακόμα κι αν αποτύχει το σύστημα. Το παραπάνω είναι διεθνώς γνωστό σαν ACID test (A)tomicity (C)onsistency (I)solation (D)urability Ατομικότητα Συνέπεια Απομόνωση Μονιμότητα Καταστάσεις δοσοληψιών Active: στο ξεκίνημα και κατά τη διάρκειά της. Η δοσοληψία μένει σ αυτή την κατάσταση ενώ εκτελείται Failed: όταν το DBMS αντιληφθεί ότι η δοσοληψία δεν μπορεί να συνεχίσει

2 Aborted: όταν η αποτυχημένη δοσοληψία έχει αναιρεθεί από το σύστημα και η ΒΔ είναι σε συνεπή μορφή Committed: όταν η δοσοληψία επιτύχει και η ΒΔ είναι σε συνεπή μορφή. Partially committed: όταν έχει εκτελεστεί η τελευταία εντολή της δοσοληψίας Συμπεραίνουμε λοιπόν, ότι η δοσοληψία τελειώνει είτε με μια δήλωση COMMIT που ολοκληρώνει επιτυχώς τη δοσοληψία, μονιμοποιώντας τις αλλαγές στη βάση δεδομένων, είτε με δήλωση ABORT (ROLLBACK για την MySQL). Σειριοποιησιμότητα Βασικό ζητούμενο είναι σε κάθε δοσοληψία να διατηρείται η συνέπεια της βάσης. Η σειριακή εκτέλεση των δοσοληψιών (σειριακό χρονοπρόγραμμα) εγγυάται τη συνέπεια της βάσης. Σειριοποιήσιμο είναι το χρονοπρόγραμμα που εγγυημένα έχει το ίδιο αποτέλεσμα με ένα πλήρες σειριακό χρονοπρόγραμμα. Έτσι, αν μας δοθεί ένα χρονοπρόγραμμα, πρέπει να μπορέσουμε να αποφανθούμε αν είναι σειριοποιήσιμο ή όχι και αυτό μπορούμε να το πετύχουμε με δυο τεχνικές: την σειριοποιησιμότητα συγκρούσεων και την σειριοποιησιμότητα όψεως. Στο εξής θα αγνοούμε το processing στη μνήμη και θα μας απασχολούν μόνο οι read και write αλληλεπιδράσεις με τη βάση δεδομένων. Εδώ υποθέτουμε ότι οι δοσοληψίες μπορούν να εκτελέσουν τους αυθαίρετους υπολογισμούς τους στα δεδομένα σε τοπικούς buffer ανάμεσα σε read και write. Σειριοποιησιμότητα συγκρούσεων Έστω η εντολή Ι 1 της δοσοληψίας Τ 1 και η εντολή Ι 2 της Τ 2. Τότε αυτές συγκρούονται αν και μόνο αν και οι δυο έχουν πρόσβαση σε ένα αντικείμενο Q και τουλάχιστον μια απ αυτές γράφει το Q. Παράδειγμα 1. I 1 = read (Q), I 2 = read (Q) Δεν Συγκρούονται 2. I 1 = read (Q), I 2 = write (Q) Συγκρούονται 3. I 1 = write (Q), I 2 = read (Q) Συγκρούονται 4. I 1 = write (Q), I 2 = read (Q) Δεν Συγκρούονται Αν ένα χρονοπρόγραμμα S μετασχηματιστεί σε ένα χρονοπρόγραμμα S από μια σειρά εναλλασσόμενων - μη συγκρουόμενων εντολών, λέμε ότι τα S και S είναι ισοδύναμα συγκρούσεων. Δηλαδή, δύο χρονοπρογράμματα είναι ισοδύναμα συγκρούσεων, αν για κάθε σύγκρουση οι συγκρουόμενες εντολές έχουν την ίδια σειρά στα δύο προγράμματα.

3 Ένα χρονοπρόγραμμα είναι σειριοποιήσιμο συγκρούσεων, αν είναι ισοδύναμο συγκρούσεων με ένα σειριακό (δηλαδή, αν όλες οι συγκρουόμενες πράξεις έχουν την ίδια σειρά που θα είχαν σε ένα σειριακό). Για την καλύτερη κατανόηση των παραπάνω, σημειώνουμε τυπικά ότι: στο σειριακό χρονοπρόγραμμα, κάθε δοσοληψία «ξεμπερδεύει» ξεχωριστά (σε απομόνωση) με κάθε αντικείμενο και μετά το «αναλαμβάνει» μια άλλη. σε ένα σειριοποιήσιμο, το να ΜΗΝ υπάρχει σύγκρουση σημαίνει ότι το χρονοπρόγραμμα «ξεμπερδεύει» με τα αντικείμενα με την ίδια σειρά ανά δοσοληψία, με την οποία θα το έκανε και το σειριακό. Σειριοποιησιμότητα όψεων Έστω ότι S και S είναι δυο χρονοπρογράμματα με το ίδιο set δοσοληψιών. Τα S και S λέγονται ισοδύναμα όψης αν συμπίπτουν οι παρακάτω τρεις συνθήκες: Για κάθε δεδομένο αντικειμένου Q, αν η δοσοληψία Τ 1 διαβάζει την αρχική τιμή του Q στο χρονοπρόγραμμα S, τότε η δοσοληψία Ti πρέπει επίσης να διαβάζει την αρχική τιμή του Q στο χρονοπρόγραμμα S. Για κάθε δεδομένο αντικειμένου Q, αν η δοσοληψία Τ 1 εκτελέσει την read(q) στο χρονοπρόγραμμα S και αυτή η τιμή παράχθηκε από τη δοσοληψία Τ 1, τότε πρέπει στο χρονοπρόγραμμα S η δοσοληψία Τ 1 επίσης να διαβάζει την τιμή του Q που επίσης παράχθηκε από τη δοσοληψία Τ 1. Για κάθε δεδομένο αντικειμένου Q, η δοσοληψία που εκτελεί την τελική λειτουργία write(q) στο χρονοπρόγραμμα S πρέπει να εκτελεί και την τελική write(q) λειτουργία στο χρονοπρόγραμμα S. Ένα χρονοπρόγραμμα S είναι σειριοποιήσιμο όψης όταν είναι ισοδύναμο όψης με ένα σειριακό χρονοπρόγραμμα. Κάθε χρονοπρόγραμμα που είναι σειριοποιήσιμο σε σχέση με συγκρούσεις, είναι σειριοποιήσιμο όψεως. Το αντίστροφο όμως δεν ισχύει. Το παρακάτω χρονοπρόγραμμα είναι σειριοποιήσιμο όψης αλλά όχι σειριοποιήσιμο σύγκρουσης (ισοδύναμο όψης σε σειριακό χρονοπρόγραμμα T3, T4, T6)

4 Κάθε χρονοπρόγραμμα που είναι σειριοποιήσιμο όψεως, και ΔΕΝ είναι σειριοποιήσιμο σε σχέση με συγκρούσεις, περιέχει τυφλές εγγραφές (writes που δεν έχει προηγηθεί read γι αυτές στην δοσοληψία τους). Παραδείγματα με MySQL Αρχικά δημιουργήστε ένα πίνακα στη μηχανή αποθήκευσης InnoDB με όνομα Τ1 και γνωρίσματα L1, K1 που δείχνουν το pin λογαριασμού και το υπόλοιπο του κάθε λογαριασμού αντιστοίχως. Απάντηση: CREATE TABLE T1 ( L1 INT NOT NULL, K1 INT, PRIMARY KEY (L1) )ENGINE=InnoDB; και ας εισάγουμε σ αυτόν τις παρακάτω εγγραφές : INSERT INTO T1 VALUES(6, 6); INSERT INTO T1 VALUES(7, 9); INSERT INTO T1 VALUES(8, 10); INSERT INTO T1 VALUES(9, 11); Δίνοντας τώρα την εντολή: SELECT * FROM T1; βλέπουμε για το table T1 τον παρακάτω πίνακα που δείχνει πως έχουν μέχρι τώρα οι εγγραφές στο T1: L1 Κ Το πρότυπο ISO καθορίζει ότι μια δοσοληψία της SQL ξεκινάει αυτόματα με μια δήλωση εκκίνησης-δοσοληψίας η οποία εκτελείται αυτόματα από ένα χρήστη ή ένα πρόγραμμα (πχ. από τις δηλώσεις SELECT, INSERT, UPDATE). Επίσης οι αλλαγές που γίνονται από μια δοσοληψία δεν είναι ορατές από άλλες δοσοληψίες που εκτελούνται ταυτόχρονα μέχρι την ολοκλήρωσή της. Ας πειραματιστούμε τώρα με μια μόνο transaction: Παράδειγμα

5 Ο κάτοχος του λογαριασμού με pin 9 έκανε κατάθεση και πλέον το υπόλοιπο του λογαριασμό του αντιστοιχεί σε 1 ευρώ. Υλοποιήστε την ενημέρωση Απάντηση: START TRANSACTION; UPDATE Τ1 SET K1=1 WHERE K1=11; Με την παραπάνω πράξη ενημέρωσης της Τ1 αντικαθιστούμε την τιμή 11 της k1 με την τιμή 1. Αυτό φαίνεται από τον παρακάτω πίνακα που προκύπτει αν δώσουμε πάλι μια select μέσα στην transaction. SELECT * FROM T1; L1 Κ Όμως μια δοσοληψία μπορεί να ολοκληρωθεί με έναν από τους ακόλουθους τρόπους : Με μια δήλωση COMMIT που ολοκληρώνει επιτυχώς τη δοσοληψία, μονιμοποιώντας τις αλλαγές στη βάση δεδομένων. Μια νέα δοσοληψία ξεκινάει μετά τη δήλωση COMMIT με την επόμενη δήλωση εκκίνησης δοσοληψίας Με μια δήλωση ROLLBACK η οποία ακυρώνει τη δοσοληψία, διαγράφοντας κάθε αλλαγή που έχει γίνει από τη δοσοληψία. Μια νέα δοσοληψία ξεκινάει μετά τη δήλωση ROLLBACK με την επόμενη δήλωση εκκίνησης δοσοληψίας Για την προγραμματιζόμενη SQL, η επιτυχής ολοκλήρωση ενός προγράμματος ολοκληρώνει την τελική δοσοληψία με επιτυχία, ακόμη και αν η δήλωση COMMIT δεν έχει εκτελεστεί. Για την προγραμματιζόμενη SQL, η μη ομαλή ολοκλήρωση του προγράμματος ακυρώνει τη δοσοληψία. Αν δηλαδή στη συνέχεια δώσουμε την εντολή ROLLBACK η εκτέλεση της δοσοληψίας θα ακυρωθεί και οι αλλαγές που έχουν γίνει απ αυτήν δεν θα αποθηκευτούν στη βάση. Ενώ αν δώσουμε COMMIT θα δούμε ότι οι αλλαγές από τη δοσοληψία θα μονιμοποιηθούν στη βάση δεδομένων και η Τ1 θα κλείσει επιτυχώς. Παράδειγμα Ο κάτοχος του λογαριασμού με pin κάρτας 7 βρίσκεται σε ένα τραπεζικό κατάστημα και προσπαθεί να κάνει κατάθεση μεταβάλλοντας το υπόλοιπο σε 105ευρώ ενώ την ίδια

6 στιγμή ο γιος του προσπαθεί να κάνει ανάληψη από ένα ΑΤΜ και να μεταβάλλει τον ίδιο λογαριασμό από 9 σε 4 ευρώ. Υλοποιήστε την παραπάνω συναλλαγή Απάντηση: Ξεκινάμε την πρώτη δοσοληψία START TRANSACTION; UPDATE Τ1 SET K1=105 WHERE K1=9; Και συνεχίζουμε με την δεύτερη START TRANSACTION; (Αν εκτελέσουμε ως εδώ ένα Select * from T1; βλέπουμε ότι οι αλλαγές που έκανε η πρώτη transaction δεν είναι ορατές στη δεύτερη). UPDATE T1 SET K1=108 WHERE K1=9; Ας δούμε τώρα πάλι με ένα Select * from T1; αν η δεύτερη δοσοληψία πραγματοποιήθηκε. Το αποτέλεσμα που πήραμε φαίνεται στον παρακάτω στον πίνακα όπου διαπιστώνουμε ότι η δεύτερη δοσοληψία δεν έχει πραγματοποιηθεί! L1 Κ Αυτό οφείλεται σε μια τεχνική ελέγχου του ταυτοχρονισμού που ονομάζεται κλείδωμα. Η βασική ιδέα είναι απλή : όταν μια συναλλαγή χρειάζεται διαβεβαίωση ότι κάποιο αντικείμενο για το οποίο ενδιαφέρεται δε θα μεταβληθεί με κάποιον απρόβλεπτο τρόπο ενώ η συναλλαγή έχει γυρισμένη την πλάτη της, τότε η συναλλαγή αποκτά ένα κλείδωμα σε αυτό το αντικείμενο. Το αποτέλεσμα του κλειδώματος είναι να αποκλειστούν οι άλλες συναλλαγές από το αντικείμενο, και έτσι να μην μπορούν να το μεταβάλουν. Η πρώτη συναλλαγή έχει έτσι τη δυνατότητα να πραγματοποιήσει την επεξεργασία της, γνωρίζοντας με βεβαιότητα ότι το δεδομένο αντικείμενο θα παραμείνει σε σταθερή κατάσταση για όσο χρόνο επιθυμεί η συναλλαγή.

7 Για να εκτελεστεί η δεύτερη transaction πρέπει να κλείσει πρώτα η α συναλλαγή με μια δήλωση COMMIT ή ROLLBACK. Τότε θα δούμε ότι η δεύτερη ξεμπλοκάρει και αρχίζει να εκτελείται και η ίδια. Η βάση δεδομένων την κάνει αυτόματα ROLLBACK(όπως αναφέρθηκε παραπάνω). Γνωρίζοντας όμως τα παραπάνω προσπαθήστε να υλοποιήσετε και την παρακάτω δοσοληψία: Παράδειγμα Δυο άτομα την ίδια χρονική στιγμή προσπαθούν να κάνουν μια κατάθεση στο λογαριασμό με αριθμό pin 6 ο ένας μετατρέποντάς τον σε 10.7 ευρώ και ο άλλος στον λογαριασμό 7 μετατρέποντάς τον σε 11.5 ευρώ. Απάντηση: Εισάγουμε την πρώτη δοσοληψία START TRANSACTION; UPDATE Τ1 SET Κ1=107 WHERE Κ1=6; Εκτελούμε μια COMMIT; για να κλείσει η TR1 και να μονιμοποιηθούν οι αλλαγές στη βάση δεδομένων. Κάνουμε εδώ μια SELECT * FROM T1; για να δούμε την κατάσταση που βρίσκεται το table Τ1 L1 Κ Ξεκινάμε τώρα την TR2 START TRANSACTION; 9 1 UPDATE Τ1 SET Κ1=115

8 WHERE Κ1=105; Κάνοντας εδώ μια SELECT βλέπουμε όπως φαίνεται από τον πίνακα ότι πλέον η ενημέρωση στη βάση από την ΤR2 έχει γίνει: L1 0 Κ Για να κλείσουμε τη δοσοληψία 1 εισάγουμε μια δήλωση COMMIT ή ROLLBACK ανάλογα με το αν 9 θέλουμε να διατηρήσουμε τις αλλαγές από την τρέχουσα δοσοληψία ή όχι. Ας προσέξουμε ότι οι παραπάνω δοσοληψίες υλοποιούνται στο K1 που είναι γνώρισμα μη πρωτεύοντος κλειδιού. Προσπαθήστε τώρα να πραγματοποιήσετε ενημέρωση σε transaction σε γνώρισμα πρωτεύοντος κλειδιού. Παράδειγμα Οι κάτοχοι των καρτών με pin 6 και 7 έχασαν την κάρτα τους και μόλις το αντιλήφθησαν έτρεξαν να αλλάξουν κωδικό. Ο ένας το μετατρέπει σε 1 ενώ εκείνος που είχε το 7 το μετατρέπει σε 2. Απάντηση : START TRANSACTION; UPDATE Τ1 SET L1=1 WHERE L1=6; Εκτελώντας τη δήλωση SELECT * FROM T1; βεβαιωνόμαστε ότι οι αλλαγές έχουν γίνει 1 7 L1 Κ

9 Προχωράμε στην εκτέλεση της δεύτερης δοσοληψίας START TRANSACTION; UPDATE Τ1 SET L1=2 WHERE L1=7; Ας εκτελέσουμε μια SELECT * FROM T1; Το αποτέλεσμα που προκύπτει είναι ο παρακάτω πίνακας 6.7 όπου και διαπιστώνουμε ότι οι αλλαγές από την TR2 έχουν γίνει L1 0 Κ Οι δυο δοσοληψίες 1 εκτελούνται ταυτόχρονα όταν τα γνωρίσματα που ενημερώνουμε 9 αποτελούν πρωτεύοντα κλειδιά. Εδώ αποκτούν κλείδωμα μόνο οι συγκεκριμένες εγγραφές ενώ στην περίπτωση που δεν δρούμε σε πρωτεύον κλειδί αποκτά κλείδωμα όλος ο πίνακας. Πρόβλημα αδιεξόδου (deadlock) Παράδειγμα

10 Δημιουργήστε έναν πίνακα ο οποίος θα περιέχει δυο γνωρίσματα, το ένα από τα δυο θα αντιπροσωπεύει τον κωδικό πτήσης μιας συγκεκριμένης αεροπορικής εταιρίας και το άλλο την ώρα αναχώρησης της συγκεκριμένης πτήσης. Απάντηση : CREATE TABLE F1 ( Id INT, hour TIME, PRIMARY KEY (Id)); Aς εισάγουμε σ αυτόν μερικές τιμές INSERT INTO T1 VALUES(533, 645); INSERT INTO T1 VALUES(740, 25); INSERT INTO T1 VALUES(927, 615); INSERT INTO T1 VALUES(348, 17); Παράδειγμα Λόγω άσχημων καιρικών συνθηκών έχουμε ακύρωση των πτήσεων με id=740, id=348. Οι παραπάνω πτήσεις αντικαθίστανται η μια από την 632 με ώρα αναχώρησης 21:45 και η άλλη από την πτήση 283 και ώρα αναχώρησης 19: αντιστοίχως. Προσπαθήστε να υλοποιήσετε τις παραπάνω συναλλαγές. Απάντηση: Ξεκινάμε με τη δημιουργία της πρώτης συναλλαγής START TRANSACTION; UPDATE F1 SET Id=632 WHERE Id=740; UPDATE F1 SET hour=2145 WHERE hour=25; Εκτελούμε και την δεύτερη START TRANSACTION; UPDATE F1 SET hour=19 WHERE hour=17;

11 UPDATE F1 SET Id=283 WHERE Id=348; Σ αυτή την περίπτωση πέφτουμε σε ένα αδιέξοδο γιατί κάθε μια από τις δοσοληψίες περιμένει την άλλη να απελευθερώσει ένα κλείδωμα για να μπορέσει να προχωρήσει. Το αδιέξοδο (deadlock) είναι μια κατάσταση όπου δυο ή περισσότερες συναλλαγές είναι ταυτόχρονα σε κατάσταση αναμονής, και η κάθε μια περιμένει μια από τις άλλες να απελευθερώσει ένα κλείδωμα, πριν μπορέσει να προχωρήσει. Αν συμβεί ένα αδιέξοδο είναι επιθυμητό το σύστημα να το εντοπίσει και να το σπάσει. Ο εντοπισμός του αδιεξόδου σημαίνει τον εντοπισμό ενός κύκλου στο γράφημα αναμονών, δηλαδή στο γράφημα που δείχνει ποιος περιμένει ποιον. Σπάσιμο του αδιεξόδου σημαίνει να διαλέξουμε για θύμα μια από τις συναλλαγές που βρίσκονται σε αδιέξοδο και να την ανακατασκευάσουμε απελευθερώνοντας έτσι τα κλειδώματά της και επιτρέποντας να προχωρήσει σε κάποια άλλη συναλλαγή. Έτσι εδώ η ΜySQL εντοπίζει τα deadlock και από μόνη της κάνει rollback τις δυο δοσοληψίες. Επίπεδο απομόνωσης Ο όρος επίπεδο απομόνωσης χρησιμοποιείται για να υποδηλώσει αυτό που λέμε βαθμό παρεμβολής τον οποίο μπορεί να ανεχθεί μια δεδομένη συναλλαγή όσον αφορά τις ταυτόχρονες συναλλαγές. Στην πραγματικότητα, δεν υπάρχει κανένας λόγος να μη λειτουργεί μια συναλλαγή σε διαφορετικά επίπεδα απομόνωσης την ίδια στιγμή, σε διαφορετικά μέρη της βάσης δεδομένων. Μια ειδική εντολή που ονομάζεται SET TRANSACTION χρησιμοποιείται για να ορίσει κάποια χαρακτηριστικά της νέας συναλλαγής που θα ξεκινήσει. Χαρακτηριστικά αυτής της εντολής είναι ο τρόπος προσπέλασης και το επίπεδο απομόνωσης. Η σύνταξη της εντολής είναι: SET [GLOBAL SESSION] TRANSACTION [READ ONLY READ WRITE] ISOLATION LEVEL { READ UNCOMMITTED READ COMMITTED REPEATABLE READ SERIALIZABLE } Οι προτάσεις READ ONLY και READ WRITE υποδεικνύουν αν μια συναλλαγή είναι μόνο για ανάγνωση ή αν περιλαμβάνει και τις δυο πράξεις. Η προκαθορισμένη επιλογή είναι η READ WRITE αν δεν καθορίζεται καμία. Η δήλωση READ ONLY επιτρέπει σε μια

12 δοσοληψία να εκτελέσει τις δηλώσεις INSERT, UPDATE και DELETE σε προσωρινούς και μόνο πίνακες. Το επίπεδο απομόνωσης υποδεικνύει το βαθμό αλληλεπίδρασης που επιτρέπεται από άλλες δοσοληψίες κατά την εκτέλεση της συγκεκριμένης δοσοληψίας. Τα πιθανά επίπεδα απομόνωσης είναι τα: 1. READ UNCOMMITTED (ανάγνωση ανεπικύρωτων): επιτρέπει σε μια δοσοληψία να βλέπει ενδιάμεσα αποτελέσματα άλλων δοσοληψιών, πριν αυτές ολοκληρωθούν. Εδώ εισάγεται το πρόβλημα της αναξιόπιστης ανάγνωσης δηλ μια δοσοληψία μπορεί να διαβάσει μια γραμμή δοσοληψίας που μόλις έχει ενημερωθεί ενώ μετά αυτή κάνει ROLLBACK 2. READ COMMITTED (ανάγνωση επικυρωμένων): επιτρέπει σε μια δοσοληψία να βλέπει ενδιάμεσα αποτελέσματα άλλων δοσοληψιών όταν αυτά γίνουν COMMITED.Πρόβλημα μη επαναλήψιμης ανάγνωσης. Δηλαδή εδώ μια δοσοληψία διαβάζει αρχικά μια τιμή, μετά αυτή ενημερώνεται από μια commited transaction και όταν μετά πάει να ξαναδιαβάσει την τιμή έχει αλλάξει. 3. REPEATABLE READ (επαναλήψιμη ανάγνωση) ή SERIALIZABLE (σειριοποιήσιμο) :επιτρέπουν σε μια δοσοληψία να κάνει σταθερές αναγνώσεις. Όταν διαβάσει κάτι εξακολουθεί να το βλέπει ακόμα και αν μια άλλη δοσοληψία το έχει αλλάξει.(phantoms) 4. H δήλωση GLOBAL σημαίνει ότι αλλάζεις το επίπεδο απομόνωσης καθολικά, για όλες τις επόμενες συνδέσεις ενώ με τη SESSION μόνο για τις επόμενες συνδέσεις. Παράδειγμα Τώρα σύμφωνα με τον παραπάνω πίνακα Τ1 που αφορά τραπεζικούς λογαριασμούς υλοποιήστε μια δοσοληψία που να προσθέτει 2ευρώ στον λογαριασμό με pin=8 και στη συνέχεια μια δεύτερη η οποία διαβάζει το συνολικό ποσό του λογαριασμού 8 και προσθέτει το 10% αυτού στο λογαριασμό με pin=9 Απάντηση: Ξεκινάμε την πρώτη δοσοληψία START TRANSACTION; Ομως εδώ η δεύτερη δοσοληψία θέλουμε να κάνει σταθερές αναγνώσεις γιατί από αυτήν διαβάζει το συνολικό ποσό και το μεταφέρει στον άλλο λογαριασμό. Άρα εδώ πρέπει να ορίσουμε σ αυτήν μια set transaction με προεπιλογή SERIALIZABLE: SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; Εκτελούμε την πράξη ενημέρωσης UPDATE T1

13 SET K1=K1+2 WHERE K1=10; Με SELECT * FROM T1; Βλέπουμε από τον παρακάτω πίνακα ότι η ενημέρωση πραγματοποιήθηκε. L1 Κ Και προχωράμε στη δεύτερη: START TRANSACTION; UPDATE T1 SET K1=0.1 * K1 + 1 WHERE K1=1;(πρόσθεση 10% από Α) UPDATE T1 SET K1=K1-0.1*K1 WHERE K1=12; (αφαιρούμε τo 0.1*Κ1 ) To αποτέλεσμα φαίνεται από τον πίνακα που ακολουθεί L1 Κ Διαπιστώνουμε ότι η ενημέρωση 108 έγινε παίρνοντας το σωστό ποσό από την TR Κλείδωμα πίνακα 9 80 Τα locks χρησιμοποιούνται είτε για να γίνει ένα είδος συναγωνισμού με τα transactions είτε για να επιταχύνουμε όταν γίνεται ενημέρωση της βάσης. Η εντολή με την οποία κλειδώνεις και ξεκλειδώνεις ένα πίνακα είναι η εξής LOCK TABLES tbl_name [AS alias] {READ [LOCAL] [LOW_PRIORITY] WRITE} [, tbl_name [AS alias] {READ [LOCAL] [LOW_PRIORITY] WRITE}]

14 UNLOCK TABLES Μπορούμε να έχουμε είτε read είτε write locks. Όταν κλειδώνουμε έναν πίνακα, πρέπει να καθορίσουμε αν θέλουμε ένα "read lock" ή ένα "write lock". Το πρώτο εμποδίζει άλλες διεργασίες από το να κάνουν αλλαγές στον πίνακα αλλά επιτρέπει σ άλλες να διαβάσουν τον πίνακα. Ενώ όταν μια ακολουθία επιτρέψει ένα write lock στον πίνακα μόνο εκείνη μπορεί να διαβάσει απ αυτόν τον πίνακα και να γράψει σ αυτόν. Όλες οι άλλες διεργασίες μπλοκάρονται. Παράδειγμα Έστω ότι έχουμε δυο clients από τους οποίους ο πρώτος παίρνει ένα read lock στον πίνακα p1 που δείχνει τη βαθμολογία σε κάθε μάθημα. Έπειτα ο δεύτερος προσπαθεί να εισάγει μια εγγραφή στο ίδιο table. Υλοποιήστε το. Τί συμβαίνει; Απάντηση: Ξεκινάω με τη δημιουργία πίνακα σε MyISAM : CREATE TABLE P1 ( ID INT, DEG INT, PRIMARY KEY (ID) )ENGINE=MyISAM; Βάζω τιμές στον πίνακα INSERT INTO P1 VALUES(160, 08); INSERT INTO P1 VALUES(170, 04); INSERT INTO P1 VALUES(190, 02); INSERT INTO P1 VALUES(110, 06); 1os client Κάνω το read lock Lock table p1 read; 2os client INSERT INTO P1 VALUES(185, 10); Παραπάνω ο 2os client προσπαθεί να ενημερώσει τον πίνακα ρ1 που έχει πάρει read lock όμως παρατηρούμε ότι δεν γίνεται. Για να συμβεί κάτι τέτοιο πρέπει πρώτα ο 1os client να κάνει unlock το table. Επίσης, εδώ παρατηρούμε ότι ο δεύτερος client μπορεί να κάνει ένα

15 SELECT * FROM p1; Δηλαδή, όταν ένας πίνακας πάρει ένα read lock σε μια ακολουθία μπορεί η ίδια και οποιαδήποτε άλλη ακολουθία να διαβάσει αυτόν τον πίνακα αλλά δεν μπορεί να κάνει αλλαγές σ αυτόν. Παράδειγμα Έστω ότι έχουμε δυο clients από τους οποίους ο πρώτος παίρνει ένα write lock στον πίνακα p1 που δείχνει τη βαθμολογία σε κάθε μάθημα. Έπειτα ο δεύτερος προσπαθεί να ενημερώσει το ίδιο table. Υλοποιήστε το. Τι συμβαίνει; Απάντηση: 1os client Κάνω το write lock Lock table p1 write; 2os client UPDATE P1 SET DEG=05 WHERE DEG=04; Ο δεύτερος client προσπαθεί να ενημερώσει τον ρ1 αλλά επειδή είναι κλειδωμένος με write lock δεν γίνεται! Επίσης, αν προσπαθήσει ο δεύτερος να διαβάσει από αυτό το table πάλι δεν μπορεί. Αν όμως ο πρώτος client κάνει ένα SELECT * FROM p1; ή ένα UPDATE p1 SET deg=05 WHERE deg=04; Παρατηρούμε ότι γίνεται! Άρα όταν μια ακολουθία επιτρέψει ένα write lock σε έναν πίνακα μόνο αυτή μπορεί να ενημερώσει ή να διαβάσει αυτόν τον πίνακα. Οποιαδήποτε άλλη ακολουθία μπλοκάρεται. Πρέπει να κάνει πρώτα unlock τον πίνακα. Έτσι αν μια διεργασία επιτρέψει σε έναν πίνακα να πάρει ένα read lock τότε μπορεί και οποιαδήποτε άλλη να πάρει lock σ αυτόν τον πίνακα αλλά μόνο read. Ενώ αν ένας πίνακας πάρει write lock σε μια διεργασία τότε καμία άλλη διεργασία δεν μπορεί να πάρει οποιοδήποτε lock σε αυτόν τον πίνακα. Επίσης μπορούμε να έχουμε read locαl και write locαl παραμέτρους. Η read local επιτρέπει στις μη συγκρουόμενες INSERT δηλώσεις να εκτελούνται ενώ κρατείται το lock.

16 Τα LOW_PRIORITY WRITE locks χρησιμοποιούνται για να επιτρέψουν σε άλλες διεργασίες να αποκτήσουν read locks ενώ οι διεργασίες περιμένουν για το write lock. Τα LOW_PRIORITY WRITE locks πρέπει να χρησιμοποιούνται μόνο όταν υπάρχει σιγουριά Κλείδωμα εγγραφών έναντι κλειδώματος πινάκων Πλεονεκτήματα του row - locking επιπέδου (κλείδωμα σε εγγραφές): Λιγότερες lock συγκρούσεις καθώς προσπελαύνονται διαφορετικές γραμμές σε πολλές ακολουθίες Λιγότερες αλλαγές για rollbacks. Είναι δυνατό να κλειδώσει μια μόνο γραμμή για πολύ ώρα. Παρ όλα αυτά όμως το row - locking έχει και τα εξής μειονεκτήματα: Καταλαμβάνει περισσότερη μνήμη από τα table-locks επίπεδα Είναι πιο αργό από το επίπεδο table-lock όταν χρησιμοποιείται σε ένα μεγάλο μέρος του table γιατί πρέπει να αποκτήσεις πολύ περισσότερα locks Είναι πολύ χειρότερο από άλλα locks αν κάνεις συχνά GROUP BY λειτουργίες σε ένα μεγάλο μέρος δεδομένων ή αν πρέπει συχνά να εξετάζεις ολόκληρο το table. Με τα υψηλότερου επιπέδου locks μπορείς επίσης πιο εύκολα να υποστηρίξεις locks διαφορετικών τύπων για να συντονίσεις την εφαρμογή επειδή τα υψηλότερα locks είναι λιγότερα από τα row-level. Όμως, για να επιτύχει μια πολύ υψηλή lock ταχύτητα, η MYSQL χρησιμοποιεί το tablelocking, αντί για row-locking, για όλες τις μηχανές αποθήκευσης εκτός από την InnoDB και BDB. Έτσι, τα table-locks είναι ανώτερα από τα row-locks στις ακόλουθες περιπτώσεις : Όταν οι περισσότερες δηλώσεις για τα tables είναι read Αναγνώσεις και ενημερώσεις σε strict κλειδιά,που ενημερώνεις ή διαγράφεις μια γραμμή που μπορεί να προκαλεσθεί με μια ανάγνωση μοναδικού κλειδιού UPDATE tbl_name SET column=value WHERE unique_key_col=key_value; DELETE FROM tbl_name WHERE unique_key_col=key_value; Παράλληλες INSERΤ συνδυασμένες με SELECT δηλώσεις, και πολύ λίγες UPDATE και DELETE δηλώσεις Μερικές SCAN και ORDER BY λειτουργίες σε ολόκληρο το table χωρίς εγγραφές.

17 Για μεγάλα tables, το table locking είναι πολύ καλύτερο από το row για τις περισσότερες εφαρμογές Δεν παύει όμως και το table locking να μειονεκτεί στις παρακάτω περιπτώσεις: Όταν ένας client εισάγει μια δήλωση SELECT που παίρνει πολύ χρόνο να τρέξει. Ένας δεύτερος client τότε εισάγει μια δήλωση UPDATE στο ίδιο table. Αυτός ο client θα περιμένει μέχρι η δήλωση SELECT να τελειώσει. Ένας άλλος client εισάγει μια άλλη δήλωση SELECT στο ίδιο table. Επειδή η UPDATE έχει μεγαλύτερη προτεραιότητα από τη SELECT, αυτή η SELECT θα περιμένει μέχρι η UPDATE να τελειώσει. Θα περιμένει επίσης μέχρι να ολοκληρωθεί και η πρώτη SELECT.

18 13.2 Παράδειγμα Εργαστηριακής Άσκησης Εκφώνηση: Ζητούμενα: Στην Βάση Δεδομένων του ΑΕΙ/ΑΤΕΙ της εργαστηριακής άσκησης 4 θα πρέπει να εκτελέσετε τις ακόλουθες ενέργειες: 1. Χρησιμοποιείστε δοσοληψία για την ενημέρωση του βαθμού του φοιτητή «Kouris» στο μάθημα «Baseis Dedomenwn». Αρχικά ακυρώστε την δοσοληψία χρησιμοποιώντας την εντολή rollback και στην συνέχει υποβάλετε τον σωστό βαθμό ολοκληρώνοντας την συνεδρία με την εντολή commit. 2. Σε ένα υποθετικό σενάριο όπου δύο χρήστες τις γραμματείας θα πρέπει ταυτόχρονα να περάσουν βαθμούς μαθημάτων στην βάση δεδομένων και να υπολογίσουν και τον Μέσο Όρο κάποιων φοιτητών, χρησιμοποιήστε τα κατάλληλα επίπεδα απομόνωσης συνεδριών για την ορθή λειτουργία και την λήψη σωστών αποτελεσμάτων. Χρήση των δοσοληψιών και κατανόηση των επιπέδων απομόνωσης (isolation levels). Ζητούμενο 1: Χρησιμοποιείστε δοσοληψία για την ενημέρωση του βαθμού του φοιτητή «Kouris» στο μάθημα «Baseis Dedomenwn». Αρχικά ακυρώστε την δοσοληψία χρησιμοποιώντας την εντολή rollback και στην συνέχει υποβάλετε τον σωστό βαθμό ολοκληρώνοντας την συνεδρία με την εντολή commit. Αρχικά ξεκινάει η ενεργοποίηση της δοσοληψίας και ακύρωση της στην περίπτωση καταχώρησης λάθους βαθμού όπως φαίνεται στο ακόλουθο παράδειγμα: Επιλέγουμε την Βάση δεδομένων: Use university; Αρχικά βρίσκουμε τον κωδικό του μαθήματος για το οποίο πρέπει να ενημερωθεί ο βαθμός. Ο κωδικός του επίμαχου μαθήματος είναι 3. Select * from course where Title like 'Baseis Dedomenwn';

19 Στη συνέχεια βρίσκουμε το ΑΜ του μαθητή Kouris. To ΑΜ του φοιτητή είναι 1. SELECT * FROM university.student where Lastname like Kouris; Στην συνέχεια εξετάζουμε αν ο φοιτητής έχει ξαναδώσει κάποια εξέταση για το μάθημα. SELECT * FROM exam WHERE AM=5 AND Cid=3; Ξεκινάμε την δοσοληψία που θα κάνει την ενημέρωση γράφουμε την εντολή εισαγωγής νέας εγγραφής και στη συνέχει με χρήση της select βλέπουμε αν η εισαγωγή υπάρχει στο σχήμα exam. START TRANSACTION; INSERT INTO exam VALUES(5,3, ' ', 5); SELECT * FROM exam WHERE AM=5 AND Cid=3;

20 Διαπιστώνουμε ότι ο βαθμός πέντε (5) είναι λάθος οπότε επιλέγουμε να τερματίσουμε την δοσοληψία χωρίς να εκτελεστούν οι αλλαγές στην βάση δεδομένων εκτελώντας την εντολή rollback. ROLLBACK; SELECT * FROM exam WHERE AM=5 AND Cid=3; Παρατηρούμε ότι η διαδικασία ολοκληρώθηκε χωρίς να περάσει η εγγραφή στην βάση δεδομένων. Συνεχίζουμε σε μία νέα συνεδρία όπου χρησιμοποιείται ο σωστός βαθμός 8 στην εξέταση του φοιτητή. START TRANSACTION; INSERT INTO exam VALUES (5, 3, ' ', 8);

21 SELECT * FROM exam WHERE AM=5 AND Cid=3; Στην συνέχεια ολοκληρώνουμε την συνεδρία με την εντολή commit και οι ενέργειες εκτελούνται τελικά στην βάση δεδομένων. COMMIT; SELECT * FROM exam WHERE AM=5 AND Cid=3; Ζητούμενο 2: Σε ένα υποθετικό σενάριο όπου δύο χρήστες τις γραμματείας θα πρέπει ταυτόχρονα να περάσουν βαθμούς μαθημάτων στην βάση δεδομένων και να υπολογίσουν και τον Μέσο Όρο κάποιων φοιτητών, χρησιμοποιήστε τα κατάλληλα επίπεδα απομόνωσης συνεδριών για την ορθή λειτουργία και την λήψη σωστών αποτελεσμάτων. Για να δούμε το επίπεδο απομόνωσης δίνουμε την εντολή

22 SELECT Για να ορίσουμε το επίπεδο απομόνωσης μίας δοσοληψίας χρησιμοποιούμε την εντολή: SET [GLOBAL SESSION] TRANSACTION ISOLATION LEVEL { REPEATABLE READ READ COMMITTED READ UNCOMMITTED SERIALIZABLE } Όπως για παράδειγμα: SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ; Έστω ότι υπάρχουν δύο χρήστες που θέλουν να εκτελέσουν τις ακόλουθες ενέργειες ταυτόχρονα: Χρήστης Α: Ενημερώνει τον βαθμό του φοιτητή Kouris στο μάθημα Baseis Dedomenwn χρησιμοποιώντας την εντολή: INSERT INTO exam VALUES(5,3, ' ', 8); Χρήστης Β: Να υπολογίσει τον μέσο όρο του φοιτητή Kouris χρησιμοποιώντας το ακόλουθο ερώτημα: WHERE AM=5 ΣΕΝΑΡΙΟ 1---ISOLATION LEVEL READ UNCOMMITTED Επιτρέπει στον Χρήστη Β να δει αλλαγές από άλλους χρήστες που δεν έχουν γίνει commit. Ενέργειες Χρήστη Β Ενέργειες Χρήστη Α

23 SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; SELECT SET autocommit=0; SELECT use university; start transaction; INSERT INTO exam VALUES(5,3, ' ', 8); WHERE AM=5 Παρατηρούμε ότι βλέπει την εισαγωγή της εγγραφής του Χρήστη Α πριν αυτός δώσει commit. Προσοχή καθώς δίνει ο Χρήστης Α rollback υπάρχει ο κίνδυνος ο Χρήστης Β να συνεχίσει να χρησιμοποιεί τον λανθασμένο Μέσο όρο. Έστω ότι ο χρήστης δίνει την εντολή rollback για να αναιρέσει την επιλογή του. rollback; Μόνο αν εκτελέσει ξανά το ερώτημα θα είναι σε θέση να διαπιστώσει ότι ο Χρήστης Α έκανε τελικά rollback στην ενέργεια του.

24 ΣΕΝΑΡΙΟ 2---ISOLATION LEVEL READ COMMITTED Επιτρέπει στον Χρήστη Β να δει μόνο αλλαγές από άλλους χρήστες που έχουν γίνει commit. Ενέργειες Χρήστη Β SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; SELECT SET autocommit=0; SELECT Ενέργειες Χρήστη Α use university; start transaction; INSERT INTO exam VALUES(5,3, ' ', 8); WHERE AM=5 Παρατηρούμε ότι δεν βλέπει την εισαγωγή της εγγραφής του Χρήστη Α πριν αυτός δώσει commit. Έστω ότι ο χρήστης δίνει την εντολή commit για να ενημερώσει την βάση δεδομένων. COMMIT;

25 Μόνο αν εκτελέσει ξανά το ερώτημα θα είναι σε θέση να διαπιστώσει ότι ο Χρήστης Α έκανε τελικά commit στην ενέργεια του και τα νέα δεδομένα. Φαινόμενο non-repeatable read το session του Χρήστη Β μέσα στο ίδιο transaction διαβάζει δύο διαφορετικές τιμές. ΣΕΝΑΡΙΟ 3---ISOLATION LEVEL REPEATABLE READ Επιτρέπει στον Χρήστη Β να δει μόνο αλλαγές από άλλους χρήστες που έχουν γίνει commit από τον χρήστη Α αλλά και ταυτόχρονα διατηρεί στην δοσοληψία του την ίδια τιμή. Δηλαδή θα δει τις αλλαγές του χρήστη Α μόλις ο ίδιος ο Χρήστης Β δώσει commit για να ολοκληρώσει την δική του δοσοληψία. Ενέργειες Χρήστη Β SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ; SELECT SET autocommit=0; SELECT Ενέργειες Χρήστη Α use university; start transaction; INSERT INTO exam VALUES(5,3, ' ', 8);

26 WHERE AM=5 Παρατηρούμε ότι δεν βλέπει την εισαγωγή της εγγραφής του Χρήστη Α πριν αυτός δώσει commit. Έστω ότι ο χρήστης δίνει την εντολή commit για να ενημερώσει την βάση δεδομένων. COMMIT; Το φαινόμενο non-repeatable read δεν εμφανίζεται. Το session του Χρήστη Β μέσα στο ίδιο transaction εξακολουθεί να διαβάζει την ίδια τιμή. Μόνο αν εκτελέσει commit και ολοκληρώσει την δική του δοσοληψία θα είναι σε θέση να διαπιστώσει ότι ο Χρήστης Α έκανε τελικά commit στην ενέργεια του και τα νέα δεδομένα. COMMIT; ΣΕΝΑΡΙΟ 3---ISOLATION LEVEL SERIALIZABLE Επιτρέπει στον Χρήστη Β να δει μόνο αλλαγές από άλλους χρήστες που έχουν γίνει commit από τον χρήστη Α. Αν κατά την διάρκεια της ενημέρωσης από τον Α ο Β προσπαθήσει να

27 εκτελέσει το ερώτημα του, τότε η δοσολοψία του θα «κλειδώσει» μέχρι να ολοκληρωθεί αυτή του Α. Ενέργειες Χρήστη Β Ενέργειες Χρήστη Α SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE; use university; start transaction; INSERT INTO exam VALUES(5,3, ' ', 8); WHERE AM=5 Παρατηρούμε ότι εδώ η δοσοληψία «κλειδώνει» μέχρι να ολοκληρώσει την δοσοληψία του ο Α. Έστω ότι ο χρήστης δίνει την εντολή commit για να ενημερώσει την βάση δεδομένων. COMMIT;

28 Ολοκληρώνεται η εντολή του Χρήστη Β αφού ο Α ολοκλήρωσε την δική του δοσοληψία Άλυτες Εργαστηριακές Ασκήσεις Άσκηση 1 Επεκτείνεται το ζητούμενο 2 της λυμένης εργαστηριακής άσκησης για τρεις χρήστες αυτή τη φορά/ Έστω ότι υπάρχουν τρεις χρήστες που θέλουν να εκτελέσουν τις ακόλουθες ενέργειες ταυτόχρονα: Χρήστης Α: Ενημερώνει τον βαθμό του φοιτητή Kouris στο μάθημα Baseis Dedomenwn χρησιμοποιώντας την εντολή: INSERT INTO exam VALUES(5,3, ' ', 8); Χρήστης Β: Να υπολογίσει τον μέσο όρο του φοιτητή Kouris χρησιμοποιώντας το ακόλουθο ερώτημα: WHERE AM=5 Χρήστης C: Ενημερώνει τον βαθμό του φοιτητή Kouris στο μάθημα Programmatismos IIχρησιμοποιώντας την εντολή: INSERT INTO exam VALUES(5,6, ' ', 4); Δοκιμάστε και τα 4 επίπεδα απομόνωσης όπως και στην λυμένη άσκηση.

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος cman@unipi.gr Δοσοληψίες Concurrent Data Access (Ταυτόχρονη Πρόσβαση σε Δεδομένα) Συνήθως πολλοί χρήστες έχουν ταυτόχρονη

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Δοσοληψίες Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη Δοσοληψίες Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη με βάση slides από A. Silberschatz, H. Korth, S. Sudarshan, Database System Concepts, 5 th edition Βασικές έννοιες της δοσοληψίας Δοσοληψία είναι μία

Διαβάστε περισσότερα

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

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων: ημήτρης Πλεξουσάκης ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων: ημήτρης Πλεξουσάκης Συναλλαγές ιαχείριση Συναλλαγών Αυγουστάκη Αργυρώ Συναλλαγές Κράτησε για τον κ. Χ την θέση 13Α για LA! Κράτησε για τον κ. Y την θέση 13Α για

Διαβάστε περισσότερα

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

Επεξεργασία οσοληψιών οσοληψίες Επεξεργασία οσοληψιών Ηταυτόχρονη εκτέλεση προγραµµάτων χρηστών είναι απαραίτητη για την καλή απόδοση ενός Σ Β Επειδή οι προσπελάσεις στο δίσκο είναι συχνές και σχετικά αργές, είναι σηµαντικό

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων ΙΙ. Διάλεξη 1 η Επεξεργασία Δοσοληψιών. Σύστημα Επεξεργασίας Δοσοληψιών Βάσεις Δεδομένων ΙΙ Διάλεξη 1 η Επεξεργασία Δοσοληψιών Δ. Χριστοδουλάκης - Α. Φωκά Τμήμα Μηχανικών Η/Υ & Πληροφορικής - Εαρινό Εξάμηνο 2007 Ορισμός Προβλήματος Σύστημα Επεξεργασίας Δοσοληψιών Συστήματα

Διαβάστε περισσότερα

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

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων: ημήτρης Πλεξουσάκης ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων: ημήτρης Πλεξουσάκης Συναλλαγές ιαχείριση Συναλλαγών Αυγουστάκη Αργυρώ Συναλλαγές Κράτησε για τον κ. Χ την θέση 13Α για LA! Κράτησε για τον κ. Y την θέση 13Α για

Διαβάστε περισσότερα

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος cman@unipi.gr Δοσοληψίες (Transactions) Μέχρι στιγμής θεωρούσαμε πως υπάρχει μόνο ένας DB χρήστης που εκτελεί μία

Διαβάστε περισσότερα

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

Προχωρημένα Θέματα Βάσεων Δεδομένων Προχωρημένα Θέματα Βάσεων Δεδομένων 1ο Σετ Ασκήσεων ΕΡΩΤΗΜΑ 1 Ατομικότητα : Η ατομικότητα πρακτικά εξασφαλίζει ότι είτε όλες οι πράξεις μιας δοσοληψίας θα εκτελεστούν ή καμμιά από αυτές δεν θα εκτελεστεί.

Διαβάστε περισσότερα

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

ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΙΙ. Επεξεργασία οσοληψιών. το πώς βλέπει το Σ Β τα προγράµµατα των χρηστών. οσοληψία (transaction) Ύλη Ύλη Έννοιες Επεξεργασίας οσοληψιών Τεχνικές Ελέγχου Συνδροµικότητας ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΙΙ Τεχνικές Ανάκαµψεις από Σφάλµατα Κατανεµηµένες και Παράλληλες Βάσεις εδοµένων Βάσεις εδοµένων και ιαδίκτυο Βάσεις

Διαβάστε περισσότερα

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

ΙΑΧΕΙΡΙΣΗ ΟΣΟΛΗΨΙΩΝ Να θυµηθούµε: ΙΑΧΕΙΡΙΣΗ ΟΣΟΛΗΨΙΩΝ Να θυµηθούµε: Μια βάση δεδοµένων είναι σε συνεπή κατάσταση (consistent state) εάν όλοι οι περιορισµοί ακεραιότητας που έχουν δηλωθεί για αυτήν πληρούνται. Οι αλλαγές στην κατάσταση

Διαβάστε περισσότερα

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

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων:. Πλεξουσάκης ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων:. Πλεξουσάκης Συναλλαγές ιαχείριση Συναλλαγών Τζικούλης Βασίλειος Credits:Γιάννης Μακρυδάκης Συναλλαγές Η ταυτόχρονες συναλλαγές (δοσοληψίες, transactions) µε µια

Διαβάστε περισσότερα

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

ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΙΙ. Σχετικά µε το µάθηµα: Αξιολόγηση. Σχετικά µε το µάθηµα:faq ΟΧΙ ΝΑΙ. Λιγότερος! (ας πούµε το 1/3-1/4) ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΙΙ Κάποιες γενικές πληροφορίες συνοπτικά... Βάσεις εδοµένων II 2004-2005 Ευαγγελία Πιτουρά 1 Βάσεις εδοµένων II 2004-2005 Ευαγγελία Πιτουρά 2 Σχετικά µε το µάθηµα: Ύλη Σχετικά µε το µάθηµα:

Διαβάστε περισσότερα

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

10 η Διάλεξη Python Βάσεις δεδομένων στη python 10 η Διάλεξη Python Βάσεις δεδομένων στη python ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Η standard διεπαφη της python για βάσεις δεδομένων βασίζεται στο DB-API Python Database API υποστηρίζει ένα ευρύ φάσμα βάσεων δεδομένων

Διαβάστε περισσότερα

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

Διαχείριση Δοσοληψιών Διαχείριση Δοσοληψιών Ορισμός της δοσοληψίας Συνδρομικές εκτελέσεις (concurrency) Έλεγχος σειριοποιησιμότητας Ανάκαμψη δοσοληψιών (recovery) Υλοποίηση της Απομόνωσης Βασική πηγή διαφανειών: Silberschatz

Διαβάστε περισσότερα

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

Επεξεργασία οσοληψιών (συνέχεια) Επανάληψη: οσοληψίες Επεξεργασία οσοληψιών (συνέχεια) Πρόβληµα «Σωστή» εκτέλεση προγραµµάτων όταν επιτρέπουµε ταυτοχρονισµό και ακόµα και αν υπάρχουν αποτυχίες 1 2 οσοληψία (transaction) Επανάληψη: οσοληψίες

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Έλεγχος συγχρονικότητας Μέρος 2 Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη Έλεγχος συγχρονικότητας Μέρος 2 Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη με βάση slides από A. Silberschatz, H. Korth, S. Sudarshan, Database System Concepts, 5 th edition Πρωτόκολλα βασισμένα σε γράφο

Διαβάστε περισσότερα

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

Έλεγχος συγχρονικότητας Μέρος 1 Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη Έλεγχος συγχρονικότητας Μέρος 1 Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη με βάση slides από A. Silberschatz, H. Korth, S. Sudarshan, Database System Concepts, 5 th edition Έλεγχος συγχρονικότητας Διάφορες

Διαβάστε περισσότερα

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

Έλεγχος Ταυτοχρονισμού Έλεγχος Ταυτοχρονισμού Κεφάλαιο 17 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke Ελληνική Μετάφραση: Γεώργιος Ευαγγελίδης 1 Συγκρουσιακώς Σειριοποιήσιμα Χρονοπρογράμματα Δυο χρονοπρογράμματα

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI Β. Μεγαλοοικονόμου Επεξεργασία Δοσοληψιών (Transaction Processing) (παρουσίαση βασισμένη εν μέρη σε σημειώσεις των Silberchatz, Korth και Sudarshan και του

Διαβάστε περισσότερα

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

Δοσοληψίες. Κατανεμημένα Συστήματα Δοσοληψίες Κατανεμημένα Συστήματα 2018-2019 http://www.cslab.ece.ntua.gr/courses/distrib Στο προηγούμενο μάθημα Group communication Multicast για FIFO διάταξη Multicast για ολική διάταξη Sequencer ISIS

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων ΙΙ Ενότητα 2 Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Βάσεις Δεδομένων ΙΙ Ενότητα 2: Ελέγχου Συνδρομικότητας Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

Διαβάστε περισσότερα

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

Δοσοληψίες. Κατανεμημένα Συστήματα Δοσοληψίες Κατανεμημένα Συστήματα 2016-2017 http://www.cslab.ece.ntua.gr/courses/distrib Στο προηγούμενο μάθημα Group communication Multicast για FIFO διάταξη Multicast για ολική διάταξη Sequencer ISIS

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. Πληροφοριακά Συστήματα και Βάσεις Δεδομένων. Δρ. Κωνσταντίνος Χ. Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας Πληροφοριακά Συστήματα και Βάσεις Δεδομένων Δρ. Κωνσταντίνος Χ. Γιωτόπουλος ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΑ και ΔΥΝΑΤΟΤΗΤΑ ΑΝΑΚΑΜΨΗΣ Όταν οι δοσοληψίες

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων ΙΙ Ενότητα 1 Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Βάσεις Δεδομένων ΙΙ Ενότητα 1: Επεξεργασία Δοσοληψιών Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

Διαβάστε περισσότερα

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

Επεξεργασία οσοληψιών Επανάληψη: οσοληψίες Επεξεργασία οσοληψιών Ανακεφαλαίωση Πρόβληµα «Σωστή» εκτέλεση προγραµµάτων όταν επιτρέπουµε ταυτοχρονισµό και ακόµα και αν υπάρχουν αποτυχίες Βάσεις εδοµένων II 2003-2004 Ευαγγελία

Διαβάστε περισσότερα

Κεφάλαιο 10 Άλλες Πράξεις Θεωρίας Συνόλων

Κεφάλαιο 10 Άλλες Πράξεις Θεωρίας Συνόλων Κεφάλαιο 10 Άλλες Πράξεις Θεωρίας Συνόλων Σύνοψη Στο παρόν κεφάλαιο θα παρουσιαστεί η πράξη της διαίρεσης. Στο κομμάτι των ασκήσεων θα γίνει συνολική επισκόπηση ερωτημάτων που εμπλέκουν πράξεις συνόλων.

Διαβάστε περισσότερα

Οψεις (VIEWS) στην SQL Η εντολή CREATE VIEW Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2014 1 / 55 Περιεχόμενα 1 Εισαγωγικά για τις όψεις 2 Οψεις και συζεύξεις 3 Επιπλέον χρήση των όψεων

Διαβάστε περισσότερα

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

Επανάκτηση δεδομένων. (εμπλουτισμένο υλικό) Επανάκτηση δεδομένων (εμπλουτισμένο υλικό) http://delab.csd.auth.gr/courses/c_dbimpl/ Ευχαριστίες Μέρος του υλικού είναι βασισμένο στο βιβλίο Database Systems: The Complete Book 2 Επανάκτηση ηδεδομένων

Διαβάστε περισσότερα

DELETE, UPDATE, INSERT.

DELETE, UPDATE, INSERT. Ενημέρωση βάσης δεδομένων με SQL DELETE, UPDATE, INSERT Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2014 1 / 88 Περιεχόμενα 1 Γενικά για την αποθήκευση δεδομένων και την ενημέρωση της

Διαβάστε περισσότερα

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

Επεξεργασία οσοληψιών οσοληψίες Επεξεργασία οσοληψιών Ηταυτόχρονη εκτέλεση προγραµµάτων χρηστών είναι απαραίτητη για την καλή απόδοση ενός Σ Β Επειδή οι προσπελάσεις στο δίσκο είναι συχνές και σχετικά αργές, είναι σηµαντικό

Διαβάστε περισσότερα

DELETE, UPDATE, INSERT

DELETE, UPDATE, INSERT Ενημέρωση βάσης δεδομένων με SQL DELETE, UPDATE, INSERT Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr astavrak@uoi.gr @AStavrakoudis Άνοιξη 2016 1 / 103 Περιεχόμενα 1 Γενικά για την αποθήκευση

Διαβάστε περισσότερα

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

Ηλεκτρονικοί Υπολογιστές II ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ηλεκτρονικοί Υπολογιστές II Όψεις (views) στην SQL Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

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

Ηλεκτρονικοί Υπολογιστές II ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ηλεκτρονικοί Υπολογιστές II Ενημέρωση βάσης δεδομένων με τις εντολές INSERT, DELETE, UPDATE Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης Άδειες

Διαβάστε περισσότερα

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

Διάλεξη 16: SQL DML IV, SQL DCL, SQL TCL. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 16: SQL DML IV, SQL DCL, SQL TCL Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: Ενημέρωση Βάσης Δεδομένων (INSERT, UPDATE, DELETE) SQL DCL (GRANT, DENY, REVOKE)

Διαβάστε περισσότερα

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

Σηµειώσεις Βάσεων εδοµένων. ιαχείριση οσοληψιών. Γιάννης Θεοδωρίδης. Τµήµα Πληροφορικής, Πανεπιστήµιο Πειραιά. http://isl.cs.unipi. Σηµειώσεις Βάσεων εδοµένων ιαχείριση οσοληψιών Γιάννης Θεοδωρίδης Τµήµα Πληροφορικής, Πανεπιστήµιο Πειραιά http://isl.cs.unipi.gr/db/ version: 2006-11-28 Περιεχόµενα Ορισµός της δοσοληψίας Καταστάσεις

Διαβάστε περισσότερα

Εργαστήριο Βάσεων Δεδομένων

Εργαστήριο Βάσεων Δεδομένων Εργαστήριο Βάσεων Δεδομένων Άσκηση 2 Σκοπός της άσκησης είναι: 1. Με δεδομένο το σχεσιακό διάγραμμα, η υλοποίηση μιας βάσης σε MySQL. 2. Η εισαγωγή δεδομένων στη βάση. 3. Η υλοποίηση απλών ερωτημάτων mysql

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων ΙΙ. Διάλεξη 3 η Tεχνικές Aνάκαμψης. Ιδιότητες Δοσοληψιών Βάσεις Δεδομένων ΙΙ Διάλεξη 3 η Tεχνικές Aνάκαμψης Δ. Χριστοδουλάκης - Α. Φωκά Τμήμα Μηχανικών Η/Υ & Πληροφορικής - Εαρινό Εξάμηνο 2007 Επιθυμητές Ιδιότητες μιας Δοσοληψίας Ιδιότητες Δοσοληψιών Αtomicity

Διαβάστε περισσότερα

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

Υ- 07 Παράλληλα Συστήματα Transac9onal memory Υ- 07 Παράλληλα Συστήματα Transac9onal memory Αρης Ευθυμίου Παρ. προγρ/μός με κλειδιά Χαμηλού επιπέδου πολύ κοντά στα μέσα και τις δομές του υλικού πολλές λεπτομέρειες, εύκολα γίνεται λάθος χαμηλή παραγωγικότητα

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Β. Μεγαλοοικονόμου, Δ. Χριστοδουλάκης Σχεσιακό Μοντέλο SQL- Μέρος Β Ακ.Έτος 2008-09 (μεβάσητιςσημειώσειςτωνsilberchatz, Korth και Sudarshan και του C. Faloutsos

Διαβάστε περισσότερα

Εργαστήριο Βάσεων Δεδομένων

Εργαστήριο Βάσεων Δεδομένων Εργαστήριο Βάσεων Δεδομένων Άσκηση 2 Σκοπός της άσκησης είναι: 1. Με δεδομένο το σχεσιακό διάγραμμα, η υλοποίηση μιας βάσης σε MySQL. 2. Η εισαγωγή δεδομένων στη βάση. Για το κείμενο των προδιαγραφών της

Διαβάστε περισσότερα

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

Αποκατάσταση συστήματος Βάσεις Δεδομένων Αποκατάσταση συστήματος Βάσεις Δεδομένων με βάση slides από A. Silberschatz, H. Korth, S. Sudarshan, Database System Concepts, 5 th edition Κατηγοριοποίηση αποτυχιών Αποτυχία συναλλαγής (Transaction failure):

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΑ ΣΥΣΤΗΜΑΤΑ ΔΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΕΙΣΑΓΩΓΗ ΣΤΑ ΣΥΣΤΗΜΑΤΑ ΔΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ 1 Περιγραφή των Δεδομένων: Τα μοντέλα ενός ΣΔΒΔ Ένα μοντέλο δεδομένων είναι μια συλλογή από έννοιες που χρησιμοποιούνται για την περιγραφή δεδομένων

Διαβάστε περισσότερα

9η Εργαστηριακή Άσκηση: Stored Procedures - Triggers. Αποθηκευμένες Διαδικασίες (Stored Procedures):

9η Εργαστηριακή Άσκηση: Stored Procedures - Triggers. Αποθηκευμένες Διαδικασίες (Stored Procedures): 9η Εργαστηριακή Άσκηση: Stored Procedures - Triggers Σκοπός της παρούσας εργαστηριακής άσκησης, είναι η εξοικείωση του σπουδαστή με τη δημιουργία αποθηκευμένων διαδικασιών (Stored Procedures) και σκανδάλης

Διαβάστε περισσότερα

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

ΚΕΦΑΛΑΙΟ 1 ΣΥΝΑΛΛΑΓΕΣ ΚΑΙ ΕΛΕΓΧΟΣ ΤΑΥΤΟΧΡΟΝΙΣΜΟΥ ΚΕΦΑΛΑΙΟ 1 ΣΥΝΑΛΛΑΓΕΣ ΚΑΙ ΕΛΕΓΧΟΣ ΤΑΥΤΟΧΡΟΝΙΣΜΟΥ Σε αυτό το κεφάλαιο θα ασχοληθούµε µε βασικές έννοιες που αφορούν τη διαχείριση των συναλλαγών και ειδικότερα τον έλεγχο ταυτοχρονισµού. Ασχολούµαστε πρωταρχικά

Διαβάστε περισσότερα

Σχεδιασμός Βάσεων Δεδομένων

Σχεδιασμός Βάσεων Δεδομένων Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Σχεδιασμός Βάσεων Δεδομένων Εργαστήριο 4 Δρ. Βασιλική Κούφη Περιεχόμενα Υλοποίηση Βάσεως Δεδομένων Εκτέλεση ερωτημάτων SQL στην Βάση Δεδομένων BHMA 1. Σχεδιασμός

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων (Databases) Βάσεις Δεδομένων (Databases) ΕΠΛ 342 Χειμερινό Εξάμηνο 2011 Διδάσκοντες Καθηγητές Γιώργος Σαμάρας (ΧΩΔ01 109) Δημιουργία Πεδίων Ορισμού Πεδίο Ορισμού είναι συστατικό του σχήματος για τον ορισμό των μακροεντολών

Διαβάστε περισσότερα

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

Μάθημα 4 ο. Κρίσιμα Τμήματα και Αμοιβαίος Αποκλεισμός Μάθημα 4 ο Κρίσιμα Τμήματα και Αμοιβαίος Αποκλεισμός Εισαγωγή Σκοπός του μαθήματος αυτού είναι να εξηγήσει την έννοια του κρίσιμου τμήματος σε μία διεργασία και να δείξει τη λύση για ένα απλό πρόβλημα

Διαβάστε περισσότερα

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

Έλεγχος Ταυτοχρονισμού Έλεγχος Ταυτοχρονισμού (εμπλουτισμένο λ έ υλικό) http://delab.csd.auth.gr/courses/c_dbimpl/ Ευχαριστίες Μέρος του υλικού είναι βασισμένο στο βιβλίο Database Systems: The Complete Book Κεφάλαια 18.1 18.3

Διαβάστε περισσότερα

Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων

Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων με βάση slides από A. Silberschatz, H. Korth, S. Sudarshan, Database System Concepts, 5 th edition Περιορισμοί πεδίου τιμών Περιορισμοί ακεραιότητας

Διαβάστε περισσότερα

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

Επαναφορά του Συστήματος (Μέρος Α') Επαναφορά του Συστήματος (Μέρος Α') Κεφάλαιο 18 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke Ελληνική Μετάφραση: Γεώργιος Ευαγγελίδης 1 Επανάληψη: Οι ιδιότητες ACID A tomicity (Ατομικότητα):

Διαβάστε περισσότερα

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΠΡΟΧΩΡΗΜΕΝΑ ΘΕΜΑΤΑ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ Τ. Σελλής ΦΘΙΝΟΠΩΡΟ 2008 Λύση ΑΣΚΗΣΗΣ

Διαβάστε περισσότερα

Βάσεις Δεδομένων 5η εργαστηριακή άσκηση

Βάσεις Δεδομένων 5η εργαστηριακή άσκηση Βάσεις Δεδομένων 5η εργαστηριακή άσκηση SQL Δρ. Μαρία Ευθυμιοπούλου Εντολές sql Για να γράψετε ή να επικολλήσετε εντολές sql πηγαίνετε από το μενού SQL Workshop και επιλέγετε το SQL Commands 1. Δημιουργία

Διαβάστε περισσότερα

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

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε. Ιατρική Πληροφορική Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε. Χρήσιμοι Σύνδεσμοι Σημειώσεις μαθήματος: http://medisp.bme.teiath.gr/eclass/courses/tio103/ https://eclass.teiath.gr/courses/tio100/

Διαβάστε περισσότερα

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 9β: SQL (Διαχείριση εγγραφών, Όψεις, Περιορισμοί, Εναύσματα) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 9β: SQL (Διαχείριση εγγραφών, Όψεις, Περιορισμοί, Εναύσματα) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής Ενότητα 9β: SQL (Διαχείριση εγγραφών, Όψεις, Περιορισμοί, Εναύσματα) Ευαγγελίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό,

Διαβάστε περισσότερα

Εργαστήριο Βάσεων Δεδομένων. Triggers

Εργαστήριο Βάσεων Δεδομένων. Triggers Εργαστήριο Βάσεων Δεδομένων Triggers CREATE TRIGGER Δήλωση δημιουργίας Trigger: CREATE [DEFINER = { user CURRENT_USER }] TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt

Διαβάστε περισσότερα

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

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι Ιατρική Πληροφορική Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι Σημειώσεις μαθήματος: http://medisp.bme.teiath.gr/eclass/courses/tio103/ https://eclass.teiath.gr/courses/tio100/

Διαβάστε περισσότερα

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

Επαναληπτικές ασκήσεις Επαναληπτικές ασκήσεις Ασκ 1: Θεωρείστε τα παρακάτω χρονοδιαγράμματα σύγχρονης εκτέλεσης : S 1 = r 1 (A); w 4 (B); w 1 (C); w 3 (D); r 2 (C); w 3 (A); w 1 (A); r 3 (B); w 3 (B); r 2 (D); w 2 (A) S 2 =

Διαβάστε περισσότερα

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

Θεµατολόγιο. Πώς ελέγχουµε σειριοποιησιµότητα στην πράξη; Θεµατολόγιο Κλειδώµατα 2 Phase Locking Πώς γίνεται στην πράξη; Αδιέξοδα 1 Πώς ελέγχουµε σειριοποιησιµότητα στην πράξη; Η σειριοποιησιµότητα όψεων είναι πολύ ακριβή για να ελεγχθεί, ούτως ή άλλως... Οι

Διαβάστε περισσότερα

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

Transactions Management. (Διαχείριση Δοσοληψιών) Transactions Management (Διαχείριση Δοσοληψιών) Επισκόπηση διαλέξεων Αντιμετώπιση αστοχιών συστήματος (failure recovery) Χρήση ιστορικού/πρακτικού - Logging (Undo, Redo, Undo/Redo) Χρονοπρογράμματα Δοσοληψιών

Διαβάστε περισσότερα

Πανεπιστήµιο Ιωαννίνων Τµήµα Μαθηµατικών Μάθηµα: Βάσεις εδοµένων (741) Εργαστηριακό Τεστ Οµάδα: Α 18/11/2004

Πανεπιστήµιο Ιωαννίνων Τµήµα Μαθηµατικών Μάθηµα: Βάσεις εδοµένων (741) Εργαστηριακό Τεστ Οµάδα: Α 18/11/2004 Πανεπιστήµιο Ιωαννίνων Τµήµα Μαθηµατικών Μάθηµα: Βάσεις εδοµένων (741) Εργαστηριακό Τεστ Οµάδα: Α 18/11/2004 Θέλουµε να φτιάξουµε µια βάση στην οποία θα καταχωρούνται οι φοιτητές του τµήµατος Μαθηµατικών,

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΙI ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΙI Β. Μεγαλοοικονόµου Έλεγχος συνδροµικότητας (παρουσίαση βασισµένη εν µέρη σε σηµειώσεις των Silberchatz, Korth και Sudarshan και του C. Faloutsos) Γενική Επισκόπηση

Διαβάστε περισσότερα

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

Συναλλαγές. Εαρινό Εξάμηνο Τμήμα Μηχανικών Η/Υ και Πληροϕορικής Πολυτεχνική Σχολή, Πανεπιστήμιο Πατρών. Συναλλαγές. Βάσεις Δεδομένων ΙΙ Τμήμα Μηχανικών Η/Υ και Πληροϕορικής Πολυτεχνική Σχολή, Πανεπιστήμιο Πατρών Εαρινό Εξάμηνο 2011-2012 Table of contents 1 Table of contents 1 2 Table of contents 1 2 3 1 2 3 T read(a) A -= 30 write(a) read(b)

Διαβάστε περισσότερα

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

Επεξεργασία οσοληψιών Επανάληψη: οσοληψίες Επεξεργασία οσοληψιών Ανακεφαλαίωση Πρόβληµα «Σωστή» εκτέλεση προγραµµάτων προσπέλασης µίας βδ, στην περίπτωση: ταυτοχρονισµού αποτυχιών 1 2 Επανάληψη: οσοληψίες Επανάληψη: οσοληψίες

Διαβάστε περισσότερα

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

Θεµατολόγιο. Α) Πρακτικά Θέµατα στον Έλεγχο Ταυτοχρονισµού Θεµατολόγιο Α) Πρακτικά Θέµατα στον Έλεγχο Ταυτοχρονισµού Φαντάσµατα Κλείδωµα δέντρων Κλείδωµα σε διαφορετικά επίπεδα διακριτότητας Πώς τα βάζω όλα µαζί Β) Εναλλακτικές Τεχνικές Αισιόδοξος έλεγχος ταυτοχρονισµού

Διαβάστε περισσότερα

2 ο Σύνολο Ασκήσεων. Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1

2 ο Σύνολο Ασκήσεων. Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 2 ο Σύνολο Ασκήσεων Οι βαθμοί θα ανακοινωθούν αύριο μαζί με τους βαθμούς της προγραμματιστικής άσκησης Τα αστεράκια δείχνουν τον εκτιμώμενο βαθμό δυσκολίας (*) εύκολο (**) μέτριο (***) δύσκολο Βάσεις Δεδομένων

Διαβάστε περισσότερα

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

Ιδιοκτησία Αντικειµένου Software Transactional Memory H STM υποστηρίζει την εκτέλεση δοσοληψιών από τις διεργασίες, οι οποίες περιέχουν λειτουργίες που ο χρήστης θέλει να εκτελέσει στα διαµοιραζόµενα αντικείµενα. H STM εγγυάται

Διαβάστε περισσότερα

Επεξεργασία Ερωτήσεων

Επεξεργασία Ερωτήσεων Εισαγωγή στην Επεξεργασία Ερωτήσεων 1 Εισαγωγή ΣΔΒΔ Σύνολο από προγράµµατα για τη διαχείριση της ΒΔ Αρχεία ευρετηρίου Κατάλογος ΒΑΣΗ ΔΕΔΟΜΕΝΩΝ Αρχεία δεδοµένων συστήµατος Σύστηµα Βάσεων Δεδοµένων (ΣΒΔ)

Διαβάστε περισσότερα

H SQL είναι η γλώσσα για όλα τα εμπορικά σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων

H SQL είναι η γλώσσα για όλα τα εμπορικά σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων Η γλώσσα SQL H SQL είναι η γλώσσα για όλα τα εμπορικά σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων H SQL έχει διάφορα τμήματα: Γλώσσα Ορισμού Δεδομένων (ΓΟΔ) Γλώσσα Χειρισμού Δεδομένων (ΓΧΔ) Ενσωματωμένη

Διαβάστε περισσότερα

SQL Τύποι Δεδομένων Δημιουργία Πίνακα Παράδειγμα.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (1)

SQL Τύποι Δεδομένων Δημιουργία Πίνακα Παράδειγμα.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (1) Εργαστήριο Βάσεων Δεδομένων Εισαγωγή στη My (1) Η (Structured Query Language) είναι μια πλήρης γλώσσα Βάσεων Δεδομενων Είναι δομημένη σε βάσεις που περιέχουν πίνακες Οι πίνακες αποτελούνται από γραμμές

Διαβάστε περισσότερα

Ορισμοί Σχεσιακού Μοντέλου και (απλές)τροποποιήσεις Σχέσεων στην SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Ορισμοί Σχεσιακού Μοντέλου και (απλές)τροποποιήσεις Σχέσεων στην SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Ορισμοί Σχεσιακού Μοντέλου και (απλές)τροποποιήσεις Σχέσεων στην SQL Ευαγγελία Πιτουρά 1 Τι έχουμε δει Μοντελοποίηση Εννοιολογικός Σχεδιασμός Βάσεων Δεδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων)

Διαβάστε περισσότερα

Επεξεργασία Ερωτήσεων

Επεξεργασία Ερωτήσεων Εισαγωγή Επεξεργασία Ερωτήσεων ΜΕΡΟΣ 1 Γενική Εικόνα του Μαθήματος 1. Μοντελοποίηση (Μοντέλο Ο/Σ, Σχεσιακό, Λογικός Σχεδιασμός) 2. Προγραμματισμός (Σχεσιακή Άλγεβρα, SQL) ημιουργία/κατασκευή Εισαγωγή εδομένων

Διαβάστε περισσότερα

Επεξεργασία Ερωτήσεων

Επεξεργασία Ερωτήσεων Εισαγωγή Επεξεργασία Ερωτήσεων Σ Β Βάση εδομένων Η ομή ενός ΣΒ Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 1 Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 2 Εισαγωγή Εισαγωγή ΜΕΡΟΣ 1 (Χρήση Σ Β ) Γενική

Διαβάστε περισσότερα

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Εισαγωγή Μοντελοποίηση Στα προηγούμενα μαθήματα: Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων) Λογικός

Διαβάστε περισσότερα

HY-486 Αρχές Κατανεμημένου Υπολογισμού

HY-486 Αρχές Κατανεμημένου Υπολογισμού HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο 2016-2017 Πρώτη Προγραμματιστική Εργασία Προθεσμία παράδοσης: Τρίτη 2/5 στις 23:59. 1. Γενική Περιγραφή Στην πρώτη προγραμματιστική εργασία καλείστε

Διαβάστε περισσότερα

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

Διαχείριση Πολιτισμικών Δεδομένων Διαχείριση Πολιτισμικών Δεδομένων Μάθημα 7 Γλώσσα Ερωτημάτων SQL Τζανέτος Πομόνης ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Συντήρησης Πολιτισμικής Κληρονομιάς Βασικές Έννοιες Σχεσιακή

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Τμήμα Πληροφορικής Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Τμήμα Πληροφορικής Άσκηση : Λυμένες Ασκήσεις Έστω ένα σύστημα μνήμης, στο οποίο έχουμε προσθέσει μια κρυφή μνήμη θυμάτων 6 θέσεων

Διαβάστε περισσότερα

Η SQL αποτελείται από δύο υποσύνολα, τη DDL και τη DML.

Η SQL αποτελείται από δύο υποσύνολα, τη DDL και τη DML. Κεφάλαιο 5 Η γλώσσα SQL 5.1 Εισαγωγή Η γλώσσα SQL (Structured Query Language) είναι η πιο διαδεδομένη διαλογική γλώσσα ερωταπαντήσεων που χρησιμοποιείται για την επικοινωνία του χρήστη με σχεσιακές ΒΔ.

Διαβάστε περισσότερα

Διάλεξη 07: Σχεσιακό Μοντέλο II (Relational Data Model) Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 07: Σχεσιακό Μοντέλο II (Relational Data Model) Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 07: Σχεσιακό Μοντέλο II (Relational Data Model) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: Περιορισμοί Σχεσιακού Μοντέλου και Σχεσιακά Σχήματα Πράξεις Ενημερώσεων

Διαβάστε περισσότερα

Οδηγίες Χρήσης της MySQL

Οδηγίες Χρήσης της MySQL ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΗΜΕΙΩΣΕΙΣ ΣΕ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Οδηγίες Χρήσης της MySQL Διδάσκων: Γιάννης Θεοδωρίδης Συντάκτης Κειμένου: Βαγγέλης Κατσικάρος Απρίλιος 2007 1 Περιεχόμενα Εισαγωγή...2

Διαβάστε περισσότερα

Εξεταστική Περίοδος Ιουνίου 2004

Εξεταστική Περίοδος Ιουνίου 2004 Aρχεία και Βάσεις εδοµένων Εξεταστική Περίοδος Ιουνίου 2004 ιαβάστε προσεκτικά όλες τις οδηγίες, τις εκφωνήσεις των ερωτηµάτων και τις όποιες οδηγίες υπάρχουν σε κάθε ερώτηµα. Η εξέταση πραγµατοποιείται

Διαβάστε περισσότερα

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

Εισαγωγή στην. Εισαγωγή Σ Β. Αρχεία ευρετηρίου Κατάλογος. συστήματος. Αρχεία δεδομένων Εισαγωγή στην Επεξεργασία Ερωτήσεων 1 Εισαγωγή Σ Β Σύνολο από προγράμματα για τη διαχείριση της Β Αρχεία ευρετηρίου Κατάλογος ΒΑΣΗ Ε ΟΜΕΝΩΝ Αρχεία δεδομένων συστήματος Σύστημα Βάσεων εδομένων (ΣΒ ) 2 :

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

. Εργαστήριο Βάσεων Δεδομένων. Triggers

. Εργαστήριο Βάσεων Δεδομένων. Triggers Εργαστήριο Βάσεων Δεδομένων Triggers Triggers: Βασικές Έννοιες Ένας trigger είναι ένα κομμάτι κώδικα, μια ρουτίνα Συνδέεται με ένα συγκεκριμένο πίνακα Καλείται όταν συμβεί ένα γεγονός στον πίνακα Συχνές

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων ΙΙ Ενότητα 2 Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Βάσεις Δεδομένων ΙΙ Ενότητα 2: Ελέγχου Συνδρομικότητας Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

Διαβάστε περισσότερα

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

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δεντρικά Ευρετήρια 1 Δέντρα Αναζήτησης Ένα δέντρο αναζήτησης (search tree) τάξεως p είναι ένα δέντρο τέτοιο ώστε κάθε κόμβος του περιέχει το πολύ p - 1 τιμές αναζήτησης και ρ δείκτες ως εξής P 1 K 1 P

Διαβάστε περισσότερα

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

Τεχνικές Ανάκαµψης. Αtomicity (ατοµικότητα) - είτε όλες οι πράξεις είτε Επιθυµητές Ιδιότητες µιας οσοληψίας Τεχνικές Ανάκαµψης Ιδιότητες οσοληψιών Αtomicity (ατοµικότητα) - είτε όλες οι πράξεις είτε καµία Consistency (συνέπεια) - διατήρηση συνέπειας της Β Isolation (αποµόνωση)

Διαβάστε περισσότερα

Η SQL ως γλώσσα τροποποίησης Δεδομένων

Η SQL ως γλώσσα τροποποίησης Δεδομένων Η SQL ως γλώσσα τροποποίησης Δεδομένων Τροποποίηση Βάσης Δεδομένων: Γλώσσα Χειρισμού Δεδομένων (ΓXΔ) Τροποποιήσεις 1. Διαγραφή 2. Εισαγωγή 3. Ενημέρωση Οι εντολές αυτές ΤΡΟΠΟΠΟΙΟΥΝ το στιγμιότυπο της βάσης

Διαβάστε περισσότερα

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

Ηλεκτρονικοί Υπολογιστές II ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ηλεκτρονικοί Υπολογιστές II Εντολές ορισμού δεδομένων (DDL) στην SQL Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Οδηγίες Χρήσης της MySQL

Οδηγίες Χρήσης της MySQL ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΗΜΕΙΩΣΕΙΣ ΣΕ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Οδηγίες Χρήσης της MySQL Διδάσκων: Γιάννης Θεοδωρίδης Συντάκτης Κειμένου: Βαγγέλης Κατσικάρος Νοέμβριος 2007 1 Περιεχόμενα Εισαγωγή...2

Διαβάστε περισσότερα

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

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δεντρικά Ευρετήρια Ευαγγελία Πιτουρά 1 Δέντρα Αναζήτησης Ένα δέντρο αναζήτησης (search tree) τάξεως p είναι ένα δέντρο τέτοιο ώστε κάθε κόμβος του περιέχει το πολύ p - 1 τιμές αναζήτησης και ρ δείκτες

Διαβάστε περισσότερα

PROJECT ΕΡΓΑΣΤΗΡΙΩΝ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ Ι. Τμήμα Μηχανικών Πληροφορικής Τ.Ε.

PROJECT ΕΡΓΑΣΤΗΡΙΩΝ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ Ι. Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Παραδοτέα 1. Το αρχείο.mdb της βάσης δεδομένων σας σε ACCESS 2. Ένα CD που θα αναγράφει το ονοματεπώνυμο του σπουδαστή και το ΑΕΜ και θα περιέχει το αρχείο.mdb της βάσης δεδομένων καθώς και το εγχειρίδιο

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ Εισαγωγή στη MySQL Νικόλαος Ζ. Ζάχαρης Τι είναι η MySql Είναι ένα Σχεσιακό Σύστημα Διαχείρισης

Διαβάστε περισσότερα

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

Σημεία ελέγχου (Checkpoints) Σημεία ελέγχου (Checkpoints) Από την στιγμή που γίνεται ένα σε ένα Undo Recovery θα μπορούσε κανείς να υποθέσει ότι τα πρακτικά της δοσοληψίας μέχρι το δεν είναι πλέον απαραίτητα για

Διαβάστε περισσότερα

databases linux - terminal (linux / windows terminal)

databases linux - terminal (linux / windows terminal) databases linux - terminal (linux / windows terminal) 1) ανοίγουμε την mysql -> $ mysql -u root -p (enter) password (enter) TIP: αν κατά την εντολή αυτή μας γράψει, ERROR 2002 (HY000): Can't connect to

Διαβάστε περισσότερα

Τεχνολογία Πολιτισμικού Λογισμικού

Τεχνολογία Πολιτισμικού Λογισμικού Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Τεχνολογία Πολιτισμικού Λογισμικού Ενότητα 10: Γλώσσα Ερωτημάτων SQL Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται

Διαβάστε περισσότερα

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 1 Εισαγωγή Μοντελοποίηση Στα προηγούμενα μαθήματα: Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με

Διαβάστε περισσότερα

Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions)

Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions) Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions) Αυγερινός Αραμπατζής avi@ee.duth.gr www.aviarampatzis.com Βάσεις Δεδομένων Stored Procedures 1 Stored Routines (1/2) Τμήματα κώδικα τα

Διαβάστε περισσότερα