LMi-MAG15 sept - Flipbook - Page 53
Les bases de données NoSQL sont apparues en réponse
à ces limitations. Les systèmes NoSQL stockent et gèrent
les données d’une manière qui permet une vitesse opérationnelle élevée et une grande flexibilité pour les
développeurs. Nombre d’entre eux ont été développés
par des entreprises telles que Google, Amazon, Yahoo
et Facebook, qui cherchaient de meilleurs moyens de
stocker du contenu ou de traiter des données pour des
sites Web massifs. Contrairement aux bases de données
SQL, de nombreuses bases de données NoSQL peuvent
être mises à l’échelle horizontalement sur des centaines
ou des milliers de serveurs.
Les avantages du NoSQL ont cependant un coût. Ces
bases de données favorisent la vitesse et l’évolutivité
au détriment des propriétés ACID qui sous-tendent les
transactions fiables promises par les bases de données
SQL. Les capacités ACID garantissent que, si plusieurs
utilisateurs font de manière simultanée des modifications des données, toutes les modifications sont prises
en compte, dans un ordre précis et maîtrisé de manière
à avoir un résultat cohérent (intégrité des données) avec
l’historique des modifications faites par chacun. De plus,
les métaphores utilisées pour travailler avec les données
dans les systèmes NoSQL sont relativement nouvelles,
comparées aux décennies de connaissances institutionnelles accumulées autour des requêtes SQL.
Les bases de données SQL et NoSQL offrent des compromis différents. Bien qu’elles puissent être en concurrence
dans le contexte d’un projet spécifique - par exemple,
laquelle choisir pour telle ou telle application - elles sont
complémentaires dans un contexte plus large. Chacune
est adaptée à des cas d’utilisation différents. Il ne s’agit
pas tant de choisir entre les unes et les autres que de
savoir quel outil convient le mieux à la tâche.
NoSQL et SQL
La différence fondamentale entre SQL et NoSQL n’est
pas si compliquée. Chaque technologie a une philosophie différente sur la façon dont les données doivent être
stockées et récupérées.
Avec les SGBDR SQL, toutes les données ont une structure inhérente. Une base de données classique - comme
Microsoft SQL Server, MySQL, PostgreSQL ou Oracle utilise un schéma, c’est-à-dire une définition formelle
de la manière dont les données insérées dans la database
seront composées. Par exemple, une certaine colonne
dans une table peut être limitée aux seuls nombres entiers. Par conséquent, les données enregistrées dans
la colonne auront un degré élevé de normalisation. Le
schéma rigide d’une base de données SQL permet également d’effectuer relativement facilement des agrégations sur les données, par exemple en combinant les
données de deux tables à l’aide de la commande SQL
JOIN.
Avec NoSQL, les données peuvent être stockées sans
schéma ou de manière libre. Toutes les données peuvent
être stockées dans n’importe quel enregistrement. Parmi
les bases de données NoSQL, vous trouverez quatre modèles communs de stockage des données, qui conduisent
à quatre types communs de systèmes NoSQL :
1 - Les bases de données orientées documents (par
exemple, MongoDB). Les données insérées sont stockées sous la forme de structures JSON sans schéma, ou
“documents”, où les données peuvent être n’importe
quoi, des entiers aux chaînes de caractères en passant
par le texte libre. Il n’est pas nécessaire de préciser quels
champs, le cas échéant, un document JSON doit contenir.
2 - Les bases à clé-valeur (par exemple, Redis). Les valeurs libres, qu’il s’agisse de simples entiers ou chaînes
de caractères ou de documents JSON complexes, sont
accessibles dans la base de données au moyen de clés,
telles que des chaînes de caractères.
3 - Les bases orientées colonnes larges [wide-column]
(par exemple, Cassandra). Les données sont stockées en
colonnes et non en lignes comme dans un système SQL
classique. [Lire l’intégralité de l’article sur lemondeinformatique.fr]
APPROFONDIR
ÉCOUTER EN LIGNE
Podcast
cutt.ly/podcast-NoSQL
LIRE EN LIGNE
Article
cutt.ly/article-NoSQL
53