Aperçu rapide des bases de données relationnelles et non relationnelles

Jusqu'à présent, mon expérience des bases de données en tant que développeur s'est limitée aux bases de données relationnelles («SQL»). Cependant, tout en explorant les piles de technologies populaires utilisées par les développeurs professionnels, je suis tombé sur la pile MEAN (MongoDB, Express, Angular et Node), qui m’a ensuite amené à rechercher MongoDB et le concept de bases de données qui ne reposent pas sur des techniques. utilisé pour stocker des données dans des bases de données relationnelles.

Premièrement: une mise à jour rapide sur les concepts de base d’une base de données relationnelle. Les bases de données relationnelles sont basées sur le modèle relationnel de données, proposé pour la première fois par l'informaticien anglais EF Codd en 1970. Les données sont organisées en fonction de la relation entre chaque table et ces relations sont quantifiées en fonction des «clés étrangères» de chaque table. table, qui identifie les tables étrangères qui sont liées à la table actuelle que vous interrogez. Presque toutes les bases de données relationnelles utilisent SQL pour rechercher et maintenir la base de données.

Exemple simple de base de données relationnelle

Les bases de données non relationnelles ou «NoSQL» sont un terme générique pour les bases de données qui ne s'appuient pas sur le modèle susmentionné pour organiser les données. L'un des exemples les plus simples de ceci pourrait être une base de données organisée autour de paires clé-valeur. Les bases de données orientées document, organisées autour du principe que tous les enregistrements de la base de données sont des documents encodés dans un format de fichier normalisé (tel que JSON), constituent un autre exemple courant.

Pourquoi utiliser une base de données NoSQL?

Les bases de données non relationnelles peuvent présenter une simplicité attrayante par rapport aux bases de données relationnelles, dont la complexité augmente souvent rapidement à mesure que de plus en plus de relations entre les tables sont établies. Si vous savez que les données avec lesquelles vous allez travailler sont relativement simples, une simple collection de magasins de valeurs-clés peut suffire. Ce problème de complexité peut entraîner des problèmes de performances. Ce n'est pas un problème avec les petites applications que nous avons créées et avec lesquelles nous travaillons, mais pour une application ou un site Web comptant des millions d'utilisateurs, des bases de données relationnelles mal organisées peuvent ralentir considérablement votre application. Comme les bases de données NoSQL n’ont pas de tables de jointure, elles peuvent potentiellement effectuer des requêtes plus rapidement qu’une base de données relationnelle.

Le chargement lent des pages augmente considérablement votre taux de rebond

Les bases de données NoSQL peuvent également offrir une meilleure évolutivité si vous devez évoluer horizontalement plutôt que verticalement. La mise à l'échelle horizontale permet d'ajouter de la taille en ajoutant plus de machines pour répondre à vos besoins en données, tandis que la mise à l'échelle verticale y apporte une puissance de calcul supplémentaire. La mise à l'échelle horizontale est l'une des raisons pour lesquelles les bases de données NoSQL ont commencé à gagner en popularité, parallèlement à la popularité croissante d'Internet, les entreprises devant gérer simultanément des millions d'utilisateurs accédant à leur site Web.

Les bases de données NoSQL sont-elles toujours le meilleur choix?

Pour les applications Web avec une grande quantité de données en lecture seule, où la rapidité est primordiale, les bases de données NoSQL peuvent constituer un bon choix. Toutefois, pour les bases de données complexes contenant une grande quantité de données structurées et interdépendantes, NoSQL n'est peut-être pas la meilleure solution. Une base de données trop simpliste forcera une grande partie de la logique métier qui est implicitement appliquée par un modèle de données relationnel dans votre code d'application réel. Les bases de données NoSQL sont également généralement moins matures que leurs homologues relationnelles. Cela signifie qu'elles peuvent être moins stables, ce qui peut constituer un problème important si vous traitez de grandes quantités de données sensibles, telles que des transactions financières ou des données médicales. L'absence d'un langage de requête normalisé peut également être un problème. Toute personne familiarisée avec SQL peut rapidement créer des requêtes dans une nouvelle base de données, alors que travailler avec une base de données NoSQL peut nécessiter l’apprentissage d’un langage de requête différent, ce qui ralentit la rapidité avec laquelle un nouvel employé peut se mettre à niveau et être productif. Enfin, les bases de données NoSQL sont souvent commercialisées vers des sites Web et des applications où une grande partie du flux de données tourne autour de CRUD. Dans les cas où des analyses commerciales plus complexes sont nécessaires, une base de données SQL peut constituer un meilleur choix.

Comparaison de différentes bases de données NoSQL avec une base de données relationnelle

Sources / lectures supplémentaires

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