Bases de données NoSQL
Adel KHALFALLAH
Institut Supérieur d’Informatique
Adel KHALFALLAH - Génie logiciel - Bases de données NoSQL - Institut Supérieur d’Informatique - 1
Introduction
Adel KHALFALLAH - Génie logiciel - Bases de données NoSQL - Institut Supérieur d’Informatique - 1
Données : Nouveaux besoins
• Multimédia:
• Texte : mails, réseaux sociaux, blogs, …
• Graphiques : cartes routières, plans architecturaux,
circuits électroniques, …
•
Images : photographies, satellites, médicales (rayons X),
…
• Audio : discours, musique, synthétiseurs,…
• Vidéo : Films, animations, publicités, réunions à
distances, …
Adel KHALFALLAH - Génie logiciel - Bases de données NoSQL - Institut Supérieur d’Informatique - 1
Big data
• Selon Gartner group : « Big data is high-volume, high-velocity
and high-variety information assets that demand cost-effective,
innovative forms of information processing for enhanced insight and
decision making »
– Volume : estimation 2020 : 50 zettaoctets (50 000 000 000 000
000 000 000 octets) crées par an sur le web
– Variété : texte, audio, graphique, vidéo, structuré, semi-structuré
et non structuré
– Vitesse: Iot (temps réel) , streaming, l’entreprise doit s’adapter à
la rapidité des flots de données
• Problématique: comment générer de la valeur à partir de
ces ‘données massives’
Adel KHALFALLAH - Génie logiciel - Bases de données NoSQL - Institut Supérieur d’Informatique - 1
Limite des SGBD relationnels
• Schema on write
– Nécessité de modéliser les relations
– Les données qui n’obéissent pas aux contraintes sont rejetées
(l’avantage devient inconvénient !).
– Le schéma de données est difficile à faire évoluer
• L’implantation des relations est coûteuse
– Le disque dur n’est pas structuré en tables.
– La projection des tables sur les fichiers nécessitent des logiciels
spécialisés. Les coûts de stockage, de licences, de personnels
deviennent conséquents lorsque le volume de donnée augmente
• Les données non structurées sont mal supportées
– Le type BLOB (Binary Large OBject) est mal géré, les opérations sur ce
type sont inexistantes : recherche, calcul, …
• Transactions distribuées difficiles dans un contexte de données
volumineuses et variées
Adel KHALFALLAH - Génie logiciel - Bases de données NoSQL - Institut Supérieur d’Informatique - 1
Caractérisation des SGBD NoSQL
• NoSQL = Not Only SQL
• Non relationnel : pas de modèle relationnel, pas de jointure, les
agrégats de données doivent être stockées ensemble
• Distribution : les données sont stockées dans plusieurs serveurs, leur
localisation fait partie des métadonnées
– Sharding vertical: l’unité de distribution est la table: ‘Clients’ sur un
serveur et ‘Contrats’ sur un autre
– Sharding horizontal: l’unité de distribution est la ligne: les clients de ‘A’ à
‘M’ sur un serveur de ‘N’ à ‘Z’ sur un autre
• Open-source : la plupart des SGBD NoSQL sont libres de droits
• Evolutivité horizontale (horizontal scalability): augmenter le nombre
de serveurs permet d’offrir la puissance de traitement de données
requise du SGBD NoSQL
Adel KHALFALLAH - Génie logiciel - Bases de données NoSQL - Institut Supérieur d’Informatique - 1
Caractérisation des SGBD NoSQL
• Sans schéma: L’adjonction de données n’est pas soumise
à des contraintes de structures
• Réplications: Les SGBDs NoSQL offrent les réplications
de 2 types qui améliorent leurs disponibilité:
– Master/Slave : L’écriture se fait uniquement chez le maitre qui
réplique ses données sur plusieurs esclaves. La lecture se fait sur
les esclaves.
– Peer to peer : Chaque nœud du réseau est un serveur qui à la
fois publie les données qu’il reçoit en écriture et souscrit auprès
des autres nœuds pour répliquer les données qu’ils publient
• APIs accessibles: Les services offerts par les SGBD
NoSQL à travers leurs APIs permettent de manipuler les
données et faciliter l’écriture de programmes
Adel KHALFALLAH - Génie logiciel - Bases de données NoSQL - Institut Supérieur d’Informatique - 1
Théorème CAP
• Dans un contexte distribué, il y a 3 besoins :
– Consistency (consistance): Une donnée écrite sur un nœud est retrouvée
simultanément identique lorsqu’elle est lue sur un autre nœud
– Availability (disponibilité): une requête réussit toujours, même s’il y a des
nœuds défaillants, c’est-à-dire les nœuds fonctionnels répondent
correctement à toutes les requêtes
– Partition tolerance (tolérance au partitionnement): le système continue de
fonctionner même en cas de défaut de communication entre nœuds
•
Il est impossible d’avoir simultanément C, A et P:
– AP: Les nœuds sont disponibles même en cas de défaut de
communication, mais dans ce cas il ne sont pas consistants car non
synchronisés
– CP : Les nœuds sont consistants car ceux qui présentent des défaut de
communications ne sont pas disponibles
– CA : Les nœuds sont disponibles et consistants tant qu’il n’y a pas de
défaut de communications entre eux (dans la réalité, P est toujours offert)
Adel KHALFALLAH - Génie logiciel - Bases de données NoSQL - Institut Supérieur d’Informatique - 1
ACID (Relationnel) # BASE (NoSQL)
– Atomicité: Un ensemble d’écritures (transaction) à lieu intégralement ou pas du
tout, il ne peut pas se produire en partie
Publicité
– Cohérence: Lorsqu’il est observable (i.e. entre 2 transactions) le SGBD est
cohérent
– Isolation: Indépendance des transactions : leur exécution en parallèle revient à
leur exécution sérialisée. Il n’est pas possible de consulter l’état alors qu’une
transaction est en cours
– Durabilité: Une fois que la transaction est validée elle survit même au crash du
disque dur
– Basically Available : le système est fonctionnel la plupart du temps, même si
certains nœuds sont défaillants
– Soft-state : le système n’a pas besoin d’être immédiatement consistant, certaines
lectures peuvent fournir des données qui ne sont pas à jour
– Eventually consistent: la consistance est obtenue après une période: au fur et à
mesure du déroulement de la réplication, la consistance est atteinte.
La disponibilité l’emporte sur la cohérence
Adel KHALFALLAH - Génie logiciel - Bases de données NoSQL - Institut Supérieur d’Informatique - 1
Catégories des SGBD NoSQL
Wide column stores (base de données colonnes)
Une ligne est ‘compactée’ dans une colonne
Clé
Estampille
Famille de colonnes Articles
Famille de colonnes Stock
A001
A002
t1
t2
t3
t4
t5
t6
t1
t2
t3
t4
t5
t6
Articles : Groupe = ‘ Téléviseur‘
Articles : Désignation = ‘SONY SMT55 pouces’
Articles : Description = ‘…’
Articles : Prix = 2499
Articles : Groupe = ‘ PC Portable‘
Articles : Désignation = ‘ASUS I7 14 pouces ’
Articles : Description = ‘…’
Articles : Prix = 1729
Stock : Quantité = 10
Stock : localisation =‘1A’
Stock : Quantité = 6
Stock : localisation =‘3C’
Adel KHALFALLAH - Génie logiciel - Bases de données NoSQL - Institut Supérieur d’Informatique - 1
Catégories des SGBD NoSQL
Wide columns stores
• Schéma complexe, chaque ligne à une identification
unique
• L’estampille permet d’ordonner chronologiquement les
valeurs
• La famille de colonnes ‘Articles’ inclut 4 qualificateurs:
Groupe, Designation, Description, Prix qui sont valués
pour chaque ligne
• La famille de colonnes ‘Stock’ inclut 2 qualificateurs :
Quantité et localisation
Adel KHALFALLAH - Génie logiciel - Bases de données NoSQL - Institut Supérieur d’Informatique - 1
Catégories des SGBD NoSQL
Document store
{
{‘réf’ : ‘C122’,
‘intitulé’ : ’Bases de données NOSQL’
‘crédits’ : 7
‘Enseignant’ : ‘Adel’
}
{‘réf’ : ‘C123’,
‘intitulé’ : Programmation Objet’
‘crédits’ : 5
‘Enseignant’ : ‘Salah’
}
}
Adel KHALFALLAH - Génie logiciel - Bases de données NoSQL - Institut Supérieur d’Informatique - 1
Catégories des SGBD NoSQL
Document store
• Une collection est un groupe de documents relatifs à un même
domaine : Employés, Articles, Cours,…
• Un document est un ensemble ordonné de clés/valeurs. La clé est
une chaine qui référence une valeur particulière et valeur est une
chaine ou un document
JSON (Java Script Object Notation), BSON (Binary JSON) et XML
sont les formats généralement utilisés pour définir les documents
•
• Un document peut être intégré dans un autre document ce qui permet
de regrouper les données liées et d’améliorer les performances
• Sans schéma : la structure des documents n’est pas définie, il
appartient aux applications de vérifier la structure
Adel KHALFALLAH - Génie logiciel - Bases de données NoSQL - Institut Supérieur d’Informatique - 1
Catégories des SGBD NoSQL
Key – Value Store (base de donnée Clés – Valeurs)
K e y
C001
C002
Clients
Va l u e
‘Nom’ : ‘Ali’
‘Tel’ : ‘22456321’
‘Privilège’ : ‘Normal’
‘Nom’ : ‘Salah’
‘Tel’ : ‘54878323’
Publicité
‘Privilège’ : ‘Platinium’
{
}
{
}
K e y
A1
A2
Articles
Va l u e
{
}
{
}
‘Catégorie’ : ‘TV’
‘Marque’ : ‘Sharp’
‘Prix’ : 999
‘Catégorie’ : ‘PC’
‘Marque’ : ‘Dell’
‘Prix’ : 1999
Adel KHALFALLAH - Génie logiciel - Bases de données NoSQL - Institut Supérieur d’Informatique - 1
Catégories des SGBD NoSQL
Key – Value Store
• Key : Chaine de caractères identifiant unique
• Value : Objet qui peut-être une simple chaine ou un
numérique ou un BLOB complexe, un objet JSON, une
image de l’audio,…
• Les opérations offertes sont relatives à la clé: insertion,
suppression, modification et recherche
• Un espace de nommage est une structure logique
accueillant des paires key – value
Adel KHALFALLAH - Génie logiciel - Bases de données NoSQL - Institut Supérieur d’Informatique - 1
Catégories des SGBD NoSQL
Graph databases (Bases orientées graphe)
Les données sont représentées par un graphe
Pays : ‘France’
Ville: ‘Paris’
GMT : +2
Durée: 1h20
Durée: 2h40
Pays : ‘France’
Ville: ‘Marseille’
GMT : +2
Durée: 1h45
Pays : ‘Tunisie’
Ville: ‘Monastir’
GMT : +1
Adel KHALFALLAH - Génie logiciel - Bases de données NoSQL - Institut Supérieur d’Informatique - 1
Catégories des SGBD NoSQL
Graph Databases
• Les sommets sont des instances d’entités (i.e. ligne de
table)
• Les arcs sont des relations entre entités
• Les sommets et les arcs stockent les attributs et leurs
valeurs
Adel KHALFALLAH - Génie logiciel - Bases de données NoSQL - Institut Supérieur d’Informatique - 1
Catégories des SGBD NoSQL
Object Databases (Bases de données Objets)
1
Client
Compte
Login
Téléphone
ReadData
WriteData
commande
No
Date
*
*
ReadData
WriteData
DeleteData
CalculTotal
Menu
*
Id
Nom
Prix
ReadData
WriteData
commandeM
No
Date
ReadData
WriteData
DeleteData
Adel KHALFALLAH - Génie logiciel - Bases de données NoSQL - Institut Supérieur d’Informatique - 1
Catégories des SGBD NoSQL
Object Databases
• Combinent la programmation objet avec les SGBD
traditionnels
• Les données sont décrites par un diagramme de classes
Adel KHALFALLAH - Génie logiciel - Bases de données NoSQL - Institut Supérieur d’Informatique - 1
Catégories des SGBD NoSQL
XML Databases
<?xml version="1.0" encoding="UTF-8"?>
<LesCours>
<Cours c_no="C001">
<titre>Internet des Objets</titre>
<credits>5</credits>
<enseignant>Salah</enseignant>
Publicité
</Cours>
<Cours c_no="C002">
<titre>Deep Learning</titre>
<credits>4</credits>
<enseignant>Alia</enseignant>
</Course>
<!-- ... -->
</LesCours>
Adel KHALFALLAH - Génie logiciel - Bases de données NoSQL - Institut Supérieur d’Informatique - 1
Catégories des SGBD NoSQL
XML Databases
• Basés sur le formalisme XML
• Le schéma de la base correspond à la DTD
• Par exemple, la balise les cours permet de regrouper tous
les cours, la balise cours décrit un cours
Adel KHALFALLAH - Génie logiciel - Bases de données NoSQL - Institut Supérieur d’Informatique - 1
Catégories des SGBD NoSQL
Multidimensional Databases
Villes
Types clients
Tunis
Total
Total
Total
Gabes
Total
Total
Total
Bistouri Ciseau
Canule
Hôpitaux
Cliniques
Produits
Adel KHALFALLAH - Génie logiciel - Bases de données NoSQL - Institut Supérieur d’Informatique - 1
Catégories des SGBD NoSQL
Multidimensional Databases
• Les données sont stockées dans un tableau
multidimensionnel
Il est possible d’analyser chaque case du tableau
•
• Exemple : 3 dimensions
– Article
– Ville
– Type client
Il est alors possible d’obtenir le total des ventes des
bistouris aux cliniques dans la ville de Gabes
•
Adel KHALFALLAH - Génie logiciel - Bases de données NoSQL - Institut Supérieur d’Informatique - 1
Catégories des SGBD NoSQL
Multivalues Databases
No
E01
E01
E01
E01
Patronyme
Nom
Prénom
Lakhal
Ali
Labiadh
Lakhdhar
Lahmar
Ali
Ali
Ali
Club
{Musique, Dessin,
Poésie}
{Musique, Foot, Cinéma}
{Foot, Dessin}
{Musique, Cinema}
Adel KHALFALLAH - Génie logiciel - Bases de données NoSQL - Institut Supérieur d’Informatique - 1
Catégories des SGBD NoSQL
Multivalue Databases
• Un attribut peut être composé, par exemple ‘Patronyme’
est composé de ‘Nom’ et ‘Prénom’
• Un attribut peut-être multivalué, par exemple ‘Club’ reçoit
de multiples valeurs
Adel KHALFALLAH - Génie logiciel - Bases de données NoSQL - Institut Supérieur d’Informatique - 1
Catégories des SGBD NoSQL
Event Sourcing
Date
Personne
Numéro inscription
15/10/2020 10:20
Lakhal Ali
15/10/2020 15:10
Labiadh Ali
16/10/2020 09:05
Lakhdhar Ali
16/10/2020 11:05
Lahmar Ali
19/10/2020 09:35
Lazrag Ali
1
2
3
4
5
Adel KHALFALLAH - Génie logiciel - Bases de données NoSQL - Institut Supérieur d’Informatique - 1
Catégories des SGBD NoSQL
Event Sourcing
Publicité
• Adapté au stockage de l’historique d’événements pour
suivre l’état d’un événement donné
• Par exemple, pour le suivi de l’enregistrement de cours,
on considère que les deux premiers champs ‘Date’ et
‘Nom’ constituent un événement, le dernier champ
‘Numéro inscription’ permet de suivre le nombre d’inscrit
au cours
Adel KHALFALLAH - Génie logiciel - Bases de données NoSQL - Institut Supérieur d’Informatique - 1
Catégories des SGBD NoSQL
Time series databases (BD de séries chronologiques)
Date – Heure mesure
Indice Qualité Air
Densité des PM2.5
01/01/2020 00:00
01/01/2020 01:00
01/01/2020 02:00
…
01/01/2020 21:00
01/01/2020 22:00
01/01/2020 23:00
146
132
99
…
142
156
141
45
39
41
…
51
47
40
Adel KHALFALLAH - Génie logiciel - Bases de données NoSQL - Institut Supérieur d’Informatique - 1
Catégories des SGBD NoSQL
Time series databases
• Adapté à la gestion de données sous forme de séries
chronologiques, i.e. données associées à des estampilles
temporelles périodiques
• Par exemple, un système de suivi de la qualité de l’air
ambiant stocke régulièrement (toutes les heures) les
indices de la qualité de l’air et la densité des particules
fines inférieures à 2,5 m
Adel KHALFALLAH - Génie logiciel - Bases de données NoSQL - Institut Supérieur d’Informatique - 1
Catégories des SGBD NoSQL
• Grid and cloud databases
– Les données sont stockées sur le cloud, le grid computing permet
d’accélérer l’accès aux données. Caché as service est un service
web qui permet de retrouver rapidement les données accédées
fréquemment et qui sont stockés dans un cache
• DB Scientifiques et spécialisées
– Adapté à la gestion des données issues du domaine scientifque
Adel KHALFALLAH - Génie logiciel - Bases de données NoSQL - Institut Supérieur d’Informatique - 1
SGBD NoSQL par catégorie
Actuellement plus de 340 SGBD NoSQL sont répertoriés,
voici une classification des plus notoires selon les catégories
identifiées précédemment
No
Catégorie
SGBDs
1 Wide Column
Hadoop, MapR, Cassandra, HBase
2
3
4
5
6
7
Document
MongoDB, Oracle NoSQL Encryption, Azure
DocumentDB
Key – Value
DynamoDB, Redis, Azur Table Storage
Graph
Object
XML
Neo4J, FlockDB, Azure Cosmos
Db4o, Versant, ObjectStore
Oracle BerkleyDB, BaseX, MarkLogic
Multidimensional
Intersystems cache, GT.M, MiniM DB
Adel KHALFALLAH - Génie logiciel - Bases de données NoSQL - Institut Supérieur d’Informatique - 1
SGBD NoSQL par catégorie
No
8
9
Catégorie
SGBDs
Multivalue
jBase, Adabas, Unidata, U2, OpenInsight
Event Sourcing
Event store, IMB DB2 Event Store, es4j
10
Time series
InfluxDB, Kdb+, Promotheus
11 Grid and Cloud
GridGain, GigaSpaces, Oracle Coherence
12 Scientific & specialized BayesDB, GPUdb
Adel KHALFALLAH - Génie logiciel - Bases de données NoSQL - Institut Supérieur d’Informatique - 1