Nosql
Nosql
Nosql
2
Relationnel et non-relationnel
• Les BD NoSQL remettent en cause l'hégémonie des SGBDR telle qu'elle s'est constitué dans les années
1980.
• Les BD NoSQL sont essentiellement un retour à des modèles de données antérieurs à cette hégémonie,
telles que les représentations hiérarchique ou réseau qui existaient dans les années 60.
3
Bases de données NoSQL
Qu’est-ce qu’une base de données NoSQL ?
• NoSQL constitue une alternative aux BDR.
• Dans BDR, les données sont placées dans des tables.
• Dans BDR, le schéma de données est soigneusement conçu avant la construction du base de
données.
• Les bases de données NoSQL sont particulièrement utiles pour travailler avec de grands
ensembles de données distribuées.
4
Bases de données NoSQL
Pourquoi utiliser les bases de données NoSQL?
• Explosion des médias sociaux:
✓ Contenu croissant rapide.
✓ → Augmentation du volume.
✓ → Type de données produites, gérées, analysées et archivées.
• Nouvelles sources de données
✓ Des capteurs, des GPS et d’autres systèmes de surveillance, génèrent régulièrement
d’énormes volumes de données.
5
Bases de données NoSQL
Apparition du NoSQL
• Pour résoudre le problème lié aux données volumineuses et semi-structurées, les base de
données NoSQL sont apparues.
• Ces base de données se composent des données orienté colonnes, orienté document, orienté
graphe et orienté clé/valeur.
6
Bases de données NoSQL
Types de bases de données NoSQL
• Il existe principalement quatre catégories de bases de données NoSQL.
• Aucune base de données spécifique n’est préférable pour résoudre tous les problèmes.
• Vous devez sélectionner une base de données selon les besoins de votre projet.
• Voici les quatre types de bases de données NoSQL :
✓ Orienté clé-valeur
✓ Orienté colonne
✓ Orienté graphes
✓ Orienté document
7
Bases de données NoSQL
Orienté clé-valeur
• Une base de données orienté clé-valeur a une grande table de hachage de clés et de valeurs.
• Exemples de base de données clés-valeurs:
✓ Serveur Redis, Memcached et Scalaris
8
Bases de données NoSQL
Orienté colonne
• Chaque bloc de stockage contient des données provenant d’une seule colonne.
• Chaque colonne est traitée séparément.
• o Les valeurs des bases de données orienté colonne sont stockées de manière contiguë.
9
Bases de données NoSQL
Orienté colonne
• Ils fournissent des performances élevées sur les requêtes d’agrégation telles que COUNT, SUM,
AVG, MAX, etc., car les données sont facilement disponibles dans une colonne.
• Les bases de données NoSQL basées sur des colonnes sont largement utilisées pour gérer les
entrepôts de données, etc…
Exemples de BD : HBase, Cassandra, Hypertable
10
Bases de données NoSQL
Orienté graphes
• Une BD basée sur des graphes est une BD réseau qui utilise des nœuds pour représenter et
stocker des données.
Exemples : Neo4J, InfoGrid, Infinite Graph et FlockDB
11
Bases de données NoSQL
Orienté document
• Une BD NoSQL orienté document stocke et extrait les
données sous forme d’une paire clé/valeur, mais la partie
valeur est stockée sous forme de document.
• Le document est stocké aux formats JSON ou XML.
✓ JSON (JavaScript Objet Notation) est un langage léger
d'échange de données textuelles
✓ Le langage XML (eXtended Markup Language) est un
format général de documents orienté texte.
• La valeur est interprété par la base de données et peut être
interrogée.
Exemple : MongoDB 12
Bases de données NoSQL
Orienté document
13
Bases de données NoSQL
Différence clé entre SQL et NoSQL
14
Bases de données NoSQL
Relationnel et contrôle de l'intégrité des données
• Naissance de l'informatique: plusieurs modèles de stockage de l'information sont explorés,
comme les modèles hiérarchique ou réseau.
• Mais c'est finalement le modèle relationnel qui l'emporte dans les années 1970.
• Le modèle relationnel permet de mieux assurer le contrôle de l'intégrité des données, grâce à un
modèle théorique puissant et simple.
• On notera en particulier :
✓ Le schéma : règles de cohérence et déléguer leur contrôle au système
les jointures
✓ La transaction : le système assure le maintien d'états cohérents
15
Bases de données NoSQL
JavaScript Object Notation (JSON)
• JSON est un format de représentation logique de données, hérité de la syntaxe de création
d'objets en JavaScript.
• C'est un format réputé léger (il ne contient pas trop de caractères de structuration).
• Assez facilement lisible par les humains, Facilement parsable par les machines, et
indépendant des langages qui l'utilisent.
• Sa seule fonction est de décrire des données, qui sont ensuite utilisées différemment pour
chaque cas suivant le contexte).
16
Bases de données NoSQL
Problème de l'agrégat et développement des data Warehouses
JSON EST INDÉPENDANT DE TOUT LANGAGE
• Bien que JSON puise sa syntaxe du JavaScript, il est
indépendant de tout langage de programmation.
EXTENSION
• Un fichier au format JSON a pour extension ".json".
17
Bases de données NoSQL
Principaux usages de JSON
• Avec la montée en flèche des chargements asynchrones tels que l'AJAX (Asynchronous
JavaScript And XML) dans le web actuel (qui ne provoquent pas le rechargement total de la
page), il est devenu de plus en plus important de pouvoir charger des données organisées, de
manière rapide et efficace.
• Avec XML, le format JSON s'est montré adapté à ce type de besoins.
• APIs retournant des données au format JSON
✓ récupération de données du réseau social.
✓ récupération de données météo
• Les bases de données
✓ Le JSON est très utilisé dans des BD NoSQL (MongoDB, CouchDB, Riak...).
✓ Il est possible de soumettre des requêtes à des SGBDR et de récupérer une réponse en
18
JSON.
Bases de données NoSQL
La syntaxe JSON en bref
• Il ne doit exister qu'un seul élément père par document contenant tous les autres : un élément
racine.
• Tout fichier JSON bien formé doit être :
✓ soit un objet commençant par { et se terminant par }.
✓ soit un tableau commençant par [ et terminant par ].
• Cependant ils peuvent être vides, ainsi [] et {} sont des JSON valides.
• Les séparateurs utilisés entre deux paires/valeurs sont des virgules.
• Un objet JSON peut contenir d'autres objets JSON.
• Il ne peut pas y avoir d'éléments croisés.
19