Ce cours est une introduction aux nouveaux outils de gestion de bases de données massives, utilisés dans des environnements Big Data.
- Retour sur les BD relationnelles
- Contexte
- Typologie
- Compléments
Ce cours est une introduction aux nouveaux outils de gestion de bases de données massives, utilisés dans des environnements Big Data.
A l'heure actuelle, les BD classiquement utilisées sont les BD relationnelles :
Celles-ci sont gérées dans un SGBD permettant :
Utilisées dans quasiment toutes les applications, elles ont pour avantages :
Mais un nouveau contexte est apparu :
Il a donc fallu développer de nouveaux outils avec les caractéristiques suivantes :
On distingue deux grands types de passage à l'échelle
Vertical scaling (ou scaling up)
Horizontal scaling (ou scaling out)
La première coûtant rapidement très chère, la deuxième solution est celle privilégiée, selon deux possibilités :
D'autres solutions sont envisageables :
INSERT
, sans UPDATE
ou DELETE
JOIN
On parle maintenant de systèmes NoSQL (pour Not Only SQL)
Pourquoi on en (re)parle
Proposé par Brewer (2000), puis amélioré par la suite par Gilbert et Lynch.
Il existe trois propriétés essentielles d'un système :
Problème : Aucun système distribué ne peut respecter ces trois propriétés.
On a donc le choix entre :
Tous les systèmes actuels des géants du web sont dans cette configuration BASE
Il existe quatre principaux types de bases de données dites NoSQL (voir ce site web, d'autres existent mais nous n'en parlerons pas ici).
Scofield a proposé un comparatif de ceux-ci sur quelques critères (avec les SGBDR classiques en plus).
Data Model | Performance | Scalability | Flexibility | Complexity | Functionality |
---|---|---|---|---|---|
Key–Value Store | high | high | high | none | variable (none) |
Document-Oriented Store | high | variable (high) | high | low | variable (low) |
Column-Oriented Store | high | high | moderate | low | minimal |
Graph Database | variable | variable | high | high | graph theory |
Relational Database | variable | variable | low | moderate | relational algebra |
Principe :
Exemples :
4 opérations possibles (CRUD) :
create(key, value)
: on associe une valeur à la cléread(key)
: on renvoie la valeur qui correspond à la cléupdate(key, value)
: on met à jour la valeur correspondant à la clédelete(key)
: on supprime la valeur correspondant à la cléPour :
Contre :
Principe :
Exemples :
Un document est composé de champs associés à des valeurs (entier, numérique, chaîne, liste, tableau), dans un format type JSON ou XML
Grande hétérogénéité permise entre les documents, puisque la structure de ceux-ci n'est jamais pré-supposée
Pas de prototypage ou de modélisation des données en amont nécessaires
Pour
Contre
Principe :
Exemples :
Il existe deux sous-types de ce genre de système :
Bien qu'ils soient étiquetés dans le même groupe pour les BD NoSQL, ces deux types ne répondent pas aux mêmes besoins et il est important de savoir ce qu'on veut faire pour choisir entre les deux
Pour
NULL
présente dans les données)Contre
Principe :
Exemples :
Typiquement adapté aux traitements des problématiques de type réseaux sociaux ou de cartographie, et donc beaucoup plus rapide qu'un SGBDR dans un tel cadre
Particulièrement adapté à ce qu'on appelle le Web sémantique et les moteurs de recommandation
Pour
Contre