Τι είναι το MongoDB; Εισαγωγή, Αρχιτεκτονική, Χαρακτηριστικά & Παράδειγμα

Τι είναι το MongoDB;

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

Σε αυτό το σεμινάριο, θα μάθετε-

  • Χαρακτηριστικά MongoDB
  • Παράδειγμα MongoDB
  • Βασικά στοιχεία της αρχιτεκτονικής MongoDB
  • Γιατί να χρησιμοποιήσετε το MongoDB
  • Μοντελοποίηση δεδομένων σε MongoDB
  • Διαφορά μεταξύ MongoDB & RDBMS

Χαρακτηριστικά MongoDB

    1. Κάθε βάση δεδομένων περιέχει συλλογές οι οποίες με τη σειρά τους περιέχουν έγγραφα. Κάθε έγγραφο μπορεί να είναι διαφορετικό με ποικίλο αριθμό πεδίων. Το μέγεθος και το περιεχόμενο κάθε εγγράφου μπορεί να διαφέρουν μεταξύ τους.
    2. Η δομή του εγγράφου ευθυγραμμίζεται περισσότερο με τον τρόπο με τον οποίο οι προγραμματιστές κατασκευάζουν τις τάξεις και τα αντικείμενά τους στις αντίστοιχες γλώσσες προγραμματισμού. Οι προγραμματιστές συχνά λένε ότι οι τάξεις τους δεν είναι σειρές και στήλες, αλλά έχουν σαφή δομή με ζεύγη κλειδιών-τιμών.
    3. Οι σειρές (ή έγγραφα όπως ονομάζονται στο MongoDB) δεν χρειάζεται να έχουν προκαθορισμένο σχήμα. Αντ 'αυτού, τα πεδία μπορούν να δημιουργηθούν εν κινήσει.
    4. Το μοντέλο δεδομένων που είναι διαθέσιμο στο MongoDB σάς επιτρέπει να αντιπροσωπεύετε ιεραρχικές σχέσεις, να αποθηκεύετε πιο εύκολα συστοιχίες και άλλες πιο περίπλοκες δομές.
  1. Επεκτασιμότητα - Τα περιβάλλοντα MongoDB είναι πολύ επεκτάσιμα. Εταιρείες σε ολόκληρο τον κόσμο έχουν ορίσει σύμπλεγμα με μερικά από αυτά να εκτελούν 100+ κόμβους με περίπου εκατομμύρια έγγραφα στη βάση δεδομένων

Παράδειγμα MongoDB

Το παρακάτω παράδειγμα δείχνει πώς ένα έγγραφο μπορεί να μοντελοποιηθεί στο MongoDB.

  1. Το πεδίο _id προστίθεται από το MongoDB για να προσδιορίσει μοναδικά το έγγραφο στη συλλογή.
  2. Αυτό που μπορείτε να σημειώσετε είναι ότι τα δεδομένα παραγγελίας (OrderID, Product και Quantity) τα οποία σε RDBMS κανονικά θα αποθηκεύονται σε ξεχωριστό πίνακα, ενώ στο MongoDB αποθηκεύεται στην πραγματικότητα ως ενσωματωμένο έγγραφο στην ίδια τη συλλογή. Αυτή είναι μια από τις βασικές διαφορές στον τρόπο μοντελοποίησης των δεδομένων στο MongoDB.

Βασικά στοιχεία της αρχιτεκτονικής MongoDB

Ακολουθούν μερικοί από τους κοινούς όρους που χρησιμοποιούνται στο MongoDB

  1. _id - Αυτό είναι ένα πεδίο που απαιτείται σε κάθε έγγραφο MongoDB. Το πεδίο _id αντιπροσωπεύει μια μοναδική τιμή στο έγγραφο MongoDB. Το πεδίο _id μοιάζει με το πρωτεύον κλειδί του εγγράφου. Εάν δημιουργήσετε ένα νέο έγγραφο χωρίς πεδίο _id, το MongoDB θα δημιουργήσει αυτόματα το πεδίο. Έτσι, για παράδειγμα, αν δούμε το παράδειγμα του παραπάνω πίνακα πελατών, το Mongo DB θα προσθέσει ένα 24ψήφιο μοναδικό αναγνωριστικό σε κάθε έγγραφο της συλλογής.
_Ταυτότητα Κωδικός πελάτη Ονομα πελάτη Αριθμός Παραγγελίας
563479cc8a8a4246bd27d784 11 Γκουρού99 111
563479cc7a8a4246bd47d784 22 Τρέβορ Σμιθ 222
563479cc9a8a4246bd57d784 33 Νικόλ 333
  1. Συλλογή - Αυτή είναι μια ομαδοποίηση εγγράφων MongoDB. Μια συλλογή είναι το ισοδύναμο ενός πίνακα που δημιουργείται σε οποιοδήποτε άλλο RDMS όπως το Oracle ή το MS SQL. Υπάρχει μια συλλογή σε μία βάση δεδομένων. Όπως φαίνεται από τις εισαγωγές, οι συλλογές δεν επιβάλλουν καμία δομή.
  2. Δρομέας - Αυτός είναι ένας δείκτης στο σύνολο αποτελεσμάτων ενός ερωτήματος. Οι πελάτες μπορούν να επαναλάβουν τον κέρσορα για να ανακτήσουν τα αποτελέσματα.
  3. Βάση δεδομένων - Πρόκειται για ένα κοντέινερ για συλλογές όπως στο RDMS όπου είναι ένα κοντέινερ για πίνακες. Κάθε βάση δεδομένων λαμβάνει το δικό της σύνολο αρχείων στο σύστημα αρχείων. Ένας διακομιστής MongoDB μπορεί να αποθηκεύσει πολλές βάσεις δεδομένων.
  4. Έγγραφο - Μια εγγραφή σε μια συλλογή MongoDB ονομάζεται βασικά ένα έγγραφο. Το έγγραφο, με τη σειρά του, θα αποτελείται από όνομα και τιμές πεδίου.
  5. Πεδίο - Ένα ζεύγος ονόματος-τιμής σε ένα έγγραφο. Ένα έγγραφο έχει μηδέν ή περισσότερα πεδία. Τα πεδία είναι ανάλογα με τις στήλες σε σχεσιακές βάσεις δεδομένων.

    Το παρακάτω διάγραμμα δείχνει ένα παράδειγμα πεδίων με ζεύγη τιμών κλειδιού. Έτσι, στο παρακάτω παράδειγμα, το CustomerID και το 11 είναι ένα από τα βασικά ζεύγη τιμών που ορίζονται στο έγγραφο.

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

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

Γιατί να χρησιμοποιήσετε το MongoDB;

Ακολουθούν μερικοί από τους λόγους για τους οποίους κάποιος πρέπει να αρχίσει να χρησιμοποιεί το MongoDB

  1. Προσανατολισμός εγγράφου - Δεδομένου ότι το MongoDB είναι μια βάση δεδομένων τύπου NoSQL, αντί να έχει δεδομένα σε σχεσιακή μορφή, αποθηκεύει τα δεδομένα σε έγγραφα. Αυτό καθιστά το MongoDB πολύ ευέλικτο και προσαρμόσιμο στην πραγματική κατάσταση και τις απαιτήσεις του επιχειρηματικού κόσμου.
  2. Ερωτήματα ad hoc - Το MongoDB υποστηρίζει αναζήτηση ανά πεδίο, ερωτήματα εύρους και κανονικές αναζητήσεις έκφρασης. Μπορείτε να κάνετε ερωτήματα για να επιστρέψετε συγκεκριμένα πεδία στα έγγραφα.
  3. Ευρετηρίαση - Τα ευρετήρια μπορούν να δημιουργηθούν για τη βελτίωση της απόδοσης των αναζητήσεων στο MongoDB. Οποιοδήποτε πεδίο σε ένα έγγραφο MongoDB μπορεί να ευρετηριαστεί.
  4. Αντιγραφή - Το MongoDB μπορεί να παρέχει υψηλή διαθεσιμότητα με σετ ρεπλίκας. Ένα σύνολο ρεπλίκα αποτελείται από δύο ή περισσότερες εμφανίσεις mongo DB. Κάθε μέλος σετ ρεπλίκα μπορεί να ενεργεί στο ρόλο του πρωτεύοντος ή δευτερεύοντος αντιγράφου ανά πάσα στιγμή. Το κύριο αντίγραφο είναι ο κύριος διακομιστής που αλληλεπιδρά με τον πελάτη και εκτελεί όλες τις λειτουργίες ανάγνωσης / εγγραφής. Τα δευτερεύοντα αντίγραφα διατηρούν ένα αντίγραφο των δεδομένων του πρωτεύοντος χρησιμοποιώντας ενσωματωμένη αναπαραγωγή. Όταν αποτύχει ένα πρωτεύον αντίγραφο, το σύνολο αντιγράφου μεταβαίνει αυτόματα στο δευτερεύον και στη συνέχεια γίνεται ο κύριος διακομιστής.
  5. Ισορροπία φορτίου - Το MongoDB χρησιμοποιεί την έννοια της θραύσης για οριζόντια κλιμάκωση χωρίζοντας δεδομένα σε πολλές παρουσίες MongoDB. Το MongoDB μπορεί να εκτελεστεί σε πολλούς διακομιστές, εξισορροπώντας το φορτίο ή / και αντιγράφοντας δεδομένα για να διατηρήσει το σύστημα σε λειτουργία και σε περίπτωση βλάβης υλικού.

Μοντελοποίηση δεδομένων σε MongoDB

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

Κατά τη μοντελοποίηση δεδομένων στο Mongo, λάβετε υπόψη τα ακόλουθα πράγματα

  1. Ποιες είναι οι ανάγκες της εφαρμογής - Κοιτάξτε τις επιχειρηματικές ανάγκες της εφαρμογής και δείτε ποια δεδομένα και τον τύπο δεδομένων χρειάζονται για την εφαρμογή. Με βάση αυτό, βεβαιωθείτε ότι η δομή του εγγράφου αποφασίζεται ανάλογα.
  2. Τι είναι τα μοτίβα ανάκτησης δεδομένων - Εάν προβλέπετε μεγάλη χρήση ερωτημάτων, εξετάστε το ενδεχόμενο χρήσης ευρετηρίων στο μοντέλο δεδομένων σας για τη βελτίωση της αποτελεσματικότητας των ερωτημάτων.
  3. Υπάρχουν συχνά ένθετα, ενημερώσεις και καταργήσεις στη βάση δεδομένων; Επανεξετάστε τη χρήση ευρετηρίων ή ενσωματώστε θραύση εάν απαιτείται στο σχεδιασμό μοντελοποίησης δεδομένων για να βελτιώσετε την αποτελεσματικότητα του συνολικού σας περιβάλλοντος MongoDB.

Διαφορά μεταξύ MongoDB & RDBMS

Παρακάτω είναι μερικές από τις βασικές διαφορές όρου μεταξύ MongoDB και RDBMS

RDBMS MongoDB Διαφορά
Τραπέζι Συλλογή Στο RDBMS, ο πίνακας περιέχει τις στήλες και τις σειρές που χρησιμοποιούνται για την αποθήκευση των δεδομένων, ενώ στο MongoDB, η ίδια δομή είναι γνωστή ως συλλογή. Η συλλογή περιέχει έγγραφα τα οποία με τη σειρά τους περιέχουν πεδία, τα οποία με τη σειρά τους είναι ζεύγη τιμών-κλειδιών.
Σειρά Εγγραφο Στο RDBMS, η σειρά αντιπροσωπεύει ένα μεμονωμένο, δομημένα στοιχεία δεδομένων σε έναν πίνακα. Στο MongoDB, τα δεδομένα αποθηκεύονται σε έγγραφα.
Στήλη Πεδίο Στο RDBMS, η στήλη υποδηλώνει ένα σύνολο τιμών δεδομένων. Αυτά στο MongoDB είναι γνωστά ως Fields.
Συμμετέχει Ενσωματωμένα έγγραφα Στο RDBMS, τα δεδομένα μερικές φορές εξαπλώνονται σε διάφορους πίνακες και για να εμφανιστεί μια πλήρης προβολή όλων των δεδομένων, μερικές φορές σχηματίζεται ένωση σε πίνακες για τη λήψη των δεδομένων. Στο MongoDB, τα δεδομένα συνήθως αποθηκεύονται σε μία συλλογή, αλλά διαχωρίζονται χρησιμοποιώντας ενσωματωμένα έγγραφα. Επομένως, δεν υπάρχει έννοια συμμετοχής στο MongoDB.

Εκτός από τις διαφορές όρων, μερικές άλλες διαφορές φαίνονται παρακάτω

  1. Οι σχεσιακές βάσεις δεδομένων είναι γνωστές για την ενίσχυση της ακεραιότητας των δεδομένων. Αυτό δεν είναι ρητή απαίτηση στο MongoDB.
  2. Το RDBMS απαιτεί τα δεδομένα να κανονικοποιηθούν πρώτα, ώστε να αποτρέψουν ορφανές εγγραφές και διπλότυπα Τα δεδομένα κανονικοποίησης έχουν στη συνέχεια την απαίτηση περισσότερων πινάκων, τα οποία στη συνέχεια θα οδηγήσουν σε περισσότερες συνδέσεις πίνακα, απαιτώντας έτσι περισσότερα κλειδιά και ευρετήρια.

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

ενδιαφέροντα άρθρα...