2.2

2.2 Χαρακτηριστικά ενός ΣΔΒΔ
**Στόχοι / Προσδοκώμενα Αποτελέσματα** Ο μαθητής/τρια πρέπει να είναι ικανός/ή:
 * να περιγράφει την έννοια της συναλλαγής
 * να διακρίνει τις απαιτήσεις αξιοπιστίας ACID
 * να διακρίνει τις απαιτήσεις αξιοπιστίας με βάση το θεώρημα GAP

Την ανάγκη για αξιολόγηση της αξιοπιστίας σε οτιδήποτε αφορά τις συναλλαγές στη βάση δεδομένων, έρχεται να εγγυηθεί η αποδοχή των απαιτήσεων **ACID** (Atomicity, Consistency, Isolation, Durability) - (Ατομικότητα, Συνέπεια, Απομόνωση, Μονιμότητα). Σαν **συναλλαγή** θα θεωρήσουμε οποιαδήποτε λογική ενέργεια που σχετίζεται με τα δεδομένα. Π.χ. μια μεταφορά κεφαλαίου από ένα λογαριασμό μιας τράπεζας σε έναν άλλο, όσες κινήσεις και να χρειάζεται τελικά είναι μια συναλλαγή. Όταν έχουμε ένα πολύπλοκα διαμοιρασμένο σύστημα αποθήκευσης πληροφοριών είναι φυσικό να αναπτυχθεί και αντίστοιχος προβληματισμός σε θεωρητικό επίπεδο. Αποτέλεσμα αυτής της θεωρητικής μελέτης είναι το **θεώρημα CAP** (Consistency, Availability, Partition tolerance) (Συνέπεια, Διαθεσιμότητα, ανοχή Διαμερισμού), γνωστό επίσης και ως θεώρημα Brewer. Σύμφωνα με αυτό είναι **αδύνατο** για ένα κατανεμημένο σύστημα υπολογιστών να παρέχει **ταυτόχρονα** και τις τρεις εγγυήσεις:
 * Η **Ατομικότητα** απαιτεί η τροποποίηση που θα γίνει στην ΒΔ να τηρεί τον κανόνα //**όλα ή τίποτα**//, αν δηλαδή ένα μέρος της συναλλαγής αποτύχει, αποτυγχάνει όλη η συναλλαγή και η ΒΔ μένει όπως ήταν πριν εκτελεστεί η συναλλαγή. Η Ατομικότητα σημαίνει ότι οι χρήστες είναι απαλλαγμένοι από τον φόβο μη ολοκληρωμένων συναλλαγών.
 * Η **Συνέπεια** διασφαλίζει ότι η ΒΔ διατηρείται σε μια συνεπή κατάσταση, συγκεκριμένα λέει ότι κάθε συναλλαγή θα οδηγεί την βάση δεδομένων από τη μια συνεπή κατάσταση στην άλλη. Σε περίπτωση που μια συναλλαγή παραβιάζει κάποιο κανόνα της συνέπειας, ανακαλείται προκειμένου η ΒΔ να έχει μόνο έγκυρα δεδομένα. Π.χ. αν σε μια ΒΔ ένα πεδίο είναι μόνο για ακέραιους αριθμούς τότε το ΣΔΒΔ μπορεί είτε να απορρίψει απόπειρες για είσοδο δεκαδικών αριθμών είτε να τους στρογγυλοποιήσει. Και οι δυο αυτές ενέργειες διατηρούν την συνέπεια. Υπάρχουν τρία είδη συνέπειας, ισχυρή, ασθενής και ενδεχόμενη, η μελέτη τους όμως ξεφεύγει από το πλαίσιο του παρόντος βιβλίου.
 * Η **Απομόνωση** αναφέρεται στην απαίτηση ότι όλες οι ενέργειες δεν μπορούν να έχουν πρόσβαση ή να δουν δεδομένα τα οποία τροποποιούνται εκείνη την στιγμή από μια συναλλαγή η οποία δεν έχει ακόμα ολοκληρωθεί.
 * Η **Μονιμότητα** εγγυάται στον χρήστη ότι αν τελειώσει μια συναλλαγή επιτυχώς τότε τα αποτελέσματα της δεν θα χαθούν. Οι αλλαγές που έχει κάνει η συναλλαγή δεν θα χαθούν σε περίπτωση απώλειας ρεύματος ή άλλης καταστροφής.
 * **Συνέπεια**, αναπτύχθηκε βέβαια προηγουμένως αλλά κατά τον Brewer η κεντρική ιδέα είναι ότι όλοι οι κόμβοι βλέπουν τα ίδια δεδομένα την ίδια στιγμή.
 * **Διαθεσιμότητα**, εγγύηση ότι κάθε αίτημα παίρνει μια απάντηση σχετικά με το αν πέτυχε ή απέτυχε.
 * **ανοχή Διαμερισμού**, εγγύηση ότι το σύστημα συνεχίζει να λειτουργεί παρά τον διαμερισμό που οφείλεται σε βλάβες του δικτύου.

**Ερωτήσεις / Δραστηριότητες**
 * 1) Ποιες είναι οι  απαιτήσεις ACID;
 * 2) Τι περιλαμβάνει το θεώρημα GAP;