Συστήματα επεξεργασίας συναλλαγών

Ένα **σύστημα επεξεργασίας συναλλαγών** αποτελεί ένα τύπο πληροφοριακού συστήματος. Τα συστήματα επεξεργασίας συναλλαγών συλλέγουν, αποθηκεύουν, τροποποιούν και ανακτούν τις συναλλαγές ενός οργανισμού.

Μια συναλλαγή είναι ένα γεγονός που δημιουργεί και τροποποιεί δεδομένα, τα οποία αποθηκεύονται τελικά σε ένα πληροφοριακό σύστημα. Για να θεωρηθεί επαρκές ένα σύστημα επεξεργασίας συναλλαγών θα πρέπει να πληροί τις προϋποθέσεις των κριτηρίων ACID. Η ουσία ενός λογισμικού συναλλαγών είναι ότι διαχειρίζεται δεδομένα, τα οποία πρέπει να αφεθούν σε μία "συνεκτική κατάσταση" (consistent state). Για παράδειγμα, εάν γίνεται μια ηλεκτρονική πληρωμή, το ποσό θα πρέπει ταυτόχρονα να αποσύρεται από τον ένα λογαριασμό και να προστίθεται στον άλλον - δε μπορεί να ολοκληρωθεί μόνο το ένα από αυτά βήματα, πρέπει είτε και τα δύο να υφίστανται, είτε κανένα. Σε περίπτωση αποτυχίας της ολοκλήρωσης μιας συναλλαγής, η μερικώς εκτελεσμένη συναλλαγή πρέπει να ακυρωθεί από το σύστημα επεξεργασίας συναλλαγών. Αυτή η "ακεραιότητα" πρέπει προφανώς να παρέχεται και για την επεξεργασία δέσμης συναλλαγών. Και είναι βέβαια ιδιαίτερα σημαντική για τις συναλλαγές στο διαδίκτυο. Για παράδειγμα, εάν το σύστημα κράτησης αεροπορικών θέσεων χρησιμοποείται από πολλά γραφεία ταξιδίων, μετά την αναζήτηση μιας θέσης, τα δεδομένα κράτησης της πρέπει να κλειδώνονται μέχρι η κράτηση αυτή να γίνει, διαφορετικά κάποιος άλλος χρήστης μπορεί να έχει την εντύπωση ότι η θέση εξακολουθεί να είναι ελεύθερη, ενώ στην πραγματικότητα αυτή έχει δεσμευτεί εκείνη τη στιγμή. Χωρίς την κατάλληλη παρακολούθηση της συναλλαγής, μπορούν να προκύψουν διπλές κρατήσεις. Άλλες λειτουργίες παρακολούθησης συναλλαγών συμπεριλαμβάνουν ανίχνευση και άρση "αδιέξοδου" (τα αδιέξοδα μπορούν να είναι αναπόφευκτα σε ορισμένες περιπτώσεις αλληλεξαρτώμενων δεδομένων) και χρήση μεθόδων "ημερολογίου συναλλαγών"...

Η επεξεργασία των συναλλαγών δεν γίνεται μόνον από τις αντίστοιχες εφαρμογές. Το «ημερολογιακό σύστημα αρχείων» που εμπεριέχεται στο λειτουργικά συστήματα AIX UNIX της IBM, χρησιμοποιεί παρόμοιες τεχνικές για να διατηρήσει την ακεραιότητα του συστήματος αρχειοθέτησης, συμπεριλαμβανομένου ενός "ημερολογίου γεγονότων".

## Τύποι

### Επεξεργασία δέσμης
Η επεξεργασία δέσμης (batch processing) είναι μια μορφή επεξεργασίας συναλλαγών. Η επεξεργασία δέσμης εμπεριέχει την επεξεργασία πολλαπλών συναλλαγών ταυτόχρονα. Τα αποτελέσματα από κάθε συναλλαγή δεν είναι αμέσως διαθέσιμα όταν εισάγεται η συναλλαγή, υπάρχει μία χρονική καθυστέρηση. Οι συναλλαγές συγκεντρώνονται στη διάρκεια μιας περιόδου  (ας πούμε μιας ημέρας) και οι αντίστοιχες ενημερώσεις γίνονται μετά το πέρας της εργάσιμης ημέρας.

### Επεξεργασία σε Πραγματικό χρόνο και Επεξεργασία δέσμης
 
Υπάρχει ένας αριθμός διαφορών μεταξύ της επεξεργασίας σε **πραγματικό χρόνο** και της **επεξεργασίας δέσμης**. Αυτά υπογραμμίζονται παρακάτω:

# Κάθε συναλλαγή επεξεργασμένη σε πραγματικό χρόνο είναι μοναδική. Δεν είναι μέρος μιας ομάδας συναλλαγής, ακόμη και αν αυτές οι συναλλαγές γίνονται αντικείμενο επεξεργασίας με τον ίδιο τρόπο. Οι επεξεργασμένες σε πραγματικό χρόνο συναλλαγές είναι αυτόνομες και κατά την είσοδο τους στο σύστημα και κατά τη διαχείριση του αποτελέσματος που δημιουργούν.

# Η επεξεργασία σε πραγματικό χρόνο προαπαιτεί, πολύ πιο συχνά από την επεξεργασία δέσμης, να "κύριο αρχείο" (master file) να είναι διαθέσιμο για ενημέρωση και παραπομπή σε αυτό. Η βάση δεδομένων δεν είναι διαθέσιμη όλη την ώρα για την επεξεργασία δέσμης.
 
# Η επεξεργασία σε πραγματικό χρόνο έχει λιγότερα λάθη από την επεξεργασία δέσμης, διότι τα δεδομένα της συναλλαγής ελέγχονται και εισάγονται αμέσως. Με την επεξεργασία δέσμης τα δεδομένα οργανώνονται και αποθηκεύονται πριν ενημερωθεί το κύριο αρχείο. Κάπου ανάμεσα, μπορεί να προκύψουν λάθη.
 
# Στην επεξεργασία σε πραγματικό χρόνο μπορούν να προκύψουν (σπανίως) λάθη, ωστόσο αυτά είναι ανεκτά. Δεν είναι πρακτικό να τερματίζουμε το σύστημα για τέτοια σπάνια λάθη.
 
# Στην επεξεργασία σε πραγματικό χρόνο χρειάζονται περισσότεροι χειριστές ηλεκτρονικών υπολογιστών χρηστών, διότι οι σχετικές λειτουργίες δεν είναι συγκεντρωμένες. Είναι πιο δύσκολος ο χειρισμός ενός συστήματος επεξεργασίας σε πραγματικό χρόνο σε σχέση με ένα σύστημα επεξεργασίας δέσμης.

## Χαρακτηριστικά

### Άμεση ανταπόκριση

Η καλή και ταχεία απόδοση του συστήματος και ο γρήγορος χρόνο ανταπόκρισης είναι κρίσιμες παράμετροι. Οι επιχειρήσεις δεν μπορούν να έχουν πελάτες που να περιμένουν να ανταποκριθεί το σύστημα επεξεργασίας συναλλαγών. Ο χρόνος ολοκλήρωσης από την εισαγωγή της συναλλαγής μέχρι την παραγωγή του αποτελέσματος πρέπει να είναι κάποια δευτερόλεπτα ή και λιγότερο.

### Αξιοπιστία

Πολλοί οργανισμοί εξαρτώνται σε μεγάλο βαθμό από τα συστήματα της επεξεργασίας συναλλαγών. Μία βλάβη θα διακόψει λειτουργίες ή μπορεί ακόμη να σταματήσει την επιχείρηση. Για να είναι ένα σύστημα επεξεργασίας συναλλαγών αποτελεσματικό, πρέπει το ποσοστό αποτυχίας του να είναι πάρα πολύ χαμηλό. Αν ένα σύστημα επεξεργασίας συναλλαγών αστοχήσει, θα πρέπει να είναι δυνατή μια γρήγορη και ακριβής επιστροφή σε καθεστώς λειτουργίας (recovery). Αυτό κάνει απαραίτητο τον καλό σχεδιασμό και της δημιουργίας αντιγράφων ασφαλείας (back up) και των διαδικασιών ανάκτησης της προηγούμενης κατάστασης.

### Σταθερότητα

Ένα σύστημα επεξεργασίας συναλλαγών θέλει κάθε συναλλαγή να γίνεται αντικείμενο επεξεργασίας με τον ίδιο τρόπο, ανεξάρτητα από τον χρήστη του συστήματος, τον πελάτη ή τη χρονική στιγμή. Αν τα  συστήματα επεξεργασίας συναλλαγών ήταν "ευέλικτα", θα άφηναν δυνατότητες για όχι προτυποιημένες λειτουργίες. Για παράδειγμα, μια εμπορική αεροπορική εταιρεία πρέπει να δέχεται συνεχώς κρατήσεις αεροπορικών θέσεων από μία σειρά από ταξιδιωτικούς πράκτορες. Το να δέχεται διαφορετικά δεδομένα συναλλαγής από διαφορετικούς ταξιδιωτικούς πράκτορες θα ήταν ένα πρόβλημα.

### Ελεγχόμενη επεξεργασία

Η επεξεργασία των δεδομένων σε ένα σύστημα επεξεργασίας συναλλαγών πρέπει να υποστηρίζει τις λειτουργίες ενός οργανισμού. Για παράδειγμα, αν ένας οργανισμός κατανέμει ρόλους και ευθύνες σε συγκεκριμένους εργαζόμενους, τότε το σύστημα επεξεργασίας συναλλαγών πρέπει να επιβάλλει και να διατηρεί αυτήν την απαίτηση.

## Ιδιότητες των κριτηρίων ACID: πρώτος ορισμός

### Ατομικότητα

Οι αλλαγές στην κατάσταση μίας συναλλαγής είναι "ατομικές", είτε συμβαίνουν όλες, είτε δεν συμβαίνει καμία. Αυτές οι αλλαγές συμπεριλαμβάνουν αλλαγές στη βάση δεδομένων, μηνύματα και δράσεις μετατροπέων.

### Συνοχή

Μια συναλλαγή είναι ένας σωστός μετασχηματισμός μιας κατάστασης. Η συναλλαγή πρέπει να είναι ένα σωστό πρόγραμμα που μεταφέρει την βάση δεδομένων από μια ορθή κατάσταση σε μια άλλη ορθή κατάσταση.

### Απομόνωση

Οι συναλλαγές εκτελούνται ταυτόχρονα, αλλά κάθε μια διατηρεί την ανεξαρτησία της. Η μια συναλλαγή δεν εμπλέκεται με την άλλη.

### Μονιμότητα

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

### Συγχρονισμός
Εξασφαλίζει ότι δεν μπορούν δύο χρήστες να αλλάζουν τα ίδια δεδομένα την ίδια στιγμή. Αυτό σημαίνει ότι δεν μπορεί ένας χρήστης να αλλάξει ένα τμήμα δεδομένων, πριν ο άλλος χρήστης τελειώσει με αυτό. Για παράδειγμα, εάν ένας ταξιδιωτικός πράκτορας ξεκινήσει τη διαδικασία δέσμευσης της τελευταίας θέσης σε μια αεροπορική πτήση, τότε κάποιος άλλος πράκτορας δε μπορεί να πει σε κάποιον άλλο επιβάτη ότι υπάρχει διαθέσιμη θέση σε αυτή την πτήση.

## Αποθήκευση και ανάκτηση

Η αποθήκευση και η ανάκτηση πληροφοριών από ένα  σύστημα επεξεργασίας συναλλαγών πρέπει να είναι αποδοτική και αποτελεσματική. Τα δεδομένα αποθηκεύονται σε "αποθήκες" δεδομένων (warehouses) ή βάσεις δεδομένων και το σύστημα πρέπει να είναι καλά σχεδιασμένο για να προβλέπει σαφείς και αξιόπιστες διαδικασίες δημιουργίας αντιγράφων ασφαλείας και επιστροφής στην ορθή λειτουργία (μετά από αστοχίες).

### Βάσεις δεδομένων και αρχεία

Η αποθήκευση και η ανάκτηση πρέπει να είναι ακριβής, διότι χρησιμοποιείται συνεχώς. Μία βάση δεδομένων είναι μία συλλογή από οργανωμένα δεδομένα σε τάξη, στην οποία αποθηκεύονται τα λογιστικά αρχεία και τα αρχεία κινήσεων. Οι βάσεις δεδομένων έχουν την λογική να προστατεύουν τα ευαίσθητα δεδομένα τους. Για το λόγο αυτό, συνήθως, παρέχουν περιορισμένη πρόσβαση σε συγκεκριμένα δεδομένα. Οι βάσεις δεδομένων είναι σχεδιασμένες με τη χρήση ιεραρχικών, δικτυακών ή σχεσιακών δομών. Κάθε δομή είναι αποτελεσματική με τον δικό της τρόπο.

*Ιεραρχική δομή: Οργανώνει δεδομένα κατά σειρά επιπέδων, γι’αυτό και καλείται ιεραρχική. Η δομή της (από πάνω προς τα κάτω) αποτελείται από κόμβους (nodes) και διακλαδώσεις. Κάθε θυγατρικός κόμβος έχει πολλές διακλαδώσεις προς τα κάτω αλλά είναι συνδεδεμένος μόνο με ένα γονικό κόμβο προς τα πάνω.
*Διαδικτυακή δομή: Παρόμοια με την ιεραρχική, η διαδικτυακή δομή επίσης οργανώνει τα δεδομένα της με τη χρήση κόμβων και διακλαδώσεων. Αλλά σε αντίθεση με την ιεραρχική, κάθε θυγατρικός κόμβος μπορεί να είναι συνδεδεμένος με πολλαπλούς, ανώτερου επιπέδου, γονικούς κόμβους.
*Σχεσιακή δομή: Σε αντίθεση με την διαδικτυακή και ιεραρχική, μία σχεσιακή βάση δεδομένων οργανώνει τα δεδομένα της ως μια σειρά σχεσιακών πινάκων. Αυτό χαρίζει ευελιξία, διότι δημιουργούνται σχέσεις μεταξύ των πινάκων.

Τα παρακάτω χαρακτηριστικά συμπεριλαμβάνονται σε συστήματα επεξεργασίας συναλλαγών σε πραγματικό χρόνο:

***Καλή τοποθέτηση δεδομένων**: Η βάση δεδομένων πρέπει να είναι σχεδιασμένη ώστε να επιτρέπει πρόσβαση στα δεδομένα σε πολλούς ταυτόχρονους χρήστες.
***Σύντομη συναλλαγή**: Οι σύντομες συναλλαγές επιτρέπουν γρήγορη επεξεργασία. Έτσι αποφεύγεται ο ταυτοχρονισμός και βελτιώνεται η απόδοση του συστήματος.
***Αποθήκευση αντιγράφων ασφαλείας σε πραγματικό χρόνο**: Η δημιουργία αντιγράφων ασφαλείας (backup) πρέπει να είναι προγραμματισμένη να συμβαίνει σε χρόνο χαμηλής δραστηριότητας του συστήματος για να αποφεύγονται καθυστερήσεις στον εξυπηρετητή.
***Υψηλή κανονικοποίηση**: Αυτή βελτιώνει τον συγχρονισμό και τη διαδικασία δημιουργίας αντιγράφων ασφαλείας.
***Αρχειοθέτηση των ιστορικών δεδομένων**: Τα δεδομένα που δεν χρησιμοποιούνται συχνά μεταφέρονται σε άλλες βάσεις δεδομένων ή αποθηκευμένους πίνακες. Αυτό διατηρεί τους πίνακες μικρούς και επίσης, βελτιώνει το χρόνο της αποθήκευσης του αντιγράφου ασφαλείας.
***Καλή διαμόρφωση υλικού**: Το υλικό των υπολογιστών που φιλοξενεί τις βάσεις δεδομένων πρέπει να μπορεί να υποστηρίζει πολλούς χρήστες και να διασφαλίζει γρήγορους χρόνους ανταπόκρισης.
  
Σε ένα σύστημα επεξεργασίας συναλλαγών υπάρχουν πέντε διαφορετικοί τύποι αρχείων. Το σύστημα επεξεργασίας συναλλαγών χρησιμοποιεί τα παρακάτω αρχεία για να αποθηκεύσει και να οργανώσει τα δεδομένα συναλλαγής του:
***Κύριο αρχείο**: Περιέχει πληροφορίες για την επιχειρησιακή κατάσταση ενός οργανισμού. Οι περισσότερες συναλλαγές και βάσεις δεδομένων είναι αποθηκευμένες στο κύριο αρχείο.
***Αρχείο συναλλαγών**: Αποτελεί τη συλλογή όλων των συναλλαγών. Βοηθά στην ενημέρωση του κύριου αρχείου και ακόμη λειτουργεί ως ίχνος ελέγχου (audit trail) και ως ιστορικό συναλλαγών.
***Αρχείο αναφοράς**: Περιέχει δεδομένα που έχουν μορφοποιηθεί με τρόπο που μπορούν να κατανοηθούν από ένα χρήστη.
***Αρχείο εργασίας**: Προσωρινά αρχεία στο σύστημα, που χρησιμοποιούνται κατά τη διάρκεια της επεξεργασίας.
***Αρχείο προγράμματος**: Περιλαμβάνει τις οδηγίες για την επεξεργασία των δεδομένων.

### Αποθήκη δεδομένων
:*Κυρίως άρθρο:* Αποθήκη δεδομένων

Μια αποθήκη δεδομένων είναι μία βάση δεδομένων που συλλέγει πληροφορίες από διαφορετικές πηγές. Όταν αυτές συγκεντρώνονται σε συναλλαγές σε πραγματικό χρόνο, μπορούν να χρησιμοποιηθούν για ανάλυση αποτελεσματικά, εάν είναι αποθηκευμένες σε μία αποθήκη δεδομένων. Παρέχει δεδομένα, τα οποία είναι παγιωμένα, θεματικά προσανατολισμένα, ιστορικά και μόνο για ανάγνωση:
***Παγιωμένα**: τα δεδομένα είναι οργανωμένα με συνεχείς συμβάσεις ονομασίας, μετρήσεις, ιδιότητες και σημασιολογίες. Επιτρέπονται τα δεδομένα από μία αποθήκη δεδομένων από ολόκληρο τον οργανισμό, να χρησιμοποιούνται αποτελεσματικά, με ένα συνεχή τρόπο.
***Θεματικά προσανατολισμένα**: μεγάλες ποσότητες δεδομένων αποθηκεύονται από ολόκληρο τον οργανισμό. Μερικά δεδομένα μπορεί να είναι άσχετα για αναφορά και να κάνουν δύσκολη την αναζήτηση (querying) των δεδομένων. Οργανώνονται μόνο πληροφορίες κλειδιά για την επιχείρηση από λειτουργικές πηγές, ώστε να είναι διαθέσιμες για ανάλυση.
***Ιστορικά**: τα συστήματα επεξεργασίας συναλλαγής σε πραγματικό χρόνο αντιπροσωπεύουν την τρέχουσα αξία σε κάθε στιγμή. Ένα παράδειγμα θα μπορούσαν να είναι τα επίπεδα των αποθεμάτων. Αν διατηρούνται παρελθόντα δεδομένα, η αναζήτηση δεδομένων θα μπορούσε να ανταποκρίνεται διαφορετικά. Αποθηκεύονται σειρές στιγμιότυπων για τα λειτουργικά δεδομένα ενός οργανισμού, τα οποία δημιουργήθηκαν κατά τη διάρκεια μίας χρονικής περιόδου.
***Μόνο για ανάγνωση**: όταν δεδομένα μετακινηθούν στην αποθήκη δεδομένων, γίνονται μόνο για ανάγνωση, εκτός και αν ήταν λάθος. Από τη στιγμή που αντιπροσωπεύουν ένα στιγμιότυπο μίας συγκεκριμένης στιγμής, δε μπορούν ποτέ ξανά να ενημερωθούν. Μόνο λειτουργίες, που προκύπτουν από μία αποθήκη δεδομένων είναι φορτώσιμα και αναζητήσιμα δεδομένα.

### Διαδικασίες δημιουργίας αντιγράφων ασφαλείας

Επειδή οι επιχειρησιακοί οργανισμοί έχουν γίνει πολύ εξαρτώμενοι από τα συστήματα επεξεργασίας συναλλαγών, μία κατάρρευση του συστήματος μπορεί να σταματήσει την κανονική ρουτίνα της επιχείρησης, και κατά συνέπεια να σταματήσουν οι λειτουργίες της για συγκεκριμένη ποσότητα χρόνου. Για την πρόβλεψη της απώλειας δεδομένων και την ελαχιστοποίηση  διαταράξεων, κατά τη κατάρρευση ενός συστήματος επεξεργασίας συναλλαγών, έχουν τεθεί σε χρήση μία καλοσχεδιασμένη δημιουργία αντιγράφων ασφαλείας και μία διαδικασία ανάκτησης. Η διαδικασία ανάκτηση μπορεί να επανακτήσει το σύστημα όταν αυτό πέφτει.

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

*Ημερολόγιο γεγονότων: Ένα ημερολόγιο γεγονότων διατηρεί  μία διαδρομή ελέγχου των συναλλαγών και των αλλαγών της βάσης δεδομένων.  Οι καταγραφές των συναλλαγών και των αλλαγών της βάσης δεδομένων χρησιμοποιούν ένα αρχείο καταγραφής συναλλαγών, που καταγράφει  όλα τα απαραίτητα δεδομένα για κάθε συναλλαγή, συμπεριλαμβάνοντας αξίες δεδομένων, το χρόνο της συναλλαγής και τον αριθμό τερματισμού. Μία καταγραφή των αλλαγών της βάσης δεδομένων εμπεριέχει προηγούμενα ή μεταγενέστερα αντίγραφα αρχείων που έχουν τροποποιηθεί από τις συναλλαγές.
*Σημείο ελέγχου: Ο σκοπός του σημείου ελέγχου είναι να παρέχει ένα στιγμιότυπο των δεδομένων εντός της βάσης δεδομένων. Ένα σημείο ελέγχου, γενικά, είναι οποιαδήποτε ταυτοποίηση ή κάποια άλλη παραπομπή που ταυτοποιεί, σε κάποιο σημείο του χρόνου, τη κατάσταση της βάσης δεδομένων. Οι μετατροπές στις σελίδες της βάσης δεδομένων εκτελούνται στη μνήμη και δεν καταγράφονται απαραίτητα στο δίσκο μετά από κάθε ενημέρωση. Ως εκ τούτου, περιοδικά, το σύστημα της βάσης δεδομένων πρέπει να εκτελεί ένα σημείο ελέγχου για να καταγράφει τις ενημερώσεις αυτές, οι οποίες κρατούνται στη μνήμη του δίσκου αποθήκευσης. Η καταγραφή αυτών των ενημερώσεων στο δίσκο αποθήκευσης δημιουργεί ένα σημείο στο χρόνο, στο οποίο το σύστημα της βάσης δεδομένων μπορεί να εφαρμόσει αλλαγές, οι οποίες συμπεριλαμβάνονται σε μία καταγραφή συναλλαγής, κατά τη διάρκεια μιας ανάκτησης, μετά από μία αναπάντεχη πτώση ή κατάρρευση του συστήματος της βάσης δεδομένων.

Αν ο έλεγχος σημείου διακοπεί και η ανάκτηση είναι απαραίτητη, τότε το σύστημα βάσης δεδομένων πρέπει να ξεκινήσει την ανάκτηση από ένα προηγούμενο επιτυχημένο σημείο ελέγχου. Η δημιουργία σημείου ελέγχου μπορεί να είναι είτε συνεπής ως προς τη συναλλαγή είτε ασυνεπής ( καλείται επίσης και ασαφής δημιουργία σημείου ελέγχου ). Η συνεπής δημιουργία σημείου ελέγχου παράγει μία επίμονη εικόνα της βάσης δεδομένων, η οποία δεν επαρκεί για να πραγματοποιήσει επαναφορά της κατάστασης της βάσης δεδομένων. Για την πραγματοποίηση της βάσης δεδομένων, χρειάζεται επιπρόσθετη πληροφόρηση, που τυπικά βρίσκεται στις καταχωρήσεις συναλλαγών. Η συνεπής δημιουργία σημείου ελέγχου των συναλλαγών αναφέρεται σε μία συνεπή βάση δεδομένων, η οποία δεν περιέχει απαραίτητα όλες τις τελευταίες πραγματοποιούμενες συναλλαγές, αλλά όλες τις μετατροπές που έγιναν από τις συναλλαγές. Οι μετατροπές αυτές διαπράχθηκαν τη στιγμή, που ξεκίνησε η δημιουργία ελέγχου, δηλαδή είναι πλήρως της παρούσης. Μία μη συνεπής συναλλαγή αναφέρεται σε ένα σημείο ελέγχου, το οποίο δεν είναι απαραίτητα μία συνεπής βάση δεδομένων και δε μπορεί να ανακτηθεί σε ένα, χωρίς όλα τα καταχωρημένα αρχεία που έχουν παραχθεί για ανοιχτές συναλλαγές, που βρίσκονται στο σημείο ελέγχου. Ανάλογα με τον τύπο διαχείρισης της βάσης δεδομένων, εφαρμόζεται ένα σημείο ελέγχου που μπορεί να ενσωματώνει τους δείκτες ή τις σελίδες αποθήκευσης (δεδομένα του χρήστη) ή και τα δύο. Εάν δεν περιλαμβάνονται δείκτες μέσα στο σημείο ελέγχου, αυτοί πρέπει να δημιουργούνται  όταν η βάση δεδομένων αποκαθίσταται από την εικόνα του σημείου ελέγχου.
*Διαχειριστής Ανάκτησης: Ένας διαχειριστής ανάκτησης είναι ένα πρόγραμμα, το οποίο επαναφέρει τη βάση δεδομένων σε μία σωστή κατάσταση, η οποία μπορεί να επανεκκινήσει την επεξεργασία συναλλαγής.
Ανάλογα με το είδος αποτυχίας του συστήματος μπορεί να υπάρχουν δυο διαφορετικές διαδικασίες που χρησιμοποιούνται. Γενικά, οι διαδικασίες συμπεριλαμβάνουν την αποκατάσταση των δεδομένων, που έχουν συλλεχθεί από ένα αντίγραφο ασφαλείας συσκευής και στη συνέχεια την επανεκτέλεση της επεξεργασίας των συναλλαγών. Δύο τύποι ανάκτησης είναι η προς τα πίσω ανάκτηση και η προς τα εμπρός ανάκτηση:
*Προς τα πίσω ανάκτηση: Χρησιμοποιείται για την αναίρεση (undo) ανεπιθύμητων αλλαγών στην βάση δεδομένων. Δεσμεύει τις αλλαγές που έγιναν από τις συναλλαγές, οι οποίες έχουν ματαιωθεί. Πρόκειται για την λογική επανεπεξεργασία κάθε συναλλαγής, η οποία είναι πολύ χρονοβόρα.
*Προς τα εμπρός ανάκτηση: Ξεκινάει με την δημιουργία ενός αντιγράφου ασφαλείας της βάσης δεδομένων. Στην συνέχεια θα γίνει επανεπεξεργασία της συναλλαγής, σύμφωνα με το ημερολόγιο συναλλαγών, που προέκυψε στο διάστημα μεταξύ της δημιουργίας αντιγράφων ασφαλείας και της παρούσας στιγμής. Είναι πολύ πιο γρήγορη και πιο ακριβής.

### Τύποι διαδικασιών δημιουργίας αντιγράφων ασφαλείας

**Από τον παππού προς τον πατέρα προς τον γιο** και **κατά μέρους δημιουργία αντιγράφων ασφαλείας**

#### Από τον παππού προς τον πατέρα προς τον γιο

Αυτή η διαδικασία αναφέρεται τουλάχιστον στις τελευταίες τρεις γενιές των αντιγράφων ασφαλείας των κύριων αρχείων.  Κατά συνέπεια, το πιο πρόσφατο αντίγραφο ασφαλείας είναι ο γιος και το παλαιότερο αντίγραφο ασφαλείας είναι ο παππούς. Συνήθως, χρησιμοποιούνται για ένα σύστημα επεξεργασίας συναλλαγών με μαγνητική ταινία. Εάν το σύστημα αποτύχει κατά την διάρκεια της εκτέλεσης μιας δέσμης, το κύριο αρχείο αναδημιουργείται χρησιμοποιώντας το αντίγραφο ασφαλείας του γιου και στη συνέχεια γίνεται επανεκκίνηση της δέσμης. Ωστόσο, εάν το αντίγραφο ασφαλείας-γιος αποτύχει, είναι αλλοιωμένο ή κατεστραμμένο, τότε  είναι απαραίτητη η επόμενη γενιά αντιγράφων ασφαλείας-πατέρας. Ομοίως, εάν αυτό αποτύχει, τότε είναι απαραίτητη η επόμενη γενιά αντιγράφων ασφαλείας (παππούς). Φυσικά, όσο παλαιότερη είναι η γενιά, τόσα περισσότερα δεδομένα μπορεί να είναι εκτός ημερομηνίας. Οι οργανισμοί μπορούν να έχουν μέχρι και είκοσι γενιές αντιγράφων ασφαλείας.

#### Κατά μέρους αντίγραφα ασφαλείας

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

### Ενημέρωση σε μία δέσμη

Αυτή χρησιμοποιείται όταν οι συναλλαγές καταγράφονται σε χαρτί ( όπως λογαριασμοί και τιμολόγια ) ή όταν αποθηκεύονται σε μία μαγνητική ταινία.  Οι συναλλαγές θα συλλεχθούν και θα ενημερωθούν σαν μία δέσμη όταν είναι βολική και οικονομική η επεξεργασία τους. Ιστορικά, αυτή ήταν η πιο κοινή μέθοδος όταν δεν υπήρχε η τεχνολογική πληροφόρηση, ώστε να επιτρέπει την επεξεργασία σε πραγματικό χρόνο.
Τα δύο στάδια της επεξεργασίας δέσμης είναι:
*Συλλογή και αποθήκευση των δεδομένων της συναλλαγής μέσα σε ένα αρχείο συναλλαγής – αυτό συμπεριλαμβάνει ταξινόμηση των δεδομένων σε διαδοχική σειρά.
*Επεξεργασία των δεδομένων με ενημέρωση του κύριου αρχείου, το οποίο μπορεί να είναι δύσκολο. Αυτό μπορεί να περιέχει πρόσθεση δεδομένων, ενημερώσεις και διαγραφές, που ενδεχομένως χρειάζεται να γίνουν με συγκεκριμένη σειρά. Αν προκύψει ένα λάθος, τότε ολόκληρη η δέσμη αποτυγχάνει.

Η ενημέρωση μιας δέσμης απαιτεί διαδοχική πρόσβαση (sequential access) επειδή χρησιμοποιεί μία μαγνητική ταινία και αυτός είναι ο μόνος τρόπος να έχει πρόσβαση σε δεδομένα. Μία δέσμη θα αρχίσει από την αρχή μιας ταινίας και θα τη διαβάσει κατά τη σειρά αποθήκευσης• είναι πολύ χρονοβόρο να εντοπίσει συγκεκριμένες συναλλαγές.

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

### Ενημέρωση σε πραγματικό χρόνο

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

Η ενημέρωση σε πραγματικό χρόνο χρησιμοποιεί την άμεση πρόσβαση στα δεδομένα (direct access). Αυτό προκύπτει όταν τα δεδομένα είναι προσβάσιμα, χωρίς την πρόσβαση σε δεδομένα προηγούμενων στοιχείων. Η συσκευή αποθήκευσης αποθηκεύει δεδομένα σε μία συγκεκριμένη τοποθεσία, βασισμένη σε μία μαθηματική διαδικασία. Αυτή θα υπολογίζεται στη συνέχεια, για να βρει μία κατά προσέγγιση τοποθεσία των δεδομένων. Εάν τα δεδομένα δεν έχουν βρεθεί στη θέση αυτή, θα τα αναζητήσει μέσα από διαδοχικές θέσεις μέχρι να βρεθούν.

Η τεχνολογική πληροφόρηση, που χρησιμοποιείται μπορεί να είναι δευτερογενές μέσο αποθήκευσης, που μπορεί να αποθηκεύει μεγάλες ποσότητες δεδομένων και να παρέχει γρήγορη πρόσβαση τοιουτοτρόπως η κοινή χρήση του μαγνητικού δίσκου.

## Παραπομπές


## Δείτε επίσης
* Επεξεργασία συναλλαγών
* ACID

## Πρόσθετη ανάγνωση
* Gerhard Weikum, Gottfried Vossen, Transactional information systems: theory, algorithms, and the practice of concurrency control and recovery, Morgan Kaufmann, 2002, 

## Εξωτερικοί σύνδεσμοι
* Παράδειγμα TPS

Κατηγορία:Επεξεργασία συναλλαγών