Bases de données NoSQL

Institut Supérieur d'Informatique
Page 1 sur 32Lecteur de document UniversityLib

Bases de données NoSQL

Institut Supérieur d'Informatique · Database Systems · lab

Voir tous les documents en bases de données

Bases de données NoSQL

Adel KHALFALLAH

Institut Supérieur d’Informatique

[email protected]

[email protected]

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

email

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