Bases de données NoSQL
Tutrice
Dr. Abir KHALDI
1
Plan
(cid:1) Introduction aux bases de données NoSql
(cid:1) Base de données orientée documents : MongoDB
(cid:1) Base de données orientée colonne : Hbase
(cid:1) Base de données orientée Graphe : Neo4j
(cid:1) Bases de données orientées clé/valeur : Redis
Dr Abir KHALDI
2
Objectifs pédagogiques
(cid:1) Comprendre la logique des bases de données NoSQL
(cid:1) Maîtriser les bases de données orientées document avec MongoDB
(cid:1) Maîtriser les bases de données orientées colonne avec Hbase
(cid:1) Maîtriser les bases de données orientées graphe avec Neo4J
(cid:1) Maîtriser les bases de données orientées clé/valeur avec Redis
Dr Abir KHALDI
3
Connaissance requise
(cid:1) Des connaissances générales en:
(cid:2) Systèmes d'information;
(cid:2) Bases de données relationnelles.
Dr Abir KHALDI
4
Chapitre 1.
Introduction aux Bases de données NoSql
(cid:1) Modèle relationnel
(cid:1) Bases de Données Non Relationnelle
(cid:1) Bases de données NoSQL
(cid:1) Bases de données NoSQL
(cid:1) BD relationnelle vs BD NoSql
(cid:1) Théorème CAP
(cid:1) Types Bases de données NoSQL
Dr Abir KHALDI
5
1.1 Modèle relationnel
(cid:1) Pour construire une base de données relationnelle:
1. Conception d'un MCD;
2. Passage du MCD au MLD.
Publicité
(cid:1) Ces deux modèles permettent d'identifier:
(cid:2) les entités (ou classes);
(cid:2) les attributs de ces entités;
(cid:2) les attributs de ces entités;
(cid:2) les relations qui existent entre ces entités.
(cid:1) En supposant que:
(cid:2) les données analysées sont représentatives des données à stocker;
(cid:2) le format des données restera inchangé au cours du temps.
Dr Abir KHALDI
6
1.1 Modèle relationnel: Problématique
(cid:1) Avec l’explosion des médias sociaux, le contenu axé sur l’utilisateur a connu
une croissance rapide et a augmenté le volume et le type de données
produites, gérées, analysées et archivées. En plus, de nouvelles sources de
données, telles que des capteurs, des GPS et d’autres systèmes de surveillance,
génèrent régulièrement d’énormes volumes de données.
opportunités pour
(cid:1) Ce grand volume de données, également appelés « Big data », ont introduit de
nouveaux défis et opportunités pour le stockage,
l’analyse
l’analyse et
stockage,
l’archivage des données. En plus, les données deviennent de plus en plus semi-
structurées et rares. Cela signifie que les bases de données SGBDR qui
nécessitent une définition de schéma et des références relationnelles sont
examinées.
gestion,
la gestion,
(cid:2) Traitement de données peu structurées
(cid:2) Traitement ayant une structure changeante..
Dr Abir KHALDI
7
Solution: Bases de Données Non Relationnelle
Solution: les Bases de Données Non Relationnelle
(cid:1) Les BDD non relationnelles sont parfaitement adaptées aux traitements de
données peu structurées et/ou ayant une structure changeante.
(cid:1) Google est le premier acteur économique d'importance qui a fait la promotion de
ce type de base. Il a mis en place un système dédié à la manipulation de gros
volumes de données basé sur:
volumes de données basé sur:
(cid:2) un système de fichiers distribués;
(cid:2) un système de bases de données orientée colonnes;
Publicité
(cid:2) un système de parallélisation des traitements nommé MapReduce.
Dr Abir KHALDI
8
2. Bases de Données Non Relationnelle :
Eléments d’un Framework Big Data
Les Frameworks de Big Data recouvrent 3 éléments complémentaires:
(cid:1) un système de bases de données non relationnelles appelées NoSQL;
(cid:1) un système de distribution des traitements;
(cid:1) un système de stockage de données en mémoire pour accélérer le traitements.
Dr Abir KHALDI
9
3. Bases de données NoSQL
"Le NoSQL regroupe de nombreuses bases de données, récentes pour la plupart,
qui
se caractérisent par une logique de représentation de données non
relationnelle et qui n’offrent donc pas une interface de requêtes en SQL."
Dr Abir KHALDI
10
3.Bases de données NoSQL : Caractéristiques
NoSQL: Not only SQL.
(cid:1) Les BDD NoSQL regroupent des solutions récentes qui se différencient du modèle
SQL par une logique de représentation de données différente.
(cid:1) Ils ont pris récemment une nouvelle dimension dans le cadre du stockage de très
grandes quantités de données: Big Data.
(cid:1) Ils constituent une nouvelle manière de représenter l'information en
(cid:1) Ils constituent une nouvelle manière de représenter l'information en
s’affranchissant des contraintes ACID:
(cid:2) Atomicité: une transaction se fait au complet ou pas du tout.
(cid:2) Cohérence: assure que chaque transaction amènera le système d'un état valide à un
autre état valide.
(cid:2) Isolation: les écritures et lectures des transactions réussies ne seront pas affectées
par les écritures et lectures d’autres transactions, qu’elles soient ou non réussies.
(cid:2) Durabilité: lorsqu'une transaction est confirmée, elle demeure enregistrée même à la
suite d'une panne.
Dr Abir KHALDI
11
4. BD relationnelle vs BD NoSql
Dr Abir KHALDI
12
5. Théorème CAP
Les propriétés que peuvent vérifier les systèmes de bases de données:
(cid:1) la cohérence (Consistency) : les clients lisent tous la même valeur au même moment,
Publicité
(cid:1) la disponibilité (Availability) : les données peuvent être lues et écrites à tout moment,
(cid:1) la résistance aux Partitions : les données peuvent être distribuées et résister à des
pannes de communication entre machines.
Selon le théorème CAP, chaque système privilégie deux de ces critères. Par exemple les
Selon le théorème CAP, chaque système privilégie deux de ces critères. Par exemple les
SGBD SQL ne garantissent que le couple CA, Cassandra privilégie AP, Hbase et
MongoDB uniquement CP.
Dr Abir KHALDI
13
6.Types Bases de données NoSQL
Attention: NoSQL signie Not Only SQL et non pas No SQL.
(cid:1) Il s'agit de compléments aux SGBDR pour des besoins spécifiques et non de
solutions de remplacement.
(cid:1) Les 5 représentations de base de données NoSQL:
(cid:2) BDD orientée Clé-valeur
(cid:2) BDD orientée Document
(cid:2) BDD orientée Document
(cid:2) BDD orientée Colonnes
(cid:2) BDD orientée Graphe
Dr Abir KHALDI
14
6.Types Bases de données NoSQL:
BDD orientée clé/valeur
C'est une représentation très simple avec une structure adaptée à la gestion du cache
ou pour un accès rapide aux informations. Elle fonctionne comme un grand tableau
associatif et retourne une valeur (complexe) a partir d'une clé.
(cid:1) Les lectures et écritures sont réduites à un accès disque simple.
(cid:1) Exemples implémentation:
(cid:2) Riak
(cid:2) Redis
(cid:2) Voldemort
(cid:2) DynamoDB
Dr Abir KHALDI
15
6.Types Bases de données NoSQL:
BDD orientée colonnes
Une autre évolution du modèle clé-valeur qui permet de disposer de plusieurs valeurs,
permettant ainsi de stocker les relations de type « un-plusieurs ».
(cid:1) La représentation orientée colonnes est celle qui se rapproche le plus des tables
dans une base de données relationnelles.
(cid:1) Elles permettent d'être beaucoup plus évolutive et flexible puisque chaque ligne
peut disposer de colonnes différentes.
Publicité
(cid:1) Exemple d'implémentations:
(cid:2) HBase
(cid:2) Cassandra
Dr Abir KHALDI
16
6.Types Bases de données NoSQL:
BDD orientée documents
C'est un type de base de données non relationnelle conçu pour stocker et interroger
des données sous forme de documents de type JSON.
(cid:1) La représentation orientée document est plus
adaptée au monde de l'internet.
adaptée au monde de l'internet
(cid:1) Cette représentation est
très proche de la
représentation clé-valeur à l'exception de la valeur
qui est représentée sous forme d'un document.
(cid:1) Les données d’un document sont organisées de
manière hiérarchique: un fichier XML ou JSON.
(cid:1) Exemples d'implémentation:
(cid:2) CouchDB
(cid:2) MongoDB
Dr Abir KHALDI
17
6.Types Bases de données NoSQL:
BDD orientée graphe
Une représentation qui permet la modélisation, le stockage et la manipulation de
données très complexes liées par des relations variées.
(cid:1) Cette représentation pallie à des problèmes impossibles à résoudre avec des BDD
relationnelles.
(cid:1) Domaine d’utilisation: les réseaux sociaux où l'aspect graphe prend tout son
(cid:1) Domaine d’utilisation: 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écrites.
(cid:1) Implémentations:
(cid:2) Neo4j
(cid:2) HypergraphDB
(cid:2) FlockDB
Dr Abir KHALDI
18