Συναλλαγές (βάσεις δεδομένων)

Από τη Βικιπαίδεια, την ελεύθερη εγκυκλοπαίδεια
Μετάβαση σε: πλοήγηση, αναζήτηση

Με τον όρο Βάση Δεδομένων εννοείται μία συλλογή από συστηματικά οργανωμένα (formatted) σχετιζόμενα δεδομένα. Συνήθως μια συλλογή από διάφορες λειτουργίες της βάσης δεδομένων, μοιάζει να είναι μια μονάδα από την πλευρά του χρήστη. Αυτό συμβαίνει γιατί όταν ένας χρήστης πραγματοποιεί μια μεταφορά χρημάτων για παράδειγμα, ουσιαστικά για εκείνον είναι μια λειτουργία, αλλά στη βάση δεδομένων πραγματοποιείται μια ακολουθία πράξεων μέχρις ότου καταλήξει στην επιθυμητή κατάσταση.

Το σύνολο των λειτουργιών, που αποτελούν μία μόνο λειτουργική μονάδα, ονομάζονται συναλλαγές. Μια ΒΔ πρέπει να εξασφαλίζει τη σωστή εκτέλεση των συναλλαγών, ανεξάρτητα από τυχών προβλήματα που μπορεί να παρουσιαστούν κατά την εκτέλεση, δηλαδή να εκτελείτε είτε ολόκληρη η Συναλλαγή είτε καθόλου. Παρακάτω, αναλύονται οι ορισμοί και οι βασικές έννοιες της επεξεργασίας των συναλλαγών καθώς και οι κύριες ιδιότητές τους.

Ορισμός[Επεξεργασία | επεξεργασία κώδικα]

Συναλλαγή είναι μια κινητή μονάδα εκτέλεσης ενός προγράμματος που προσπελαύνει και πιθανόν ενημερώνει διάφορα δεδομένα. Συνήθως, μια συναλλαγή ξεκινά από ένα πρόγραμμα χρήστη, που είναι γραμμένο σε μια γλώσσα υψηλού επιπέδου ή γλώσσα προγραμματισμού (για παράδειγμα, SQL, COBOL, C, C++, ή Java), όπου χωρίζεται από εντολές (ή κλήσεις συναρτήσεων) της μορφής begin transaction (έναρξη συναλλαγής) και end transaction (λήξη συναλλαγής). Η συναλλαγή αποτελείται από όλες τις λειτουργίες που εκτελούνται μεταξύ των begin transaction και end transaction[1].

Ιδιότητες[Επεξεργασία | επεξεργασία κώδικα]

Για να διασφαλιστεί η ακεραιότητα των δεδομένων, απαιτείται ή βάση δεδομένων να διατηρεί τις παρακάτω ιδιότητες συναλλαγών[2].

Ατομικότητα
(Atomicity)
Πρέπει να γίνουν όλες οι λεπτομέρειες της συναλλαγής σωστά στη βάση δεδομένων, ή καμία.
Συνέπεια
(Consistency)
Η εκτέλεση μιας συναλλαγής απομονωμένα (δηλαδή, χωρίς ταυτόχρονη εκτέλεση άλλων συναλλαγών) διατηρεί την συνέπεια της βάσης δεδομένων.
Απομόνωση
(Isolation)
Ακόμα και αν εκτελούνται ταυτόχρονα πολλές συναλλαγές το σύστημα εγγυάται ότι, για κάθε ζευγάρι από συναλλαγές Ti και Tj, Θα φαίνεται στην Ti ότι η Tj τελείωσε την εκτέλεση πριν ξεκινήσει η Ti ή ότι η Tj ξεκίνησε την εκτέλεση αφού τελείωσε η Ti. Έτσι, κάθε συναλλαγή δεν ξέρει για τις άλλες συναλλαγές που εκτελούνται ταυτόχρονα στο σύστημα.
Ανοχή
(Durability)
Αφού μια συναλλαγή ολοκληρωθεί με επιτυχία, παραμένουν οι αλλαγές που έχει κάνει στη βάση δεδομένων, ακόμα και αν το σύστημα έχει πρόβλημα.
Ιδιότητες

Οι ιδιότητες αυτές συνήθως ονομάζονται ιδιότητες ACID. Το ακρωνύμιο παράγεται από το πρώτο γράμμα κάθε μιας από τις τέσσερις ιδιότητες στα αγγλικά.

Καταστάσεις Συναλλαγών[Επεξεργασία | επεξεργασία κώδικα]

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

Μια συναλλαγή είτε θα τερματιστεί κανονικά (commited) επιφέροντας μόνιμες αλλαγές στη ΒΔ είτε θα απορριφθεί (aborted) και τα δεδομένα θα επανέλθουν στην προηγούμενη κατάσταση[3]. Οι δυο αυτές καταστάσεις είναι οι μοναδικές καταστάσεις τερματισμού μιας συναλλαγής. Ωστόσο, πριν τον τερματισμό της μια συναλλαγή μπορεί να βρεθεί σε άλλη ενδιάμεση κατάσταση. Οι καταστάσεις στις οποίες μπορεί να υπεισέλθει μια συναλλαγή παρουσιάζονται στο σχήμα δεξιά και περιγράφονται στη συνέχεια.

  • Ενεργή Κατάσταση (active). Η συναλλαγή εισέρχεται στην ενεργή κατάσταση κατά την αρχή της επεξεργασίας της και παραμένει σε αυτή εν’ όσω εκτελείται.
  • Κατάσταση Μερικής Δέσμευσης (partially commited). Η συναλλαγή θεωρείται μερικώς ολοκληρωμένη όταν έχει ολοκληρωθεί και η τελευταία εντολή της συναλλαγής.
  • Κατάσταση Αποτυχίας (failed). Η συναλλαγή αποτυγχάνει όταν το ΣΔΒΔ αντιληφθεί ότι δεν μπορεί να συνεχίσει η ομαλή επεξεργασία της.
  • Κατάσταση Απόρριψης (aborted). Η συναλλαγή βρίσκεται στην κατάσταση αυτή όταν τα δεδομένα έχουν επανέλθει στην προηγούμενη σταθερή κατάσταση, πριν την αρχή της εκτέλεσης της συναλλαγής.
  • Κατάσταση Δέσμευσης (commited). Η συναλλαγή έχει ολοκληρώσει την εκτέλεση της με επιτυχία.

Παραπομπές[Επεξεργασία | επεξεργασία κώδικα]

  1. Συστήματα Βάσεων Δεδομένων - Η Πλήρης Θεωρία των Βάσεων Δεδομένων 4η Έκδοση Κεφ, Κεφ. 15.1 [Παρ. 1], Abraham Silberschatz, Henry F. Korth, S. Sudarshan.
  2. Συστήματα Βάσεων Δεδομένων - Η Πλήρης Θεωρία των Βάσεων Δεδομένων 4η Έκδοση, Κεφ. 15.1 [Παρ. 2], Abraham Silberschatz, Henry F. Korth, S. Sudarshan.
  3. Συστήματα Βάσεων Δεδομένων - Θεωρία & Πρακτική Εφαρμογή, Κεφ. 15.1.1, Ιωάννης Μανολόπουλος, Απόστολος Ν. Παπαδόπουλος

Εξωτερικοί Σύνδεσμοι[Επεξεργασία | επεξεργασία κώδικα]