Η μοντελοποίηση δεδομένων είναι η διαδικασία ανάπτυξης μιας οπτικής αναπαράστασης είτε μιας ολόκληρης εφαρμογής λογισμικού είτε των στοιχείων της για την επικοινωνία των συνδέσεων μεταξύ σημείων δεδομένων και δομής. Περιλαμβάνει σχολαστικό έλεγχο των απαιτήσεων της εφαρμογής και της βάσης δεδομένων και ως σύνδεση μεταξύ των δύο σχετικά με τις βασικές λειτουργίες δεδομένων - ανάγνωση, εγγραφή και ενημέρωση.
Δημιουργείται ένα σταθερό μοντέλο δεδομένων αξιολογώντας το μοτίβο χρήσης της εφαρμογής και ευθυγραμμίζοντας το σχήμα βάσης δεδομένων με αυτό. Επομένως, ο σχεδιασμός σχήματος διαμορφώνει το μοντέλο δεδομένων σας. Όταν πρόκειται για μια σχεσιακή βάση δεδομένων, δεν μπορείτε να συμπληρώσετε τους πίνακες σας χωρίς να δημιουργήσετε το σχήμα πίνακα.
Βασικοί όροι που πρέπει να γνωρίζετε
Πριν προχωρήσετε, ακολουθούν ορισμένοι βασικοί ορισμοί που πρέπει να γνωρίζετε:
- Συλλογή - Μια συλλογή είναι το σύνολο των εγγράφων στο MongoDB. Είναι το ισοδύναμο ενός πίνακα σε ένα RDBMS.
- Έγγραφο - Ένα έγγραφο είναι μια δομή που αποτελείται από ζεύγη αρχείων και τιμών. Είναι το ισοδύναμο μιας σειράς στο RDBMS.
- Σχήμα βάσης δεδομένων - Ο σχεδιασμός σχήματος είναι μια λογική και οπτική αρχιτεκτονική μιας βάσης δεδομένων που έχει σχεδιαστεί για ένα σύστημα διαχείρισης βάσεων δεδομένων (DBMS).
Πώς διαφέρει η μοντελοποίηση δεδομένων στο MongoDB;
Χάρη στην ευελιξία του NoSQL, δεν χρειάζεται να δημιουργήσετε ένα σχήμα πριν από την εισαγωγή δεδομένων. Αυτό συμβαίνει επειδή το MongoDB υποστηρίζει μια δυναμική μορφή σχήματος βάσης δεδομένων. Αυτό εξαλείφει την ανάγκη να σχεδιάσετε το σχήμα σας εκ των προτέρων. Αντ 'αυτού, μπορείτε τώρα να αποθηκεύσετε τα δεδομένα σας και να κάνετε προσαρμογές ανάλογα με τη συλλογή σας.
Μπορείτε να αποθηκεύσετε διαφορετικούς τύπους δεδομένων στο δεδομένο πεδίο μιας συλλογής και μπορείτε ακόμη και να προσθέσετε νέα πεδία, να ενημερώσετε τιμές πεδίου και να διαγράψετε υπάρχοντα πεδία. Θα βρείτε το πραγματικό όφελος αυτής της ευελιξίας όταν χαρτογραφείτε έγγραφα σε ένα αντικείμενο ή οντότητα.
Γενικά, μια συλλογή και το έγγραφό της ακολουθούν παρόμοια δομή. Μπορείτε επίσης να "επιβάλλετε" κανόνες επικύρωσης για τα έγγραφα της συλλογής σας χρησιμοποιώντας την επικύρωση σχήματος.
Σχετιζομαι με: Μηχανές βάσης δεδομένων που πρέπει να λάβετε υπόψη για το επόμενο έργο σας
Κατά τη δημιουργία ενός μοντέλου δεδομένων, εξετάστε πώς θα αλληλεπιδράσει η εφαρμογή σας με τη βάση δεδομένων. Για παράδειγμα, εάν πρόκειται να επεξεργαστεί έγγραφα που προστέθηκαν πρόσφατα, τότε είναι καλή ιδέα να χρησιμοποιήσετε περιορισμένες συλλογές - συλλογές με σταθερό μέγεθος που υποστηρίζουν λειτουργίες υψηλής απόδοσης.
Ομοίως, εάν η εφαρμογή σας θα λειτουργεί με λειτουργίες ανάγνωσης τις περισσότερες φορές, μπορείτε να ορίσετε ευρετήρια για να υποστηρίξετε κοινά ερωτήματα και να βελτιώσετε την απόδοση.
Παραδοσιακά, ένας από τους λόγους για τη δημιουργία ενός μοντέλου δεδομένων είναι ο τρόπος αποθήκευσης σχετικών δεδομένων. Οι σχετικές βάσεις δεδομένων χρησιμοποιούν πίνακες για την αποθήκευση δεδομένων, όπου χρησιμοποιούνται πρωτεύοντα και ξένα κλειδιά για τον καθορισμό σχέσεων δεδομένων.
Ομοίως, οι συνδέσεις χρησιμοποιούνται για πρόσβαση και εκτέλεση λειτουργιών σε πολλούς πίνακες. Ως κάποιος που έχει αλλάξει στο MongoDB από ένα σχετικό DBMS, όπως ο SQL Server, δεν πρόκειται να βρείτε συνδέσεις στο MongoDB. Αυτό συμβαίνει επειδή το MongoDB αποθηκεύει δεδομένα συλλογής είτε παραπέμποντας τα δεδομένα είτε ενσωματώνοντας τα δεδομένα σε μια συλλογή.
Επομένως, εάν το μοντέλο δεδομένων σας παίρνει δέκα πίνακες σε μια σχεσιακή βάση δεδομένων, είναι πιθανό το MongoDB να σας επιτρέψει να το ενοποιήσετε σε μία συλλογή.
Τύποι μοντέλων δεδομένων
Τώρα που γνωρίζετε πώς λειτουργεί η μοντελοποίηση δεδομένων στο MongoDB, ας δούμε τους τύπους μοντέλων δεδομένων που υποστηρίζονται από το MongoDB. Συνήθως, εξαρτάται από τη δομή του εγγράφου σας και τις σχέσεις δεδομένων της εφαρμογής σας.
Ενσωματωμένα μοντέλα δεδομένων
Μπορείτε να ενσωματώσετε δεδομένα σε ένα μόνο έγγραφο ή δομή στο MongoDB. Αναφέρεται επίσης ως μη κανονικοποιημένα μοντέλα δεδομένων, αξιοποιεί πλήρως τις δυνατότητες των πλούσιων εγγράφων της MongoDB. Για παράδειγμα, σκεφτείτε το ακόλουθο παράδειγμα: έχουμε μια συλλογή, Φοιτητές, που περιέχει ένα έγγραφο Ματ. Σε αυτό το έγγραφο, έχουμε ενσωματώσει δύο έγγραφα, στοιχεία επικοινωνίας και Βαθμός.
{
"_id": "4aad66a4c13bb24f12gh199e",
όνομα: "Ματ",
στοιχεία επικοινωνίας: {
τηλέφωνο: "555-555-1234"
διεύθυνση email: "[email protected]"
},
Βαθμός: {
θέμα: "CS101"
σκορ: "B"
}}
Η ενσωμάτωση αποθηκεύει σχετικές λεπτομέρειες στο ίδιο έγγραφο ή εγγραφή βάσης δεδομένων. Με αυτόν τον τρόπο, μπορείτε να ελαχιστοποιήσετε τα ερωτήματα και τις ενημερώσεις που απαιτούνται για την εκτέλεση κοινών λειτουργιών DB.
Πότε πρέπει να χρησιμοποιείτε ενσωματωμένα μοντέλα δεδομένων; Είναι χρήσιμα για τη βελτίωση της απόδοσης των λειτουργιών ανάγνωσης. Επιπλέον, είναι αποτελεσματικά για την επεξεργασία ανάκτησης δεδομένων μιας μόνο εγγραφής. Με αυτό το μοντέλο, μπορείτε να χρησιμοποιήσετε μια λειτουργία εγγραφής για να ενημερώσετε σχετικά δεδομένα.
Ωστόσο, υπάρχει κάτι που πρέπει να έχετε υπόψη: η ενσωμάτωση αυξάνει το μέγεθος του εγγράφου μετά τη δημιουργία του. Σε ορισμένες περιπτώσεις, αυτό μπορεί να επηρεάσει την απόδοση εγγραφής και υπάρχει επίσης η πιθανότητα κατακερματισμού δεδομένων λόγω του διευρυνόμενου μεγέθους του εγγράφου.
Τέλος, μπορείτε να αλληλεπιδράσετε με ενσωματωμένα έγγραφα χρησιμοποιώντας τη σημείωση κουκκίδων και να τα διασχίσετε με ευκολία. Εδώ είναι η σύνταξη:
field.nestedField: τιμή
Για το παραπάνω παράδειγμα, μπορείτε να αποκτήσετε πρόσβαση στα ένθετα έγγραφά σας γράφοντας το ακόλουθο ερώτημα:
db.students.find ({στοιχεία επικοινωνίας: {τηλέφωνο: "555-555-1234", διεύθυνση email: "[email protected]"}}). όμορφο ()
Ομαλοποιημένα μοντέλα δεδομένων (Αναφορές)
Τα μοντέλα κανονικοποιημένων δεδομένων χρησιμοποιούνται για τη δημιουργία μοντέλων σχέσεων από ένα προς πολλά και πολλά προς πολλά. Ενώ εργάζεστε με ενσωματωμένα μοντέλα εγγράφων, θα υπάρχουν φορές που πρέπει να επαναλάβετε δεδομένα. Αυτό είναι όπου οι αναφορές είναι χρήσιμες - αντιμετωπίζουν τον πλεονασμό. Δείτε πώς μπορούμε να χρησιμοποιήσουμε αναφορές για το παραπάνω παράδειγμα.
Έχουμε χωρίσει το ενιαίο μας έγγραφο σε τρία έγγραφα και έκτοτε στοιχεία επικοινωνίας και Βαθμός έχει το αναγνωριστικό από Ματ έγγραφο, μπορείτε να τα καλέσετε όταν χρειάζεται.
μαθητης σχολειου
{
_ταυτότητα:
όνομα χρήστη: "Matt"
}
στοιχεία επικοινωνίας
{
_ταυτότητα:
ταυτότητα χρήστη:
email: "[email protected]"
τηλέφωνο: "555-555-1234"
}
Βαθμός
ταυτότητα:
ταυτότητα χρήστη: ,
θέμα: "CS101",
σκορ: "B"
}
Όπως μπορείτε να δείτε, τα ομαλοποιημένα μοντέλα δεδομένων χωρίζουν τα δεδομένα σε πολλές συλλογές χρησιμοποιώντας αναφορές μεταξύ των νεότερων συλλογών. Μπορείτε να ενημερώσετε ένα μεμονωμένο έγγραφο, το οποίο θα ενημερώσει άλλες συλλογές. Αυτός είναι ένας αποτελεσματικός τρόπος ενημέρωσης δεδομένων και χρησιμοποιείται κυρίως όταν τα δεδομένα σας υποβάλλονται σε συχνές αλλαγές.
Εδώ είναι οι στιγμές που ένα κανονικοποιημένο μοντέλο δεδομένων είναι η πιο συνετή επιλογή:
- Πρέπει να μοντελοποιήσετε μεγάλα σύνολα δεδομένων που ακολουθούν μια συγκεκριμένη ιεραρχία.
- Πρέπει να αντιπροσωπεύσετε πολλές σχέσεις μεταξύ πολλών.
- Η ενσωμάτωση θα προκαλούσε επανάληψη δεδομένων χωρίς να ωφελήσει την απόδοση της ανάγνωσής σας σε επαρκή βαθμό.
Τώρα μπορείτε να μοντελοποιήσετε δεδομένα στο MongoDB με ευκολία
Μέχρι τώρα, γνωρίζετε πώς η μοντελοποίηση δεδομένων στο MongoDB διαφέρει από τα σχεσιακά DBM, ειδικά όταν πρόκειται για σχήμα. Έχετε επίσης μάθει για τους τύπους των μοντέλων δεδομένων στο MongoDB - απενεργοποίηση και κανονικοποίηση - και μάθετε πότε να τα χρησιμοποιήσετε.
Και αυτή είναι μόνο η αρχή. υπάρχουν πολλά περισσότερα για να μάθετε πώς το MongoDB μπορεί να οργανώσει τα δεδομένα σας.
Μια επιλογή επεξεργασίας είναι μια από τις πιο συχνά ζητούμενες δυνατότητες του Twitter. Γιατί λοιπόν η εταιρεία δεν θα το επιτρέψει;
Διαβάστε Επόμενο
- Προγραμματισμός
- βάση δεδομένων
Εγγραφείτε στο Newsletter μας
Εγγραφείτε στο ενημερωτικό δελτίο μας για τεχνικές συμβουλές, κριτικές, δωρεάν ebook και αποκλειστικές προσφορές!
Ένα ακόμη βήμα…!
Επιβεβαιώστε τη διεύθυνση email σας στο email που μόλις σας στείλαμε.