NoSQL Tutorial: Τι είναι, Τύποι βάσεων δεδομένων NoSQL & Παράδειγμα

Τι είναι το NoSQL;

NoSQL Η βάση δεδομένων είναι ένα μη σχεσιακό σύστημα διαχείρισης δεδομένων, το οποίο δεν απαιτεί σταθερό σχήμα. Αποφεύγει τις ενώσεις και είναι εύκολο να κλιμακωθεί. Ο κύριος σκοπός της χρήσης μιας βάσης δεδομένων NoSQL είναι για κατανεμημένες αποθήκες δεδομένων με τεράστιες ανάγκες αποθήκευσης δεδομένων. Το NoSQL χρησιμοποιείται για μεγάλα δεδομένα και εφαρμογές ιστού σε πραγματικό χρόνο. Για παράδειγμα, εταιρείες όπως το Twitter, το Facebook και η Google συλλέγουν terabyte δεδομένων χρηστών κάθε μέρα.

Βάση δεδομένων NoSQL σημαίνει "Not Only SQL" ή "Not SQL". Αν και ένας καλύτερος όρος θα ήταν "NoREL", το NoSQL έπιασε. Ο Carl Strozz εισήγαγε την έννοια NoSQL το 1998.

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

Βάση δεδομένων NoSQL

Γιατί NoSQL;

Η έννοια των βάσεων δεδομένων NoSQL έγινε δημοφιλής σε γίγαντες του Διαδικτύου όπως η Google, το Facebook, Amazonκ.λπ. που ασχολούνται με τεράστιους όγκους δεδομένων. Ο χρόνος απόκρισης του συστήματος γίνεται αργός όταν χρησιμοποιείτε RDBMS για τεράστιους όγκους δεδομένων.

Για να επιλύσουμε αυτό το πρόβλημα, θα μπορούσαμε να "αναβαθμίσουμε" τα συστήματά μας αναβαθμίζοντας το υπάρχον υλικό μας. Αυτή η διαδικασία είναι ακριβή.

Η εναλλακτική λύση για αυτό το ζήτημα είναι να διανεμηθεί το φορτίο της βάσης δεδομένων σε πολλούς κεντρικούς υπολογιστές κάθε φορά που το φορτίο αυξάνεται. Αυτή η μέθοδος είναι γνωστή ως "scaling out".

NoSQL

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

Σύντομο ιστορικό των βάσεων δεδομένων NoSQL

  • 1998- Ο Carlo Strozzi χρησιμοποιεί τον όρο NoSQL για την ελαφριά, ανοιχτού κώδικα σχεσιακή βάση δεδομένων του
  • 2000- Βάση δεδομένων γραφημάτων Neo4j εκτοξεύεται
  • 2004- Κυκλοφορεί το Google BigTable
  • 2005- CouchDB εκτοξεύεται
  • 2007- Η ερευνητική εργασία με θέμα Amazon Η Ντιναμό απελευθερώνεται
  • 2008- Facebooks open sources το Cassandra σχέδιο
  • 2009- Ο όρος NoSQL επανεισαχθεί

Χαρακτηριστικά του NoSQL

Μη σχεσιακό

  • Οι βάσεις δεδομένων NoSQL δεν ακολουθούν ποτέ το σχεσιακό μοντέλο
  • Ποτέ μην παρέχετε πίνακες με επίπεδες εγγραφές σταθερής στήλης
  • Εργαστείτε με αυτοτελή αδρανή ή BLOBs
  • Δεν απαιτεί αντικειμενική σχέση αντιστοίχισης και κανονικοποίηση δεδομένων
  • Δεν υπάρχουν πολύπλοκα χαρακτηριστικά όπως γλώσσες ερωτημάτων, προγράμματα σχεδιασμού ερωτημάτων, συνδέσεις ακεραιότητας αναφοράς, ACID

Χωρίς σχήμα

  • Οι βάσεις δεδομένων NoSQL είναι είτε χωρίς σχήματα είτε έχουν χαλαρά σχήματα
  • Μην απαιτείται κανενός είδους ορισμός του σχήματος των δεδομένων
  • Προσφέρει ετερογενείς δομές δεδομένων στον ίδιο τομέα
Χαρακτηριστικά του NoSQL
Το NoSQL είναι Χωρίς Σχήμα

Απλό API

  • Προσφέρει εύχρηστες διεπαφές για αποθήκευση και αναζήτηση δεδομένων
  • Τα API επιτρέπουν μεθόδους χειρισμού και επιλογής δεδομένων χαμηλού επιπέδου
  • Πρωτόκολλα που βασίζονται σε κείμενο που χρησιμοποιούνται κυρίως με HTTP REST με JSON
  • Συνήθως δεν χρησιμοποιείται καμία τυπική γλώσσα ερωτημάτων NoSQL
  • Βάσεις δεδομένων με δυνατότητα Web που εκτελούνται ως υπηρεσίες που αντιμετωπίζουν το Διαδίκτυο

Διανέμονται

  • Πολλές βάσεις δεδομένων NoSQL μπορούν να εκτελεστούν με κατανεμημένο τρόπο
  • Προσφέρει δυνατότητες αυτόματης κλιμάκωσης και αποτυχίας
  • Συχνά η έννοια του ACID μπορεί να θυσιαστεί για επεκτασιμότητα και απόδοση
  • Συνήθως δεν υπάρχει σύγχρονη αναπαραγωγή μεταξύ κατανεμημένων κόμβων.
  • Παρέχοντας μόνο την τελική συνέπεια
  • Κοινόχρηστο τίποτα Archiδομή. Αυτό επιτρέπει λιγότερο συντονισμό και μεγαλύτερη κατανομή.
Χαρακτηριστικά του NoSQL
Το NoSQL δεν είναι κοινόχρηστο τίποτα.

Τύποι βάσεων δεδομένων NoSQL

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

Τύποι βάσεων δεδομένων NoSQL:

  • Βάσει ζεύγους κλειδιού-τιμής
  • Γράφημα προσανατολισμένο στη στήλη
  • Βάσει γραφημάτων
  • Προσανατολισμός εγγράφων

Τύποι βάσεων δεδομένων NoSQL

Βάσει ζεύγους βασικών τιμών

Τα δεδομένα αποθηκεύονται σε ζεύγη κλειδιών/τιμών. Είναι σχεδιασμένο με τέτοιο τρόπο ώστε να χειρίζεται πολλά δεδομένα και μεγάλο φορτίο.

Οι βάσεις δεδομένων αποθήκευσης ζεύγους κλειδιού-τιμής αποθηκεύουν δεδομένα ως πίνακα κατακερματισμού όπου κάθε κλειδί είναι μοναδικό και η τιμή μπορεί να είναι JSON, BLOB (Δυαδικά μεγάλα αντικείμενα), συμβολοσειρά κ.λπ.

Για παράδειγμα, ένα ζεύγος κλειδιού-τιμής μπορεί να περιέχει ένα κλειδί όπως "Ιστότοπος" που σχετίζεται με μια τιμή όπως "Guru99".

Βάσει ζεύγους βασικών τιμών

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

Τα Redis, Dynamo, Riak είναι μερικά παραδείγματα NoSQL βάσεων δεδομένων αποθήκευσης κλειδιών-τιμών. Όλα βασίζονται σε AmazonΧαρτί Dynamo.

Με βάση τη στήλη

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

Βάση δεδομένων NoSQL βάσει στήλης

Βάση δεδομένων NoSQL βάσει στήλης

Παρέχουν υψηλή απόδοση σε ερωτήματα συνάθροισης όπως SUM, COUNT, AVG, MIN κ.λπ. καθώς τα δεδομένα είναι άμεσα διαθέσιμα σε στήλη.

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

HBase, Cassandra, HBase, Hypertable είναι παραδείγματα ερωτημάτων NoSQL βάσης δεδομένων που βασίζονται σε στήλη.

Προσανατολισμός εγγράφων

Το NoSQL DB με προσανατολισμό εγγράφων αποθηκεύει και ανακτά δεδομένα ως ζεύγος βασικών τιμών, αλλά το τμήμα τιμής αποθηκεύεται ως έγγραφο. Το έγγραφο αποθηκεύεται σε μορφές JSON ή XML. Η τιμή είναι κατανοητή από το DB και μπορεί να ερωτηθεί.

Relational Vs. Εγγραφο

Relational Vs. Εγγραφο

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

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

Amazon SimpleDB, CouchDB, MongoDB, Riak, Lotus Notes, MongoDB, είναι δημοφιλή Έγγραφο προέρχεται Συστήματα DBMS.

Βάσει γραφήματος

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

Βάσει γραφήματος

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

Βάση βάσης γραφημάτων που χρησιμοποιείται κυρίως για κοινωνικά δίκτυα, logistics, χωρικά δεδομένα.

Neo4J, άπειρο γράφημα, OrientDB, το FlockDB είναι μερικές δημοφιλείς βάσεις δεδομένων που βασίζονται σε γραφήματα.

Εργαλεία Μηχανισμού Ερωτήσεων για NoSQL

Ο πιο συνηθισμένος μηχανισμός ανάκτησης δεδομένων είναι η ανάκτηση μιας τιμής βάσει REST με βάση το κλειδί/αναγνωριστικό της με πόρο GET

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

Τι είναι το θεώρημα CAP;

Το θεώρημα CAP ονομάζεται επίσης θεώρημα ζυθοποιίας. Αναφέρει ότι είναι αδύνατο για ένα κατανεμημένο κατάστημα δεδομένων να προσφέρει περισσότερες από δύο στις τρεις εγγυήσεις

  1. Συνοχή
  2. Διαθεσιμότητα
  3. Ανοχή κατάτμησης

Συνέπεια:

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

Διαθεσιμότητα:

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

Ανοχή κατάτμησης:

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

Συνέπεια εκδήλωσης

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

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

ΒΑΣΗ: Bμε τον ίδιο τρόπο Aδιαθέσιμο, Sσυχνά κράτος, Eενδεχόμενη συνέπεια

  • Βασικά, το διαθέσιμο σημαίνει ότι το DB είναι διαθέσιμο όλη την ώρα σύμφωνα με το θεώρημα CAP
  • Μαλακή κατάσταση σημαίνει ακόμη και χωρίς είσοδο. η κατάσταση του συστήματος μπορεί να αλλάξει
  • Η ενδεχόμενη συνέπεια σημαίνει ότι το σύστημα θα γίνει συνεπές με την πάροδο του χρόνου

Συνέπεια εκδήλωσης

Πλεονεκτήματα του NoSQL

  • Μπορεί να χρησιμοποιηθεί ως κύρια ή αναλυτική πηγή δεδομένων
  • Δυνατότητα μεγάλων δεδομένων
  • Κανένα σημείο αποτυχίας
  • Εύκολη αναπαραγωγή
  • Δεν χρειάζεται ξεχωριστό επίπεδο προσωρινής αποθήκευσης
  • Παρέχει γρήγορη απόδοση και οριζόντια επεκτασιμότητα.
  • Μπορεί να χειριστεί δομημένα, ημι-δομημένα και μη δομημένα δεδομένα με ίσο αποτέλεσμα
  • Αντικειμενοστραφής προγραμματισμός που είναι εύκολος στη χρήση και ευέλικτος
  • Οι βάσεις δεδομένων NoSQL δεν χρειάζονται ειδικό διακομιστή υψηλής απόδοσης
  • Υποστήριξη βασικών γλωσσών και πλατφορμών προγραμματιστή
  • Απλό στην εφαρμογή παρά με χρήση RDBMS
  • Μπορεί να χρησιμεύσει ως η κύρια πηγή δεδομένων για διαδικτυακές εφαρμογές.
  • Χειρίζεται μεγάλα δεδομένα που διαχειρίζονται την ταχύτητα, την ποικιλία, τον όγκο και την πολυπλοκότητα των δεδομένων
  • Excel σε κατανεμημένες βάσεις δεδομένων και λειτουργίες κέντρου πολλαπλών δεδομένων
  • Εξαλείφει την ανάγκη για ένα συγκεκριμένο επίπεδο προσωρινής αποθήκευσης για την αποθήκευση δεδομένων
  • Προσφέρει έναν ευέλικτο σχεδιασμό σχήματος που μπορεί εύκολα να τροποποιηθεί χωρίς διακοπή λειτουργίας ή διακοπή της υπηρεσίας

Μειονεκτήματα του NoSQL

  • Χωρίς κανόνες τυποποίησης
  • Περιορισμένες δυνατότητες αναζήτησης
  • RDBMS οι βάσεις δεδομένων και τα εργαλεία είναι σχετικά ώριμα
  • Δεν προσφέρει παραδοσιακές δυνατότητες βάσης δεδομένων, όπως η συνέπεια όταν εκτελούνται πολλές συναλλαγές ταυτόχρονα.
  • Όταν ο όγκος των δεδομένων αυξάνεται, είναι δύσκολο να διατηρηθούν μοναδικές τιμές καθώς τα κλειδιά γίνονται δύσκολα
  • Δεν λειτουργεί το ίδιο καλά με σχεσιακά δεδομένα
  • Η καμπύλη εκμάθησης είναι σκληρή για τους νέους προγραμματιστές
  • Επιλογές ανοιχτού κώδικα που δεν είναι τόσο δημοφιλείς για τις επιχειρήσεις.

Σύνοψη

  • Το NoSQL είναι ένα μη σχεσιακό DMS, που δεν απαιτεί σταθερό σχήμα, αποφεύγει τις ενώσεις και είναι εύκολο να κλιμακωθεί
  • Η έννοια των βάσεων δεδομένων NoSQL έγινε δημοφιλής σε γίγαντες του Διαδικτύου όπως η Google, το Facebook, Amazonκ.λπ. που ασχολούνται με τεράστιους όγκους δεδομένων
  • Το 1998 - Ο Carlo Strozzi χρησιμοποίησε τον όρο NoSQL για την ελαφριά, ανοιχτού κώδικα σχεσιακή βάση δεδομένων του
  • Οι βάσεις δεδομένων NoSQL δεν ακολουθούν ποτέ το σχεσιακό μοντέλο είτε είναι χωρίς σχήματα είτε έχουν χαλαρά σχήματα
  • Τέσσερις τύποι βάσεων δεδομένων NoSQL είναι 1). Βασισμένο ζεύγος κλειδιού-τιμής 2). Γράφημα 3 προσανατολισμένο στη στήλη). Με βάση γραφήματα 4). Προσανατολισμός εγγράφων
  • Το NOSQL μπορεί να χειριστεί δομημένα, ημι-δομημένα και μη δομημένα δεδομένα με ίσο αποτέλεσμα
  • Το θεώρημα CAP αποτελείται από τρεις λέξεις Consistency, Availability και Partition Tolerance
  • ΒΑΣΗ σημαίνει Bμε τον ίδιο τρόπο Aδιαθέσιμο, Sσυχνά κράτος, Eενδεχόμενη συνέπεια
  • Ο όρος "τελική συνέπεια" σημαίνει ότι έχετε αντίγραφα δεδομένων σε πολλαπλές μηχανές για να έχετε υψηλή διαθεσιμότητα και επεκτασιμότητα
  • NOSQL προσφέρουν περιορισμένες δυνατότητες αναζήτησης