Οι σχεσιακές βάσεις δεδομένων ήταν η λύση που προτιμούσαν για τη διαχείριση δεδομένων για δεκαετίες. Ωστόσο, ο αυξανόμενος όγκος και η ποικιλομορφία των δεδομένων που χαρακτηρίζουν τις σύγχρονες εφαρμογές ιστού έχουν καταστήσει τις βάσεις δεδομένων που βασίζονται σε έγγραφα, όπως η Mongo DB, έναν σοβαρό ανταγωνιστή. Θα εξηγήσουμε τι είναι η προσέγγιση που βασίζεται σε έγγραφα και τα οφέλη που προσφέρει αυτό το μοντέλο διαχείρισης δεδομένων.

Σε τι διαφέρει η MongoDB από άλλες βάσεις δεδομένων;

Στις παραδοσιακές σχεσιακές βάσεις δεδομένων, τα δεδομένα αποθηκεύονται σε έναν δομημένο πίνακα. Το MongoDB, το όνομα του οποίου προέρχεται από τη λέξη humongous (τεράστιο), είναι ένα σύστημα βάσεων δεδομένων προσανατολισμένο σε έγγραφα. Στο MongoDB, τα δεδομένα ομαδοποιούνται με μη δομημένο τρόπο σε αυτό που το πρόγραμμα βάσεων δεδομένων ονομάζει συλλογές.

Μια άλλη βασική διαφορά είναι ότι το MongoDB δεν χρησιμοποιεί SQL ως γλώσσα ερωτήσεων και, ως εκ τούτου, κατηγοριοποιείται ως σύστημα βάσεων δεδομένων NoSQL. Αντ’ αυτού, το MongoDB χρησιμοποιεί τη γλώσσα ερωτήσεων MongoDB Query Language (MQL) που βασίζεται σε JavaScript. Κατά συνέπεια, τα αρχεία MongoDB αποθηκεύονται σε μορφή BSON, η οποία είναι βασισμένη στο JSON. Αυτό σημαίνει ότι υποστηρίζονται όλοι οι τύποι δεδομένων JavaScript, γι’ αυτό και το MongoDB έχει καταστεί η ιδανική επιλογή για πολλές πλατφόρμες που βασίζονται σε JavaScript.

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

Πώς λειτουργεί το MongoDB;

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

Υπάρχουν πολλά εργαλεία που μπορείτε να χρησιμοποιήσετε όταν εργάζεστε με βάσεις δεδομένων MongoDB. Εκτός από το αξιόπιστο MongoDB Shell, μπορείτε επίσης να χρησιμοποιήσετε το GUI MongoDB Compass για τη διαχείριση βάσεων δεδομένων MongoDB. Σε αυτό το άρθρο, ωστόσο, θα επικεντρωθούμε στις εντολές Shell.

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

> db.students.find(Name : "Charlie")
> db.students.updateOne(Name : "Charlie", Semester : 2)
> db.students.deleteOne(Name : "Peter")
> db.students.insertOne({
Name : "Elsie"
Age : 18
Semester : 1
})

Στο παραπάνω παράδειγμα, υπάρχει μια σειρά εντολών βάσης δεδομένων MongoDB, οι οποίες έχουν όλες την ίδια δομή. Πρώτα, υπάρχει το «db», που αναφέρεται στη βάση δεδομένων στο σύνολό της, και μετά το «students», που αναφέρεται σε μια συγκεκριμένη συλλογή, όπου πρέπει να εκτελεστούν οι αντίστοιχες λειτουργίες. Μετά τη συλλογή ακολουθεί η μέθοδος (εύρεση, ενημέρωση, διαγραφή, εισαγωγή) που πρέπει να χρησιμοποιηθεί.

Μπορείτε να χρησιμοποιήσετε τη μέθοδο find() για να αναζητήσετε ένα συγκεκριμένο έγγραφο. Εάν αφήσετε το πεδίο παραμέτρου κενό, θα επιστρέψει όλα τα έγγραφα στη συλλογή που έχετε επιλέξει. Στο παραπάνω παράδειγμα, το MongoDB αναζητά όλα τα έγγραφα όπου το πεδίο «Όνομα» έχει την τιμή «Charlie».

Η μέθοδος updateOne() μπορεί να χρησιμοποιηθεί για την αντικατάσταση τιμών σε ένα έγγραφο. Η μέθοδος update() δέχεται δύο ορίσματα. Το πρώτο όρισμα είναι τα κριτήρια επιλογής και το δεύτερο είναι το ζεύγος κλειδιού-τιμής που θα αντικατασταθεί. Στο παράδειγμα, επιλέγονται όλοι οι μαθητές με το όνομα «Charlie». Στη συνέχεια, η τιμή «2» εισάγεται στο πεδίο «Semester» για τους μαθητές που ονομάζονται Charlie.

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

Η μέθοδος insertOne() δέχεται επίσης ένα όρισμα. Με αυτή τη μέθοδο, το όρισμα είναι το περιεχόμενο JSON του εγγράφου που θέλετε να προσθέσετε. Κατά την εισαγωγή εγγράφων, είναι σημαντικό να βεβαιωθείτε ότι κάθε έγγραφο στη συλλογή MongoDB έχει έναν μοναδικό δεκαεξαδικό αριθμό 12 byte. Αυτός ο αριθμός χρησιμεύει ως αναγνωριστικό αντικειμένου του εγγράφου. Εάν αυτό δεν καθοριστεί κατά την εισαγωγή του εγγράφου, το MongoDB θα δημιουργήσει αυτόματα ένα αναγνωριστικό για το έγγραφο.

Ποια είναι τα πλεονεκτήματα του MongoDB;

Η δομή του MongoDB προσφέρει πολλά οφέλη στους χρήστες, ειδικά όσον αφορά την ευελιξία και την επεκτασιμότητα. Ένα βασικό πλεονέκτημα της αποθήκευσης δεδομένων με βάση έγγραφα είναι ότι, σε αντίθεση με τις σχεσιακές βάσεις δεδομένων, δεν είναι απαραίτητο όλες οι εγγραφές να έχουν τα ίδια χαρακτηριστικά. Αυτό επιτρέπει την αποθήκευση μη δομημένων και ημιδομημένων δεδομένων. Επιπλέον, τα μεμονωμένα έγγραφα μπορούν να αναδιαρθρωθούν (για παράδειγμα, με την προσθήκη ή διαγραφή ενός χαρακτηριστικού/πεδίου) χωρίς να χρειάζεται να αναδιαρθρωθούν άλλα έγγραφα στην ίδια συλλογή. Δεδομένου ότι τα έγγραφα στο MongoDB αποθηκεύονται σε μορφή BSON, οι βάσεις δεδομένων MongoDB παρέχουν επίσης υψηλό βαθμό συμβατότητας με πολλές κοινώς χρησιμοποιούμενες πλατφόρμες JavaScript.

Εκτός από την αποθήκευση μη δομημένων δεδομένων, το MongoDB προσφέρει επίσης υψηλό βαθμό οριζόντιας επεκτασιμότητας χωρίς να παραβιάζει τις αρχές ACID (ατομικότητα, συνέπεια, απομόνωση, ανθεκτικότητα). Στις κατανεμημένες βάσεις δεδομένων, η διασφάλιση της συνέπειας μπορεί συχνά να αποτελεί πρόκληση, επειδή τα δεδομένα αποθηκεύονται σε διαφορετικούς διακομιστές. Όταν γίνονται αλλαγές σε πολλά έγγραφα ταυτόχρονα, αυτές οι αλλαγές ενδέχεται να μην διανέμονται αμέσως σε όλους τους διακομιστές που χρησιμοποιεί το σύστημα βάσεων δεδομένων. Εάν υπάρχει μεγάλος όγκος ερωτημάτων, αυτό μπορεί μερικές φορές να οδηγήσει σε ασυνέπεια των δεδομένων. Ωστόσο, με την κυκλοφορία του MongoDB 4.2 το 2019, είναι πλέον δυνατό να γίνονται αλλαγές σε πολλά έγγραφα σε διαφορετικούς διακομιστές χωρίς να θυσιάζεται η συνέπεια ή η διαθεσιμότητα.

Tip

Χρειάζεστε μια βάση δεδομένων προσανατολισμένη σε έγγραφα που να προσαρμόζεται στις απαιτήσεις της διαδικτυακής σας εφαρμογής; Το MongoDB είναι η ιδανική λύση!

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

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

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

Το MongoDB είναι ιδανικό για διαδικτυακά έργα που παρουσιάζουν τα ακόλουθα χαρακτηριστικά:

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

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

Go to Main Menu