Base de données:
Votre référentiel de données comment le structurer
vous avez beaucoup de données? quelles technologies?
La recherche d'information et le stockage à proprement de vos données sont stratégiques
Deux types de concepts s'affrontent
1) la base de donnée relationnel
2) la base de donnée nosql
Qu'est ce que cela veut dire? qu'aurais je besoin?
la base de donnée relationnelle conceptualise chaque entité par une table et crée des relations entre tables
concretement prenons comme exemple un arbre généalogique à modéliser la relation parent enfant
un parent c'est une table comprenant les colonnes nom prénom âge
un enfant a pour relation parent et comprend les colonnes nom prénom âge
un parent peut avoir plusieurs enfants :c'est une relation un à plusieurs
un enfant peut avoir un parent c'est une relation un un
Ainsi dans cette exemple simple vous pouvez lié les entités entre elles par un lien conceptuel la relation
Lors de vos recherches vous exécuterez une requête permettant de parcourir l'ensemble des tables et relations pour remonter l'information que vous souhaitez
dans un dialecte que la base comprends on appelle le langage SQL
Modéliser et conceptualiser une base de données comme nous venons de le faire dans ce court exemple s'appelle dénormaliser
Dans la base de donnée nosql, le concept est tout autre , au lieu de dénormaliser et éclater l'information en plusieurs tables liées par une relation nous allons
regrouper toute l'information nécéssaire dans un seul et unique endroit on parle de documents
Vous allez me dire quel est l'interêt? lorsque vous avez beaucoup de volumes, les requêtes sql sont exécutées par le moteur de votre base de données et sont coûteuses en CPU et mémoire
si vous concentrez l'information au même endroit le temps de recherche de l'information est réduit à son strict minimum
D'autant plus que quand la donnée n'est pas structurée, il n'est pas forcément facile de modéliser le modéle relationnel par exemple un fichier de log comment le représenter en base?
La base de données relationnelle n'est pas moins performante.
Sans rentrer dans les détails vous pouvez clusteriser (dupliquer vos instances) et répartir la charge de vos requêtes sur plusieurs instances (serveurs), ou vous pouvez créer des partitions logiques sur vos tables par exemple sur une date un peu comme un classeur
L'avantage du relationnel reste sa facilité à créer des requêtes sql pertinentes avec de nombreux critéres.
Par rapport à cela, la base de données nosql a l'avantage d'être plus facile à modéliser en centralisant le maximum d'information dans le même document, de préférence utiliser pour stocker de trés gros volumes
l'inconvénient sont les sauvegardes liées à la taille grandissante du volume de données pouvant être important et des requêtes plus compliquées à gérer quand vous souhaitez parcourir des familles de documents différents, ce qui peut arriver quand on a pas bien conceptuellement prévu dans le document, pour palier à cela dans le monde nosql il est courant de faire de la redondance d'information alors qu'en relationnelle on dénormalise en créant des entités uniques.
Ce court article décrit la différence fondamentale entre ces 2 technologies et a pour but de bien vous faire saisir la différence entre les 2 technologies.