Το ΣΔΒΔ είναι ένας «μεσάζων» μεταξύ του χρήστη και της βάσης δεδομένων και μόνο μέσω αυτού ο χρήστης μπορεί να ζητήσει πληροφορίες από τη βάση.
Οι βασικές λειτουργίες τις οποίες αναλαμβάνει ένα ΣΔΒΔ είναι όπως είδαμε παραπάνω:
Οργανώνει τη βάση δεδομένων στο μέσο αποθήκευσης (σκληροί δίσκοι, οπτικοί δίσκοι, νέφος κλπ.).
Διαθέτει τους μηχανισμούς για τη διαχείριση των δεδομένων.
Τροφοδοτεί τις εφαρμογές με δεδομένα στη μορφή που αυτές τα ζητούν.
2.2 Χαρακτηριστικά ενός ΣΔΒΔ
Σαν συναλλαγή θα θεωρήσουμε οποιαδήποτε λογική ενέργεια που σχετίζεται με τα δεδομένα. Π.χ. μια μεταφορά κεφαλαίου από ένα λογαριασμό μιας τράπεζας σε έναν άλλο, όσες κινήσεις και να χρειάζεται τελικά είναι μια συναλλαγή.
Την ανάγκη για αξιοπιστία σε οτιδήποτε αφορά τις συναλλαγές στη βάση δεδομένων, έρχεται να εγγυηθεί η αποδοχή των απαιτήσεων ACID (Atomicity, Consistency, Isolation, Durability) - (Ατομικότητα, Συνέπεια, Απομόνωση, Μονιμότητα).
Η Ατομικότητα απαιτεί η τροποποίηση που θα γίνει στην ΒΔ να τηρεί τον κανόνα όλα ή τίποτα, αν δηλαδή ένα μέρος της συναλλαγής αποτύχει, αποτυγχάνει όλη η συναλλαγή και η ΒΔ μένει όπως ήταν πριν εκτελεστεί η συναλλαγή. Η Ατομικότητα σημαίνει ότι οι χρήστες είναι απαλλαγμένοι από τον φόβο μη ολοκληρωμένων συναλλαγών.
Η Συνέπεια διασφαλίζει ότι η ΒΔ διατηρείται σε μια συνεπή κατάσταση, συγκεκριμένα λέει ότι κάθε συναλλαγή θα οδηγεί την βάση δεδομένων από τη μια συνεπή κατάσταση στην άλλη. Σε περίπτωση που μια συναλλαγή παραβιάζει κάποιο κανόνα της συνέπειας, ανακαλείται προκειμένου η ΒΔ να έχει μόνο έγκυρα δεδομένα. Π.χ. αν σε μια ΒΔ ένα πεδίο είναι μόνο για ακέραιους αριθμούς τότε το ΣΔΒΔ μπορεί είτε να απορρίψει απόπειρες για είσοδο δεκαδικών αριθμών είτε να τους στρογγυλοποιήσει. Και οι δυο αυτές ενέργειες διατηρούν την συνέπεια. Υπάρχουν τρία είδη συνέπειας, ισχυρή, ασθενής και ενδεχόμενη, η μελέτη τους όμως ξεφεύγει από το πλαίσιο του παρόντος βιβλίου.
Η Απομόνωση αναφέρεται στην απαίτηση ότι όλες οι ενέργειες δεν μπορούν να έχουν πρόσβαση ή να δουν δεδομένα τα οποία τροποποιούνται εκείνη την στιγμή από μια συναλλαγή η οποία δεν έχει ακόμα ολοκληρωθεί.
Η Μονιμότητα εγγυάται στον χρήστη ότι αν τελειώσει μια συναλλαγή επιτυχώς τότε τα αποτελέσματα της δεν θα χαθούν. Οι αλλαγές που έχει κάνει η συναλλαγή δεν θα χαθούν σε περίπτωση απώλειας ρεύματος ή άλλης καταστροφής.
Για να καταλάβουμε την δομή του ιεραρχικού μοντέλου χρειάζεται να ξεκαθαρίσουμε την έννοια της οντότητας. Με τον όρο οντότητα (entity) αναφερόμαστε σε κάθε αντικείμενο, έννοια, πρόσωπο ή κατάσταση που έχει μια ανεξάρτητη ύπαρξη. Είναι κάτι ξεχωριστό και μπορούμε να συγκεντρώσουμε πληροφορίες γι’ αυτό.
Τα παραδοσιακά σχεσιακά ΣΔΒΔ δεν επιτρέπουν τον ορισμό νέων τύπων δεδομένων και λειτουργιών, οπότε η διαχείριση των αντικειμένων εμπεριέχεται στη λογική της εφαρμογής και όχι στο ΣΔΒΔ. Διάφορες προσπάθειες έχουν γίνει για να αντιμετωπιστεί αυτό το πρόβλημα, πολλές από αυτές οδηγούν σε λύσεις όπως οι «μετάσχεσιακές» (αντικειμενοστραφή, NoSQL, NewSQL).
Το Σχεσιακό Μοντέλο - Relational Model, προτάθηκε για πρώτη φορά το 1970 από τον Edgar F. Codd, ο οποίος σκέφτηκε ότι οι αιτήσεις του χρήστη θα πρέπει να αναζητούν δεδομένα με βάση το περιεχόμενο και όχι όπως πριν ακολουθώντας απλά συνδέσμους.
Επειδή το Σχεσιακό μοντέλο είναι μεν μία καλή βάση για μία γλώσσα ερωταπαντήσεων αλλά υστερεί σαν γλώσσα μοντελοποίησης, αναπτύχθηκε το μοντέλο Οντοτήτων - Συσχετίσεων (Entity - Relationship model) που κέρδισε τη μάχη για το σχεδιασμό βάσεων δεδομένων.
Τα παραδοσιακά σχεσιακά ΣΔΒΔ δεν επιτρέπουν τον ορισμό νέων τύπων δεδομένων και λειτουργιών, οπότε η διαχείριση των αντικειμένων εμπεριέχεται στη λογική της εφαρμογής και όχι στο ΣΔΒΔ.
Σε ένα αντικειμενοστραφές ΣΔΒΔ η πληροφορία προσεγγίζεται με την μορφή των αντικειμένων που χρησιμοποιούνται στον αντικειμενοστραφή προγραμματισμό. Οι ΒΔ δηλαδή κρατούν τα δεδομένα τους σαν αντικείμενα, σύμφωνα με τις αρχές του αντικειμενοστραφούς προγραμματισμού.
Οι NoSQL βάσεις δεδομένων χρησιμοποιούνται όλο και περισσότερο για την διαχείριση τεράστιου όγκου δεδομένων και σε web εφαρμογές πραγματικού χρόνου. Τα συστήματα NoSQL ονομάζονται επίσης "Not only SQL" για να τονιστεί η δυνατότητα υποστήριξης SQL. Μια NoSQL βάση δεδομένων παρέχει ένα μηχανισμό για την αποθήκευση και την ανάκτηση των δεδομένων που διαμορφώνεται σε άλλα μέσα εκτός των πινάκων, που στηρίζουν τις παραδοσιακές σχεσιακές βάσεις δεδομένων.
Αξιοσημείωτο ότι δεν ακολουθεί το πακέτο ACID ως εγγύηση για την αξιοπιστία της ΒΔ αλλά το θεώρημα CAP.
Η απάντηση των σχεσιακών συστημάτων διαχείρισης ΒΔ στο παραπάνω μοντέλο, είναι η κατηγορία NewSQL. Αποτελούν σύγχρονα σχεσιακά ΣΔΒΔ που επιδιώκουν να παρέχουν την ίδια απόδοση των NoSQL συστημάτων για τις ηλεκτρονικές συναλλαγές, διατηρώντας τις ACID εγγυήσεις αξιοπιστίας ενός παραδοσιακού συστήματος βάσης δεδομένων.
Στα ΣΔΒΔ έχει επικρατήσει η αρχιτεκτονική των εξής τριών επιπέδων (ANSI/SPARC):
Εσωτερικό επίπεδο (internal level), έχει να κάνει με την αποθήκευση των αρχείων στον σκληρό δίσκο, δηλ. την πραγματική ή φυσική κατάστασή τους.
Εξωτερικό επίπεδο (external level), έχει να κάνει με τους χρήστες είτε αυτοί είναι απλοί χειριστές, είτε προγραμματιστές ή και οι διαχειριστές της βάσης δεδομένων.
Εννοιολογικό επίπεδο (conceptual level), είναι το ενδιάμεσο επίπεδο που συνδέει τα δύο άλλα και έχει να κάνει με τη λογική σχεδίαση των αρχείων της βάσης δεδομένων.
Κατηγορίες Χρηστών
Οι δυνατότητες του ΣΔΒΔ αξιοποιούνται από διάφορες κατηγορίες χρηστών. Οι κατηγορίες αυτές έχουν ως εξής:
Τελικοί Χρήστες.
Απλούς χρήστες. Στην κατηγορία αυτή ανήκουν οι χρήστες που χρησιμοποιούν κάποιο πρόγραμμα εφαρμογής για να αποκτήσουν πρόσβαση στα δεδομένα της βάσης. Τα δικαιώματα των απλών χρηστών είναι περιορισμένα, ενώ οι λειτουργίες που επιτρέπεται να πραγματοποιήσουν είναι προκαθορισμένες και ρυθμίζονται αναλόγως με τη λειτουργία του συστήματος.
Προχωρημένοι Χρήστες. Στην κατηγορία αυτή ανήκουν οι χρήστες που έχουν επίγνωση της ύπαρξης του ΣΔΒΔ καθώς και της δομής της βάσης. Έχουν τη δυνατότητα να χρησιμοποιούν τη Δομημένη Γλώσσα ερωτημάτων (SQL) για να επικοινωνούν με τη βάση, ενώ σε πολλές περιπτώσεις γράφουν τα δικά τους προγράμματα εφαρμογής.
Προγραμματιστές Εφαρμογών. Ο προγραμματιστής εφαρμογών καλείται να υλοποιήσει τμήματα λογισμικού, τα οποία επικοινωνούν με το ΣΔΒΔ για προσπέλαση και ενημέρωση δεδομένων.
Σχεδιαστές Βάσεων Δεδομένων. Η αναπαράσταση του πραγματικού κόσμου απαιτεί την προσεκτική σχεδίαση της Βάσης Δεδομένων. Αρχικά θα πρέπει να προσδιορισθούν οι απαραίτητες οντότητες και οι συ σχετίσεις που υπάρχουν μεταξύ τους. Στη συνέχεια, η πληροφορία αυτή χρησιμοποιείται για την κατασκευή της εσωτερικής αναπαράστασης της πληροφορίας στη Βάση Δεδομένων του συστήματος. Η διαδικασία αυτή εκτελείται από εξειδικευμένους αναλυτές και σχεδιαστές Βάσεων Δεδομένων, οι οποίοι καλούνται να περιγράψουν τα αντικείμενα του πραγματικού κόσμου με αντικείμενα της Βάσης Δεδομένων. Οι σχεδιαστές έχουν στη διάθεσή τους εργαλεία λογισμικού με τα οποία αυτοματοποιείται η διαδικασία περιγραφής των δεδομένων.
Διαχειριστές Βάσεων Δεδομένων. Στην κατηγορία αυτή ανήκουν οι χρήστες που έχουν επιπλέον δικαιώματα που αφορούν στον τρόπο οργάνωσης των δεδομένων, στον τρόπο λειτουργίας του ΣΔΒΔ, στη διαχείριση των χρηστών και στην αποκατάσταση των δεδομένων σε περιπτώσεις απώλειας δεδομένων λόγω βλαβών του υλικού του συστήματος. Οι διαχειριστές έχουν στη διάθεσή τους εξειδικευμένες εφαρμογές με τις οποίες ελέγχουν την ορθότητα των δεδομένων και φροντίζουν για τη βέλτιστη λειτουργία του συστήματος.
Υποσυστήματα ΣΔΒΔ
Διαχειριστής Αρχείων (file manager). Σε ένα αρχείο αποθηκεύονται δεδομένα, βοηθητικές δομές δεδομένων, το λεξικό δεδομένων και άλλες πληροφορίες απαραίτητες για το ΣΔΒΔ. Ο τρόπος οργάνωσης των αρχείων αυτών ορίζεται από το διαχειριστή αρχείων.
Τα ευρετήρια (index files) είναι επιπλέον βοηθητικές δομές προσπέλασης ενός αρχείου εγγραφών. Αποτελούν δευτερεύοντες δρόμους αναζήτησης σε αρχεία εγγραφών, που προσφέρουν στους χρήστες εναλλακτικούς τρόπους προσπέλασης χωρίς να επηρεάζουν την φυσική τοποθέτηση των εγγραφών στο δίσκο.
Διαχειριστής Αποθήκης (storage manager). Το υποσύστημα αυτό είναι υπεύθυνο για τον τρόπο φυσικής αποθήκευσης των δεδομένων στη δευτερεύουσα μνήμη και για τον έλεγχο της μετακίνησης δεδομένων από και προς την κύρια μνήμη του συστήματος. Καθορίζει τη θέση αποθήκευσης των δεδομένων.
Διαχειριστής Συναλλαγών (transaction manager). Μία συναλλαγή αποτελείται από μία ή περισσότερες λειτουργίες που πρέπει να ολοκληρωθούν. Αν μία από τις λειτουργίες αποτύχει, τότε πρέπει να ακυρωθεί ολόκληρη η συναλλαγή.
Μεταγλωττιστής Ερωτημάτων Data Manipulation Language (DML query compiler). Πρόκειται για το υποσύστημα που είναι υπεύθυνο για τη μεταγλώττιση του ερωτήματος του χρήστη. Το ερώτημα δίνεται σε γλώσσα χειρισμού δεδομένων και μετατρέπεται σε εσωτερική αναπαράσταση κατάλληλη για επεξεργασία. Οι μεταγλωττισμένες εντολές προωθούνται στη μηχανή εκτέλεσης.
2.5 Κατηγορίες ΣΔΒΔ
Τα κεντρικά ΣΔΒΔ υλοποιούνται όταν τα στοιχεία τους βρίσκονται, αποθηκεύονται και διατηρούνται σε μια ενιαία θέση. Αυτή η θέση είναι πολύ συχνά ένας κεντρικός υπολογιστής. Στις περισσότερες περιπτώσεις, μια κεντρική βάση δεδομένων θα χρησιμοποιηθεί από έναν οργανισμό ή ένα ίδρυμα (π.χ. κάποια εταιρεία επιχειρήσεων ή ένα πανεπιστήμιο.) Οι χρήστες έχουν πρόσβαση σε μια κεντρική βάση δεδομένων μέσω ενός δικτύου υπολογιστών.
Όταν άρχισε η εξέλιξη και διάδοση των προσωπικών υπολογιστών με παράλληλη μείωση του κόστους τους και αναπτύχθηκαν τα δίκτυα επικοινωνίας δεδομένων, τα ΣΔΒΔ άρχισαν να αναπτύσσονται πάνω σε ένα νέο μοντέλο, το μοντέλο πελάτη - εξυπηρετητή (client - server). Σύμφωνα με το μοντέλο αυτό, τόσο ο κεντρικός υπολογιστής όσο και οι υπολογιστές που χρησιμοποιούν οι χρήστες είναι προσωπικοί υπολογιστές και συνδέονται μεταξύ τους μέσω τοπικού δικτύου. Συνήθως, ο κεντρικός υπολογιστής είναι ισχυρότερος και διαθέτει μεγάλες αποθηκευτικές μονάδες. Στον κεντρικό υπολογιστή είναι αποθηκευμένα τα δεδομένα της βάσης και είναι εγκατεστημένο το ΣΔΒΔ και ονομάζεται εξυπηρετητής (server). Στους υπόλοιπους υπολογιστές (σταθμούς εργασίας), "τρέχουν" οι εφαρμογές επεξεργασίας και εκμετάλλευσης των δεδομένων της βάσης. Οι εφαρμογές αυτές, που μπορεί να είναι εφαρμογές ενσωματωμένες στο ΣΔΒΔ ή ανεξάρτητες εφαρμογές που έχει αναπτύξει τρίτος κατασκευαστής, ονομάζονται πελάτες (clients).
Μια Kατανεμημένη Βάση Δεδομένων (ΚΒΔ) είναι η βάση δεδομένων στην οποία τμήματά της αποθηκεύονται σε πολλούς υπολογιστές σε ένα δίκτυο. Οι χρήστες έχουν πρόσβαση στο τμήμα της βάσης δεδομένων στην τοποθεσία τους, έτσι ώστε να έχουν πρόσβαση στα δεδομένα που σχετίζονται με τα καθήκοντά τους, χωρίς να επηρεάζεται η εργασία των άλλων χρηστών. Ένα κεντρικό κατανεμημένο σύστημα διαχείρισης βάσεων δεδομένων ΚΣΔΒΔ διαχειρίζεται την βάση δεδομένων σαν να ήταν όλα αποθηκευμένα στον ίδιο υπολογιστή. Το ΚΣΔΒΔ συγχρονίζει όλα τα δεδομένα περιοδικά και σε περίπτωση που πολλοί χρήστες πρέπει να έχουν πρόσβαση στα ίδια δεδομένα, διασφαλίζει ότι οι διαγραφές και ενημερώσεις σε μια τοποθεσία, αυτόματα αντικατοπτρίζονται στα δεδομένα που είναι αποθηκευμένα οπουδήποτε αλλού.