Vous êtes sur la page 1sur 23

NOSQL

Introduction:
Les bases de données NoSQL sont devenues un
sujet très à la mode dans le milieu du
développement web. Il n’est pas rare de tomber
sur des articles les présentant comme étant la
solution ultime à tous les problèmes rencontrés par
le développeur web, qu’il s’agisse de performance
ou encore de montée en puissance. Cet
enthousiasme trouve sa source dans les
nombreuses qualités intrinsèques des grands noms
du NoSQL, mais un certain nombre de points sont
à considérer avant de foncer tête baissée dans le
choix d’une solution de stockage non relationnelle,
alors c'est quoi le NOSQL, et quelles sont les
avantages et les inconvénients de ce base de
donnée moderne ?
Définition et fonction de
NOSQL

Nosql qui signifie Not Only sql est une approche de la


conception de bases de données qui peut s'adapter a
une grande variété de modèles de données (graph
data base).
Comment fonctionnent les bases de données NoSQL ?

Les bases de données NoSQL organisent les gros volumes de


données au moyen de techniques flexible tels que des
documents, graphiques, paires de valeurs et colonnes en ce
sens les systèmes NoSQL sont parfaitement adaptés aux
applications exigeant le traitement de larges volumes de
données sur les base de structures flexible.
Les systèmes NoSQL exploitent un cluster matériel et un serveur
cloud les capacités sont réparties de manière uniforme et la
base de données fonctionne avec fluidité les bases de données
NoSQL s'imposent comme une solution performante flexible et
évolutive pour le stockage de grosses quantités de données.
L'une des particularités des systèmes NoSQL est leur capacité
de dimensionnement horizontal
Les avantages:

• Conçu pour les systèmes distribués.


• Elle n'a pas de schéma (flexible).
• Base transaction.
• Les requêtes sont simple ( pas de jointure).
• Mise à l’échelle horizontale.
• Développement rapide.
• Fournir plusieurs modèles à choisir.
• Plus efficace.
Les inconvénients :

 Elle n'a pas de schéma.


 Pas de langage de requêtes standard et uniforme.
 Pas de transaction ACID (atomicité, cohérence, isolation et
durabilité).
 Manques de fonctionnalités .
Avantages du NoSQL par rapport à SQL

Selon l’objectif d’application, NoSQL présente certains


avantages par rapport aux bases de données relationnelles
classiques. Alors que les systèmes SQL sont rapidement saturés,
en cas d’utilisation avec des Big Data par exemple, les bases
de données NoSQL peuvent lire et traiter de gros volumes de
données à une vitesse record, grâce à ses modèles haute
performance évolutifs.
Inconvénients :

-Il n’existe pas de langage d’interrogation standardisé :


chaque éditeur a mis en place le sien .
-L’écriture de requêtes complexes est difficile à mettre
en œuvre.
-L’offre NoSQL est segmentée en plusieurs familles où
chacune répond à un besoin précis.
En Résumé

SQL NoSQL

Relationnelles Non relationnelles

Requêtes flexibles (jointure) Requêtes limitées

Dimensionnement vertical Dimensionnement horizontale

Schéma / tables Pas de schéma

Transactions sur plusieurs tables Difficile de supporter la


transaction
ACID (Atomicity, Consistency, BASE (Basically Available, Soft
Isolation, Durability) State, Eventual Consistency )
Les familles de NoSQL:

Le NoSQL regroupe 4 grandes familles de base de


données qui permettent d'offrir une représentation
différentes des données, chacune dispose
d'avantages et d'inconvénients en fonction du
contexte dans lequel on souhaite l'utiliser. Il existe :
Bases de données documentaires
Bases de données graphiques
Bases de données Clé-Valeur (Key Value)
Bases de données orientées par colonne
Bases de données documentaires :
La représentation orientée document est plus adaptée au
monde de l'internet. Cette représentation est très proche de la
représentation clé-valeur à l'exception faite que la valeur est
représentée sous la forme d'un document. On peut retrouver
dans ce document les données organisées de manière
hiérarchique comme ce que l'on trouve dans un fichier XML
(L’eXtensible Markup Language, généralement appelé XML, «
langage de balisage extensible » en français, est un métalangage
informatique de balisage générique qui est un sous-ensemble du
Standard Generalized Markup Language).
Bases de données documentaires :
ou JSON. (JavaScript Object Notation est un format de
données textuelles dérivé de la notation des objets du
langage JavaScript. Il permet de représenter de l’information
structurée comme le permet XML par exemple.
On trouve 2 types d'implémentations:
CouchDB et MongoDB.
Bases de données graphiques :

La représentation orientées graphe est pour palier à des


problèmes impossibles à résoudre avec des BDD relationnelles.
Le cas d'utilisation typique est bien sur les réseaux sociaux où
l'aspect graphe prend tout son sens, mais aussi où des
relations complexes entre les acteurs ont besoin d'être décrits .
On trouve 3 implémentations différentes:
Neo4j, HypergraphDB et FlockDB.
Bases de données Clé-Valeur (Key Value) :

La représentation en clé-valeur est la plus simple et est très


adaptée aux caches ou aux accès rapides aux informations.
Cette représentation permet en général d’atteindre des
performances bien supérieures dans la mesure où les lectures
et écritures sont réduites à un accès disque simple. On trouve 3
différentes implémentations: Riak, Redis et Voldemort.
Bases de données orientées par colonne :

La représentation orientée colonnes est celle qui se rapproche


le plus des tables dans une base de données relationnelles.
Elles permettent d'être beaucoup plus évolutive et flexible
puisqu'on peut disposer de colonnes différentes pour chaque
ligne. On trouve 2 types
d'implémentations: HBase et Cassandra.
Aperçu de quatre solutions NoSQL
privilégiées
La plupart des bases de données NoSQL sont des logiciels
Open Source librement disponibles aux internautes. Ils sont
ainsi aisément accessibles. Vous pouvez télécharger
gratuitement de nombreuses applications NoSQL, vous
familiariser avec elles, puis les utiliser en complément de votre
base de données SQL. Les bases de données NoSQL ci-
dessous ont déjà fait leurs preuves.
1-casandra: est une base de données NoSQL en
colonnes, optimisée pour le stockage et le
traitement de jeux de données volumineux.

2-cauch DB :La base de données documentaire


cauch DB exploite une API intuitive HTTP/JSON et
peut être utilisée dans n’importe quel domaine
d’application, que ce soit pour des Big Data et
des applications mobiles ou encore Web.
3-Neo4j: Avec Neo4J, vous pouvez intégrer vos
données au sein d’une base de données graphique
NoSQL basée sur le Cloud. En première ligne, vous
pouvez ainsi représenter dans des graphiques les
relations entre les différents jeux de données et
reconnaître des modèles définis.

4-Redis :La base de données Clé-Valeur redis est ce


que l’on appelle une base de données en mémoire :
elle enregistre directement les données dans le cache
et vous garantit ainsi de meilleures performances
Conclusion

Les bases de données NoSQL ne sont


donc pas la solution miracle pour
répondre à toutes les problématiques de
stockage sur le web ou ailleurs. Il est
surtout très important de bien comprendre
ce que le choix d’une base de données
de ce type va avoir comme
conséquences en terme d’architecture
logicielle et complexité de
développement.

Vous aimerez peut-être aussi