2.3

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

Η εμφάνιση των Βάσεων Δεδομένων από τα μέσα της δεκαετίας του 1960 κυρίως, συμπίπτει χρονικά με τη δυνατότητα της άμεσης αποθήκευσης σε σκληρούς δίσκους και δισκέτες. Αυτό επιτρέπει την διαδραστική χρήση σε αντίθεση με τα taped-based συστήματα του παρελθόντος. Έχουμε ήδη αναφέρει ότι εκείνη την εποχή ό βασικός στόχος ήταν να γίνουν τα δεδομένα ανεξάρτητα από τη λογική της εφαρμογής. αποκλειστικά σε κάποια προγράμματα, έτσι ώστε να μπορούν να διατεθούν σε διαφορετικές εφαρμογές. Η πρώτη γενιά των συστημάτων βάσεων δεδομένων ήταν βάσεις πλοήγησης (navigational), όπου οι εφαρμογές συνήθως είχαν πρόσβαση σε δεδομένα ακολουθώντας δείκτες από μία εγγραφή σε μία άλλη. Τα δύο **κύρια (προ - σχεσιακά) μοντέλα** αυτή την εποχή ήταν: Για να καταλάβουμε την δομή του ιεραρχικού μοντέλου χρειάζεται να ξεκαθαρίσουμε την έννοια της οντότητας. Με τον όρο **οντότητα** (entity) αναφερόμαστε σε κάθε αντικείμενο, έννοια, πρόσωπο ή κατάσταση που έχει μια ανεξάρτητη ύπαρξη. Είναι κάτι ξεχωριστό και μπορούμε να συγκεντρώσουμε πληροφορίες γι’ αυτό. //Οι οντότητες στο ιεραρχικό μοντέλο μοιάζουν με απολήξεις από κλαδιά δένδρων και τοποθετούνται σε επίπεδα ιεραρχίας//. Τα κλαδιά παριστάνουν τις συσχετίσεις ανάμεσα στις οντότητες. Από μια οντότητα που βρίσκεται σ’ ένα ανώτερο επίπεδο ξεκινούν πολλά κλαδιά, καθένα από τα οποία καταλήγει σε μια οντότητα που βρίσκεται σ’ ένα χαμηλότερο επίπεδο. Αλλά, σε κάθε οντότητα που βρίσκεται σ’ ένα χαμηλότερο επίπεδο αντιστοιχεί μία και μόνο μία οντότητα που βρίσκεται σ’ ένα ανώτερο επίπεδο. Το μοντέλο αυτό ήταν το πρώτο που εμφανίσθηκε αλλά σήμερα θεωρείται δύσχρηστο και ξεπερασμένο. Στο **δικτυωτό** (network) μοντέλο, υπάρχει επίσης ένα επίπεδο ιεραρχίας αλλά //κάθε στοιχείο μπορεί να συσχετισθεί με πολλά στοιχεία είτε σ’ ένα κατώτερο ή σ’ ένα ανώτερο επίπεδο.// Το **Σχεσιακό Μοντέλο** - Relational Model, προτάθηκε για πρώτη φορά το 1970 από τον Edgar F. Codd, ο οποίος σκέφτηκε ότι οι αιτήσεις του χρήστη θα πρέπει να αναζητούν δεδομένα με **βάση το περιεχόμενο** και όχι όπως πριν ακολουθώντας απλά συνδέσμους. Τα σχεσιακά συστήματα χρειάστηκαν για την υλοποίηση τους σοβαρές ανάγκες όσον αφορά τους πόρους και κυρίως τις δυνατότητες επεξεργασίας με αποτέλεσμα να καθυστερήσει η ανάπτυξη τους μέχρι τα μέσα της δεκαετίας του 1980. Τότε το υλικό των υπολογιστών αναπτύχθηκε ανάλογα και έγινε ικανό να τα υποστηρίξει. Από τις αρχές του 1990, τα σχεσιακά συστήματα ήταν κυρίαρχα σε όλες τις εφαρμογές μεγάλης κλίμακας επεξεργασίας στοιχείων και παραμένουν κυρίαρχα μέχρι και σήμερα, εκτός από εξειδικευμένες περιοχές. Η κυρίαρχη γλώσσα των Βάσεων Δεδομένων είναι το πρότυπο SQL (Structured Query Language). Επειδή το Σχεσιακό μοντέλο είναι μεν μία καλή βάση για μία γλώσσα ερωταπαντήσεων αλλά υστερεί σαν γλώσσα μοντελοποίησης, αναπτύχθηκε το μοντέλο **Οντοτήτων-Συσχετίσεων** (Entity-Relationship model) που κέρδισε τη μάχη για το σχεδιασμό βάσεων δεδομένων. Από το 1970 και μετά, η τεχνολογία βάσεων δεδομένων συμβαδίζει με τις προοπτικές που προσφέρουν η αύξηση της χωρητικότητας και της ταχύτητας των υπολογιστών. Στο Σχεσιακό μοντέλο όλα τα δεδομένα αποθηκεύονται σε πίνακες με συγκεκριμένη δομή γραμμών και στηλών, που όσο αυξάνονται οι απαιτήσεις όλο και περισσότερο θεωρείται ως περιορισμός κατά τον χειρισμό πληροφοριών. Η δυσκολία μοντελοποίησης που θίξαμε στην προηγούμενη παράγραφο, μεταφράζεται σε αδυναμία αναπαράστασης του φυσικού κόσμου, αφού σήμερα απαιτείται η δυνατότητα ορισμού νέων τύπων δεδομένων και λειτουργιών για την υλοποίηση π.χ. μίας εφαρμογή GIS η οποία χρειάζεται υποστήριξη για γεωμετρικά αντικείμενα (γραμμές, πολύγωνα) και πράξεις μεταξύ των γεωμετρικών αντικειμένων (τομές γραμμών, επικάλυψη πολυγώνων κλπ.). //Τα παραδοσιακά σχεσιακά ΣΔΒΔ δεν επιτρέπουν τον ορισμό νέων τύπων δεδομένων και λειτουργιών, οπότε η διαχείριση των αντικειμένων εμπεριέχεται στη λογική της εφαρμογής και όχι στο ΣΔΒΔ//. Διάφορες προσπάθειες έχουν γίνει για να αντιμετωπιστεί αυτό το πρόβλημα, πολλές από αυτές οδηγούν σε λύσεις όπως οι **«μετά-σχεσιακές» (αντικειμενοστραφή, NoSQL, NewSQL).** Σε ένα **αντικειμενοστραφές** ΣΔΒΔ η πληροφορία προσεγγίζεται με την **μορφή** των αντικειμένων που χρησιμοποιούνται στον αντικειμενοστραφή προγραμματισμό. Οι ΒΔ δηλαδή κρατούν τα δεδομένα τους σαν αντικείμενα, σύμφωνα με τις αρχές του αντικειμενοστραφούς προγραμματισμού. Οι **NoSQL** βάσεις δεδομένων χρησιμοποιούνται όλο και περισσότερο για την διαχείριση τεράστιου όγκου δεδομένων και σε web εφαρμογές πραγματικού χρόνου. Τα συστήματα NoSQL ονομάζονται επίσης "Not only SQL" για να τονιστεί η δυνατότητα υποστήριξης SQL. Μια NoSQL βάση δεδομένων παρέχει ένα μηχανισμό για την αποθήκευση και την ανάκτηση των δεδομένων που διαμορφώνεται σε άλλα μέσα εκτός των πινάκων, που στηρίζουν τις παραδοσιακές  σχεσιακές βάσεις δεδομένων. //Αξιοσημείωτο ότι δεν ακολουθεί το πακέτο ACID ως εγγύηση για την αξιοπιστία της ΒΔ αλλά το θεώρημα CAP//. Η απάντηση των σχεσιακών συστημάτων διαχείρισης ΒΔ στο παραπάνω μοντέλο, είναι η κατηγορία **NewSQL**. **Αποτελούν σύγχρονα σχεσιακά ΣΔΒΔ που επιδιώκουν να παρέχουν την ίδια απόδοση των NoSQL συστημάτων για τις ηλεκτρονικές συναλλαγές, διατηρώντας τις ACID εγγυήσεις αξιοπιστίας** ενός παραδοσιακού συστήματος βάσης δεδομένων.
 * το **ιεραρχικό** μοντέλο (Hierarchical Model) το οποίο έχει μια ιεραρχική δομή που θυμίζει δένδρο
 * το **δικτυωτό** μοντέλο - Network Model

**Ερωτήσεις / Δραστηριότητες**
 * 1) Τι είναι οντότητα;
 * 2) Τι είναι ιδιότητες ή χαρακτηριστικά των οντοτήτων;
 * 3) Τι είναι οι συσχετίσεις μεταξύ των οντοτήτων;
 * 4) Ποια είναι τα κύρια μοντέλα των Βάσεων Δεδομένων;
 * 5) Ποια είναι τα προ-σχεσιακά μοντέλα ΣΔΒΔ;
 * 6) Τι ξέρετε για τα σχεσιακά μοντέλα ΣΔΒΔ;
 * 7) Σε τι επικεντρώνονται τα μετα-σχεσιακά ΣΔΒΔ;
 * 8) Ποιο πακέτο για τις εγγυήσεις αξιοπιστίας ακολουθεί η κατηγορία **NewSQL**;