Μια γρήγορη επισκόπηση των σχεσιακών και μη σχεσιακών βάσεων δεδομένων

Μέχρι στιγμής, η εμπειρία μου με τις βάσεις δεδομένων ως προγραμματιστή έχει περιοριστεί σε σχεσιακές ("SQL") βάσεις δεδομένων. Ωστόσο, ενώ εξερευνούσα τις δημοφιλείς στοίβες τεχνολογίας που χρησιμοποιούν οι επαγγελματίες προγραμματιστές, βρήκα τη στοίβα MEAN (MongoDB, Express, γωνιακή και κόμβος), η οποία στη συνέχεια με οδήγησε στην έρευνα του MongoDB και την έννοια των βάσεων δεδομένων που δεν βασίζονται στις τεχνικές χρησιμοποιείται για την αποθήκευση δεδομένων σε σχεσιακές βάσεις δεδομένων.

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

Απλό παράδειγμα μιας σχεσιακής βάσης δεδομένων

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

Γιατί να χρησιμοποιήσετε μια βάση δεδομένων NoSQL;

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

Η αργή φόρτωση σελίδας αυξάνει σημαντικά το ποσοστό εγκατάλειψης

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

Οι βάσεις δεδομένων του NoSQL είναι πάντα η καλύτερη επιλογή;

Για εφαρμογές web με μεγάλη ποσότητα δεδομένων μόνο ανάγνωσης, όπου η ταχύτητα είναι πρωταρχικής σημασίας, οι βάσεις δεδομένων του NoSQL μπορεί να είναι μια καλή επιλογή. Ωστόσο, για πολύπλοκες βάσεις δεδομένων με μεγάλο αριθμό δομημένων και αλληλένδετων δεδομένων, η NoSQL μπορεί να μην είναι η καλύτερη λύση. Μια υπερβολικά απλουστευμένη βάση δεδομένων θα αναγκάσει πολύ την επιχειρησιακή λογική που επιβάλλεται σιωπηρά από ένα σχεσιακό μοντέλο δεδομένων στον πραγματικό κώδικα εφαρμογής σας. Οι βάσεις δεδομένων του NoSQL είναι επίσης γενικά λιγότερο ώριμες από ό, τι οι σχεσιακοί συνεργάτες τους. Αυτό σημαίνει ότι μπορούν να είναι λιγότερο σταθεροί, πράγμα που μπορεί να είναι ένα σημαντικό ζήτημα, εάν ασχολείστε με μεγάλα ποσά ευαίσθητων δεδομένων, όπως οικονομικές συναλλαγές ή ιατρικά δεδομένα. Η έλλειψη τυποποιημένης γλώσσας ερωτήματος μπορεί επίσης να είναι ένα ζήτημα. Οποιοσδήποτε είναι εξοικειωμένος με την SQL, μπορεί να επιταχύνει γρήγορα να κάνει ερωτήματα σε μια νέα βάση δεδομένων, ενώ η συνεργασία με μια βάση δεδομένων NoSQL μπορεί να απαιτεί εκμάθηση μιας διαφορετικής γλώσσας ερωτήματος, επιβραδύνοντας πόσο γρήγορα ένας νέος υπάλληλος μπορεί να φτάσει στην ταχύτητα και να είναι παραγωγικός. Τέλος, οι βάσεις δεδομένων του NoSQL διατίθενται συχνά σε ιστοσελίδες και εφαρμογές όπου μεγάλο μέρος της ροής δεδομένων περιστρέφεται γύρω από το CRUD. Σε καταστάσεις όπου απαιτείται πιο σύνθετη ανάλυση επιχειρήσεων, μια βάση δεδομένων SQL μπορεί να είναι μια καλύτερη επιλογή.

Σύγκριση διαφόρων βάσεων δεδομένων NoSQL σε μια σχεσιακή βάση δεδομένων

Πηγές / Περαιτέρω ανάγνωση

https://www.hadoop360.datasciencecentral.com/blog/advantages-and-disadvantages-of-nosql-databases-what-you-should-k