6.1

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

Οι σχεσιακές βάσεις δεδομένων έχουν καθιερωθεί και χρησιμοποιούνται για την αποθήκευση δεδομένων για δεκαετίες, ενώ η SQL είναι η γλώσσα που επικράτησε να χρησιμοποιείται για την αλληλεπίδραση με αυτές. Την τελευταία δεκαετία όμως, εμφανίστηκε η ανάγκη για ανάπτυξη εφαρμογών, στο διαδίκτυο κυρίως, των οποίων οι απαιτήσεις δεν καλύπτονταν σε ικανοποιητικό βαθμό από τις σχεσιακές βάσεις δεδομένων. Οι εφαρμογές αυτές (μπορούν να χαρακτηριστούν //εφαρμογές ευρείας κλίμακας// - large scale applications) έχουν την ανάγκη αποθήκευσης και επεξεργασίας μεγάλων ποσοτήτων δεδομένων. Επίσης, η χρήση τους γίνεται από μεγάλους πληθυσμούς χρηστών, οι οποίοι μπορεί να είναι διεσπαρμένοι σε όλο τον πλανήτη και είναι ιδιαίτερα απαιτητικοί όσον αφορά την ταχύτητα απόκρισης των συστημάτων αυτών. Οι σχεσιακές βάσεις δεδομένων δεν είναι σχεδιασμένες να αντιμετωπίζουν τα μεγέθη που χρειάζονται να διαχειριστούν οι σύγχρονες εφαρμογές αυτού του τύπου, δυσκολεύονται να ανταπεξέλθουν στις προκλήσεις σε ευελιξία (agility) που απαιτούνται και δεν μπορούν εύκολα να επωφεληθούν από τη φθηνή αποθηκευτική και επεξεργαστική ισχύ που είναι διαθέσιμες σήμερα.

Η προσπάθεια κάλυψης των αναγκών αυτών δημιούργησε και έφερε στο προσκήνιο μια νέα ομάδα βάσεων δεδομένων, με διαφορετικά χαρακτηριστικά από τις σχεσιακές, μέλη της οποίας καθιερώνονται όλο και περισσότερο. Η ομάδα των βάσεων δεδομένων αυτών ονομάστηκε **NoSQL (Not Only SQL)** και περιλαμβάνει μια ποικιλία από διαφορετικές τεχνολογίες που αναπτύχθηκαν σαν απόκριση στις νέες απαιτήσεις.

Η εμφάνιση των NoSQL βάσεων είναι σχετικά πρόσφατη και, ως εκ τούτου, είναι δύσκολο να καταλήξουμε σε ένα περιεκτικό ορισμό του τι περιλαμβάνει η τεχνολογία. Σε γενικές γραμμές, μπορεί να θεωρηθεί ως μία οικογένεια τεχνολογιών βάσεων δεδομένων που αναπτύσσονται με σκοπό το αποδοτικό χειρισμό μεγάλων ποσοτήτων αδόμητων και ημι-δομημένων δεδομένων. Εταιρείες όπως η Google, η Amazon, και η Facebook κάνουν εκτεταμένη χρήση της τεχνολογίας αυτής για να στεγάσουν τις τεράστιες μάζες δεδομένων που παράγονται από τους χρήστες τους.

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