Τι είναι MongoDB? Archiδομή, Χαρακτηριστικά & Παράδειγμα
⚡ Έξυπνη Σύνοψη
MongoDB είναι μια βάση δεδομένων NoSQL προσανατολισμένη σε έγγραφα που χρησιμοποιείται για αποθήκευση δεδομένων μεγάλου όγκου, χρησιμοποιώντας συλλογές και έγγραφα αντί για πίνακες και γραμμές. Αυτός ο πόρος εξηγεί MongoDB χαρακτηριστικά, ένα παράδειγμα εγγράφου, βασικά στοιχεία αρχιτεκτονικής, λόγοι χρήσης του, μοντελοποίηση δεδομένων και πώς διαφέρει από μια σχεσιακή βάση δεδομένων.

Τι είναι MongoDB?
MongoDB είναι μια βάση δεδομένων NoSQL προσανατολισμένη στα έγγραφα που χρησιμοποιείται για αποθήκευση δεδομένων μεγάλου όγκου. Αντί να χρησιμοποιείτε πίνακες και σειρές όπως στις παραδοσιακές σχεσιακές βάσεις δεδομένων, MongoDB κάνει χρήση συλλογών και εγγράφων. Τα έγγραφα αποτελούνται από ζεύγη κλειδιών-τιμών που αποτελούν τη βασική μονάδα δεδομένων MongoDBΟι συλλογές περιέχουν σύνολα εγγράφων και συναρτήσεων, τα οποία είναι ισοδύναμα με πίνακες σχεσιακών βάσεων δεδομένων. MongoDB είναι μια βάση δεδομένων που εμφανίστηκε γύρω στα μέσα της δεκαετίας του 2000.
MongoDB Χαρακτηριστικά
- Κάθε βάση δεδομένων περιέχει συλλογές οι οποίες με τη σειρά τους περιέχουν έγγραφα. Κάθε έγγραφο μπορεί να είναι διαφορετικό, με ποικίλο αριθμό πεδίων. Το μέγεθος και το περιεχόμενο κάθε εγγράφου μπορεί να διαφέρουν μεταξύ τους.
- Η δομή του εγγράφου είναι περισσότερο σύμφωνη με τον τρόπο με τον οποίο οι προγραμματιστές κατασκευάζουν τις κλάσεις και τα αντικείμενά τους στις αντίστοιχες γλώσσες προγραμματισμού τους. Οι προγραμματιστές θα λένε συχνά ότι οι κλάσεις τους δεν είναι σειρές και στήλες, αλλά έχουν μια σαφή δομή με ζεύγη κλειδιών-τιμών.
- Οι σειρές (ή τα έγγραφα όπως καλούνται MongoDB) δεν χρειάζεται να έχετε ορίσει κάποιο σχήμα εκ των προτέρων. Αντίθετα, τα πεδία μπορούν να δημιουργηθούν άμεσα.
- Το μοντέλο δεδομένων που είναι διαθέσιμο εντός MongoDB σας επιτρέπει να αναπαραστήσετε ιεραρχικές σχέσεις, να αποθηκεύσετε πίνακες και να αποθηκεύσετε άλλες πιο σύνθετες δομές πιο εύκολα.
- Απεριόριστες δυνατότητες - Η MongoDB Τα περιβάλλοντα είναι πολύ επεκτάσιμα. Εταιρείες σε όλο τον κόσμο έχουν ορίσει clusters, με μερικές από αυτές να εκτελούν 100+ κόμβους με περίπου εκατομμύρια έγγραφα εντός της βάσης δεδομένων.
MongoDB Παράδειγμα
Το παρακάτω παράδειγμα δείχνει πώς μπορεί να διαμορφωθεί ένα έγγραφο MongoDB.
- Το πεδίο _id προστίθεται από MongoDB για να προσδιορίσετε μοναδικά το έγγραφο στη συλλογή.
- Αυτό που μπορείτε να σημειώσετε είναι ότι τα Δεδομένα Παραγγελίας (OrderID, Product και Quantity), τα οποία στο RDBMS κανονικά αποθηκεύονται σε ξεχωριστό πίνακα, στην πραγματικότητα αποθηκεύονται ως ενσωματωμένο έγγραφο στην ίδια τη συλλογή. MongoDBΑυτή είναι μία από τις βασικές διαφορές στον τρόπο με τον οποίο μοντελοποιούνται τα δεδομένα MongoDB.
Βασικά συστατικά του MongoDB Archiδομή
Παρακάτω είναι μερικοί από τους κοινούς όρους που χρησιμοποιούνται σε MongoDB:
- _ταυτότητα – Αυτό είναι ένα πεδίο που απαιτείται σε κάθε MongoDB έγγραφο. Το πεδίο _id αντιπροσωπεύει μια μοναδική τιμή στο MongoDB έγγραφο. Το πεδίο _id είναι σαν το πρωτεύον κλειδί του εγγράφου. Εάν δημιουργήσετε ένα νέο έγγραφο χωρίς πεδίο _id, MongoDB θα δημιουργήσει αυτόματα το πεδίο. Έτσι, για παράδειγμα, αν δούμε το παράδειγμα του παραπάνω πίνακα πελατών, MongoDB θα προσθέσει ένα 24ψήφιο μοναδικό αναγνωριστικό σε κάθε έγγραφο της συλλογής.
| _Ταυτότητα | Κωδικός πελάτη | Ονομα πελάτη | Αριθμός Παραγγελίας |
|---|---|---|---|
| 563479cc8a8a4246bd27d784 | 11 | Guru99 | 111 |
| 563479cc7a8a4246bd47d784 | 22 | Τρέβορ Σμιθ | 222 |
| 563479cc9a8a4246bd57d784 | 33 | Nicole | 333 |
- Συλλογή – Αυτή είναι μια ομάδαping of MongoDB έγγραφα. Μια συλλογή είναι το ισοδύναμο ενός πίνακα που δημιουργείται σε οποιοδήποτε άλλο RDBMS όπως Oracle ή MS SQL. Μια συλλογή υπάρχει μέσα σε μια ενιαία βάση δεδομένων. Όπως φαίνεται από την εισαγωγή, οι συλλογές δεν επιβάλλουν κανενός είδους δομή.
- Δρομέας – Αυτός είναι ένας δείκτης στο σύνολο αποτελεσμάτων ενός ερωτήματος. Οι πελάτες μπορούν να επαναλάβουν μέσω ενός δρομέα για να ανακτήσουν αποτελέσματα.
- βάση δεδομένων – Αυτό είναι ένα κοντέινερ για συλλογές, όπως στο RDBMS όπου είναι ένα κοντέινερ για πίνακες. Κάθε βάση δεδομένων λαμβάνει το δικό της σύνολο αρχείων στο σύστημα αρχείων. A MongoDB Ο διακομιστής μπορεί να αποθηκεύσει πολλές βάσεις δεδομένων.
- Έγγραφο – Ρεκόρ σε α MongoDB Η συλλογή ονομάζεται ουσιαστικά έγγραφο. Το έγγραφο, με τη σειρά του, θα αποτελείται από ονόματα πεδίων και τιμές.
- Πεδίο – Ένα ζεύγος ονόματος-τιμής σε ένα έγγραφο. Ένα έγγραφο έχει μηδέν ή περισσότερα πεδία. Τα πεδία είναι ανάλογα με τις στήλες σε σχεσιακές βάσεις δεδομένων. Το ακόλουθο διάγραμμα δείχνει ένα παράδειγμα Πεδίων με ζεύγη κλειδιού-τιμής. Έτσι, στο παρακάτω παράδειγμα, το CustomerID και το 11 είναι ένα από τα ζεύγη κλειδιού-τιμής που ορίζονται στο έγγραφο.
- JSON – Αυτό είναι γνωστό ως JavaΓραφή Σημείωση αντικειμένου. Αυτή είναι μια αναγνώσιμη από τον άνθρωπο μορφή απλού κειμένου για την έκφραση δομημένων δεδομένων. Το JSON υποστηρίζεται αυτήν τη στιγμή σε πολλές γλώσσες προγραμματισμού.
Απλά μια γρήγορη σημείωση σχετικά με τη βασική διαφορά μεταξύ του πεδίου _id και ενός κανονικού πεδίου συλλογής. Το πεδίο _id χρησιμοποιείται για τον μοναδικό προσδιορισμό των εγγράφων σε μια συλλογή και προστίθεται αυτόματα από MongoDB όταν δημιουργείται η συλλογή.
Γιατί να χρησιμοποιήσετε MongoDB?
Παρακάτω αναφέρονται μερικοί λόγοι για τους οποίους κάποιος πρέπει να αρχίσει να το χρησιμοποιεί MongoDB:
- Προσανατολισμός εγγράφων - Από MongoDB είναι ένα NoSQL βάση δεδομένων τύπου, αντί να έχει δεδομένα σε μορφή σχεσιακού τύπου, αποθηκεύει τα δεδομένα σε έγγραφα. Αυτό κάνει MongoDB πολύ ευέλικτο και προσαρμόσιμο στις πραγματικές συνθήκες και απαιτήσεις του επιχειρηματικού κόσμου.
- Ad hoc ερωτήματα - MongoDB υποστηρίζει αναζήτηση ανά πεδίο, ερωτήματα εύρους και αναζητήσεις κανονικών εκφράσεων. Μπορούν να υποβληθούν ερωτήματα για την επιστροφή συγκεκριμένων πεδίων στα έγγραφα.
- Ευρετηρίαση – Μπορούν να δημιουργηθούν ευρετήρια για τη βελτίωση της απόδοσης των αναζητήσεων εντός MongoDB. Οποιοδήποτε πεδίο σε α MongoDB το έγγραφο μπορεί να ευρετηριαστεί.
- Αντιγραφή - MongoDB μπορεί να παρέχει υψηλή διαθεσιμότητα με σύνολα αντιγράφων. Ένα σύνολο αντιγράφων αποτελείται από δύο ή περισσότερα MongoDB παρουσίες. Κάθε μέλος του συνόλου αντιγράφων μπορεί να ενεργεί στο ρόλο του κύριου ή του δευτερεύοντος αντιγράφου ανά πάσα στιγμή. Το κύριο αντίγραφο είναι ο κύριος διακομιστής που αλληλεπιδρά με τον πελάτη και εκτελεί όλες τις λειτουργίες ανάγνωσης/εγγραφής. Τα δευτερεύοντα αντίγραφα διατηρούν ένα αντίγραφο των δεδομένων του κύριου χρησιμοποιώντας ενσωματωμένη αναπαραγωγή. Όταν ένα κύριο αντίγραφο αποτύχει, το σύνολο αντιγράφων μεταβαίνει αυτόματα στο δευτερεύον και στη συνέχεια γίνεται ο κύριος διακομιστής.
- Εξισορρόπηση φορτίου - MongoDB χρησιμοποιεί την έννοια του διαμοιρασμού για να κλιμακωθεί οριζόντια, διαχωρίζοντας τα δεδομένα σε πολλά MongoDB περιπτώσεις. MongoDB μπορεί να τρέξει σε πολλούς διακομιστές, εξισορροπώντας το φόρτο ή/και αντιγράφοντας δεδομένα για να διατηρήσει το σύστημα σε λειτουργία και λειτουργία σε περίπτωση αστοχίας υλικού.
Μοντελοποίηση δεδομένων σε MongoDB
Όπως είδαμε από την εισαγωγή, τα δεδομένα στο MongoDB έχει ένα ευέλικτο σχήμα. Σε αντίθεση με το σε SQL βάσεις δεδομένων, όπου πρέπει να δηλωθεί το σχήμα ενός πίνακα πριν από την εισαγωγή δεδομένων, MongoDBΟι συλλογές του δεν επιβάλλουν τη δομή εγγράφων. Αυτό το είδος ευελιξίας είναι αυτό που κάνει MongoDB τόσο ισχυρό.
Κατά τη μοντελοποίηση δεδομένων σε MongoDB, να έχετε υπόψη σας τα εξής:
- Ποιες είναι οι ανάγκες της εφαρμογής – Εξετάστε τις επιχειρηματικές ανάγκες της εφαρμογής και δείτε ποια δεδομένα και ο τύπος δεδομένων χρειάζονται για την εφαρμογή. Με βάση αυτό, βεβαιωθείτε ότι η δομή του εγγράφου έχει αποφασιστεί ανάλογα.
- Ποια είναι τα πρότυπα ανάκτησης δεδομένων – Εάν προβλέπετε μεγάλη χρήση ερωτημάτων, τότε εξετάστε το ενδεχόμενο χρήσης ευρετηρίων στο μοντέλο δεδομένων σας για να βελτιώσετε την αποτελεσματικότητα των ερωτημάτων.
- Γίνονται συχνές εισαγωγές, ενημερώσεις και αφαιρέσεις στη βάση δεδομένων; Επανεξετάστε τη χρήση ευρετηρίων ή ενσωματώστε την τμηματοποίηση δεδομένων, εάν απαιτείται, στον σχεδιασμό της μοντελοποίησης δεδομένων σας, για να βελτιώσετε την αποτελεσματικότητα της συνολικής σας απόδοσης. MongoDB περιβάλλοντος.
Διαφορά μεταξύ MongoDB & RDBMS
Παρακάτω είναι μερικές από τις βασικές διαφορές μεταξύ των όρων MongoDB και RDBMS:
| RDBMS | MongoDB | Διαφορά |
|---|---|---|
| Τραπέζι | Συλλογή | In RDBMS, ο πίνακας περιέχει τις στήλες και τις γραμμές που χρησιμοποιούνται για την αποθήκευση των δεδομένων, ενώ στο MongoDB Αυτή η ίδια δομή είναι γνωστή ως συλλογή. Η συλλογή περιέχει έγγραφα τα οποία με τη σειρά τους περιέχουν πεδία, τα οποία με τη σειρά τους είναι ζεύγη κλειδιού-τιμής. |
| Σειρά | Έγγραφο | Στο RDBMS, η σειρά αντιπροσωπεύει ένα μεμονωμένο, έμμεσα δομημένο στοιχείο δεδομένων σε έναν πίνακα. Σε MongoDB, τα δεδομένα αποθηκεύονται σε έγγραφα. |
| Στήλη | Πεδίο | Στο RDBMS, η στήλη υποδηλώνει ένα σύνολο τιμών δεδομένων. Αυτά σε MongoDB είναι γνωστά ως πεδία. |
| Ενώνει | Ενσωματωμένα έγγραφα | Στο RDBMS, τα δεδομένα μερικές φορές κατανέμονται σε διάφορους πίνακες και, προκειμένου να εμφανιστεί μια πλήρης εικόνα όλων των δεδομένων, μερικές φορές σχηματίζεται μια ένωση μεταξύ πινάκων για να ληφθούν τα δεδομένα. MongoDB, τα δεδομένα αποθηκεύονται κανονικά σε μία μόνο συλλογή, αλλά διαχωρίζονται με τη χρήση ενσωματωμένων εγγράφων. Επομένως, δεν υπάρχει η έννοια των ενώσεων MongoDB. |
Εκτός από τις διαφορές στους όρους, μερικές άλλες διαφορές παρουσιάζονται παρακάτω:
- Οι σχεσιακές βάσεις δεδομένων είναι γνωστές για την επιβολή της ακεραιότητας των δεδομένων. Αυτό δεν αποτελεί ρητή απαίτηση σε MongoDB.
- Το RDBMS απαιτεί τα δεδομένα να είναι κανονικοποιήθηκε πρώτα, ώστε να αποτρέψει τις ορφανές εγγραφές και τα διπλότυπα. Η ομαλοποίηση των δεδομένων απαιτεί στη συνέχεια περισσότερους πίνακες, κάτι που θα οδηγήσει σε περισσότερες ενώσεις πινάκων, απαιτώντας έτσι περισσότερα κλειδιά και ευρετήρια. Καθώς οι βάσεις δεδομένων αρχίζουν να αναπτύσσονται, η απόδοση μπορεί να αρχίσει να γίνεται πρόβλημα. Και πάλι, αυτό δεν αποτελεί ρητή απαίτηση στο MongoDB. MongoDB είναι ευέλικτο και δεν χρειάζεται πρώτα να κανονικοποιηθούν τα δεδομένα.


