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

⚡ Έξυπνη Σύνοψη

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

  • 📦 Ορισμός: Ένα μη σχεσιακό, χωρίς σχήματα κατάστημα που έχει δημιουργηθεί για τεράστια, κατανεμημένα σύνολα δεδομένων.
  • 📈 Γιατί: Η κλιμάκωση σε πολλούς κεντρικούς υπολογιστές διαχειρίζεται μεγάλα δεδομένα πιο γρήγορα από την κλιμάκωση.
  • 🗂️ Τέσσερις τύποι: Με προσανατολισμό κλειδί-τιμή, προσανατολισμό σε στήλες, προσανατολισμό σε γραφήματα και προσανατολισμό σε έγγραφα.
  • Θεώρημα CAP: Ένα κατανεμημένο κατάστημα μπορεί να εγγυηθεί μόνο δύο: συνέπεια, διαθεσιμότητα και ανοχή διαμερίσεων.
  • 🔁 ΒΑΣΗ: Βασικά διαθέσιμο, μαλακή κατάσταση, τελική συνέπεια σε όλα τα αντίγραφα.

NoSQL Tutorial

Τι είναι το NoSQL;

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

Βάση δεδομένων NoSQL σημαίνει «Όχι Μόνο SQL» ή «Όχι SQL». Αν και ένας καλύτερος όρος θα ήταν «NoREL», το NoSQL έγινε ευρέως γνωστό. Ο Carl Strozzi εισήγαγε την έννοια του NoSQL το 1998.

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

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

Γιατί NoSQL;

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

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

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

NoSQL

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

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

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

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

Μη σχεσιακό

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

Χωρίς σχήμα

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

Απλό API

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

Διανέμονται

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

Το NoSQL δεν είναι κοινόχρηστο τίποτα.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Relational Vs. Εγγραφο

Relational Vs. Εγγραφο

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Συχνές Ερωτήσεις

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

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

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

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

Συνοψίστε αυτήν την ανάρτηση με: