SlideShare une entreprise Scribd logo
Bases de données aujourd’hui et bases de données
NoSQL
Antoine Augusti
Thibaud Dauce
Géraldine Del Mondo
20 février 2015
1 Architecture web et relationnel
Architecture classique
Bilan architecture classique
Qu’est-ce qu’un ORM ?
2 Au delà du SQL : les BDs NoSQL
Pourquoi changer du relationnel ?
Relâchement des contraintes de transactions
À quoi ressemble une BD NoSQL
3 Les types de bases de données NoSQL
Bases de données clé-valeur
Bases de données orientées documents
Bases de données orientées graphes
4 Conclusion
Bonnes pratiques
NoSQL ou relationnel ?
1 Architecture web et relationnel
Architecture classique
Bilan architecture classique
Qu’est-ce qu’un ORM ?
2 Au delà du SQL : les BDs NoSQL
Pourquoi changer du relationnel ?
Relâchement des contraintes de transactions
À quoi ressemble une BD NoSQL
3 Les types de bases de données NoSQL
Bases de données clé-valeur
Bases de données orientées documents
Bases de données orientées graphes
4 Conclusion
Bonnes pratiques
NoSQL ou relationnel ?
Architecture classique
Figure : La stack LAMP.
Stacks habituelles :
LAMP : Linux, Apache, MySQL, PHP — la plus commune ;
LEMP : Linux, Nginx, MySQL, PHP-FPM — commence à
remplacer LAMP ;
MEAN : MySQL, Express, AngularJS, Node.js — pour du
JavaScript côté serveur.
Architecture web et relationnel Architecture classique 20 février 2015 4 / 30
Bilan architecture classique
Avantages :
Rapide à mettre en place (installation en un clic
généralement) ;
Optimisation possible, verticalement le plus souvent ;
Inconvénients :
Il faut une expertise base de données.
Architecture web et relationnel Bilan architecture classique 20 février 2015 5 / 30
Qu’est-ce qu’un ORM ?
Définition : ORM
L’Object-Relationnal Mapping est une technique qui simule une
base de données orientée objet à partir d’une base de données
relationnelle.
Fait la liaison entre le monde relationnel dans la couche
stockage et le monde objet dans l’application ;
Facilité de développement : pas besoin d’une connaissance
poussée du SQL ;
Facilite les interactions avec la base de données pour les
développeurs.
Les limites des ORM
Toujours beaucoup moins performant que des requêtes SQL
optimisées.
Architecture web et relationnel Qu’est-ce qu’un ORM ? 20 février 2015 6 / 30
ORM : exemple de requêtes
1 <?php
2 // Création d’un utilisateur
3 $data = [
4 ’prenom’ => ’Antoine’,
5 ’age’ => 42
6 ];
7 $user = User::create($data);
8
9 // Sélection des utilisateurs majeurs et articles qu’ils ont écrits
10 $users = User::with(’articles’)
11 ->where(’age’, ’>=’, 18)
12 ->get();
13
14 // Suppression des utilisateurs vivant à Paris
15 User::where(’prenom’, ’Antoine’)->delete();
16
17 // Les derniers articles d’un utilisateur (3ème page)
18 $articles = Article::whereUserId($user->id)
19 ->latest()
20 ->take(10)
21 ->skip(20)
22 ->get();
Listing 1: Quelques requêtes basiques avec l’ORM Eloquent (PHP).
D’autres ORM : Hibernate (Java), SQLAlchemy (Python), Mongoose (Node.js). . .
Architecture web et relationnel Qu’est-ce qu’un ORM ? 20 février 2015 7 / 30
1 Architecture web et relationnel
Architecture classique
Bilan architecture classique
Qu’est-ce qu’un ORM ?
2 Au delà du SQL : les BDs NoSQL
Pourquoi changer du relationnel ?
Relâchement des contraintes de transactions
À quoi ressemble une BD NoSQL
3 Les types de bases de données NoSQL
Bases de données clé-valeur
Bases de données orientées documents
Bases de données orientées graphes
4 Conclusion
Bonnes pratiques
NoSQL ou relationnel ?
Problèmes liés au relationnel
Service réparti sur plusieurs continents ?
Accès concurrent de plusieurs centaines de milliers de
personnes ?
Stockage d’objets avec prise en compte de l’héritage ?
Reconnaissance automatique d’images ou traitement
automatique de textes ?
Au delà du SQL : les BDs NoSQL Pourquoi changer du relationnel ? 20 février 2015 9 / 30
Pourquoi changer du relationnel ?
Besoin d’une alternative vers les années 2004 avec l’arrivée du Big
Data.
Des volumes de données important (plusieurs gigas, voire
téraoctets) ;
Un nombre de transactions très important, une forte demande
de disponibilité et de temps de réponse ;
Des bases de données réparties sur plusieurs centres de
données ou continents ;
Préférence pour l’ajout de petites machines plutôt qu’une
configuration poussée des BDs.
Au delà du SQL : les BDs NoSQL Pourquoi changer du relationnel ? 20 février 2015 10 / 30
Relâchement des contraintes de transactions
Impossible de garantir les propriétés ACID des BDs relationnelles
avec les nouvelles contraintes.
De nouvelles propriétés BASE, suite au théorème CAP :
Basic Availability : système disponible dans son ensemble bien
que certaines machines soient indisponibles ;
Soft state : l’état du système distribué peut changer, même
sans nouvelles transactions ;
Eventual Consistency : En l’absence de nouvelles transactions,
le système sera cohérent au bout d’un temps.
Au delà du SQL : les BDs NoSQL
Relâchement des contraintes de
transactions 20 février 2015 11 / 30
À quoi ressemble une BD NoSQL
Un SGBD qui n’est pas structuré en tables et dont l’élément de
base n’est pas un tuple mais dépend du type de BD NoSQL ;
Un langage de requête non uniformisé, propre à chaque BD.
Souvent au format JSON avec une API REST ;
Une dénormalisation des données où certains enregistrements
sont en partie ou entièrement dupliqués ;
Type de base de données NoSQL à choisir en fonction de
l’usage souhaité ;
Types de base de données NoSQL existants : clé-valeur,
colonnes, documents, graphe. . .
Au delà du SQL : les BDs NoSQL À quoi ressemble une BD NoSQL 20 février 2015 12 / 30
1 Architecture web et relationnel
Architecture classique
Bilan architecture classique
Qu’est-ce qu’un ORM ?
2 Au delà du SQL : les BDs NoSQL
Pourquoi changer du relationnel ?
Relâchement des contraintes de transactions
À quoi ressemble une BD NoSQL
3 Les types de bases de données NoSQL
Bases de données clé-valeur
Bases de données orientées documents
Bases de données orientées graphes
4 Conclusion
Bonnes pratiques
NoSQL ou relationnel ?
Modélisation BD clé-valeur
Modélisation : la plus simple. À une clé, on associe une
valeur. La valeur peut être de n’importe quel type (chaîne de
caractères, entier, structure, objet sérialisé. . .).
Des exemples de paires clé-valeur avec des types différents.
Clé Valeur
pays.id-42 {"id" :42,"name" :"Chad"}
statistiques.nombre-visiteurs 1337
configuration.periode-gratuite false
articles.categories-sport.latest [22, 45, 67, 200, 87]
Les types de bases de données NoSQL Bases de données clé-valeur 20 février 2015 14 / 30
BD clé-valeur en détail
Opérations : création d’une paire clé-valeur, suppression,
accès à une valeur à l’aide de la clé, incrémentation et
décrémentation d’une valeur ;
On peut définir la durée de vie d’une paire clé-valeur ou
adopter une politique least recently used ;
Stockage en RAM pour accélérer les temps de lecture.
Mécanisme de reprise en cas de crash ;
Cas d’utilisation : cache d’une autre BD, comptage
d’éléments, gestion de files d’attente, opérations
ensemblistes. . .
Principaux acteurs : Redis, Memcached, Riak.
Les types de bases de données NoSQL Bases de données clé-valeur 20 février 2015 15 / 30
Commandes sous Redis
1 # Assignation de chaîne "bonjour" à la clé "cleTexte"
2 redis> SET cleTexte bonjour
3 OK
4 # Récupération de la valeur de la clé "cleTexte"
5 redis> GET cleTexte
6 "bonjour"
7
8 # Incrémentation d’un compteur
9 redis> INCR compteur
10 (integer) 42
11 # Suppression du compteur
12 redis> DEL compteur
13 (integer) 1
14
15 # Création d’une liste avec insertion en fin de liste
16 redis> RPUSH liste "Hello"
17 (integer) 1
18 # Insertion en fin de liste
19 redis> RPUSH liste "World"
20 (integer) 2
Listing 2: Quelques commandes Redis en console.
Les types de bases de données NoSQL Bases de données clé-valeur 20 février 2015 16 / 30
Bases de données orientées documents
Modélisation : aucun schéma fixe, un document peut
contenir n’importe quel type d’information ;
Optimisation horizontale ;
Opérations : utilise le JSON pour les requêtes et l’améliore
pour le stockage (BSON) ;
Facile d’accès (API REST, shell. . .) ;
Cas d’utilisation : base de données principalement utilisées
pour du stockage ;
Principaux acteurs : MongoDB, CouchDB, CouchBase.
Les types de bases de données NoSQL Bases de données orientées documents 20 février 2015 17 / 30
Exemple d’un document
1 {
2 "id":1500,
3 "nom":"Thibaud",
4 "prénom":"Dauce",
5 "professeur_préférée":{
6 "numero":42,
7 "prenom":"Géraldine",
8 "nom":"Del Mondo",
9 "matières": ["BD", "Réseaux"]
10 },
11 "commentaires":[
12 {
13 "id":646,
14 "contenu":"J’adore la BD."
15 },
16 {
17 "id":647,
18 "contenu":"Boule et Bill aussi."
19 },
20 {
21 "id":648,
22 "contenu":"Et pleins d’autres trucs."
23 }
24 ]
25 }
Listing 3: Exemple d’un document JSON.
Les types de bases de données NoSQL Bases de données orientées documents 20 février 2015 18 / 30
Exemples de requêtes MongoDB
db.inventory.find( { type: "snacks" } )
Listing 4: Exemple de requête find sur MongoDB.
Les types de bases de données NoSQL Bases de données orientées documents 20 février 2015 19 / 30
Exemples de requêtes MongoDB
db.inventory.find(
{
type: ’food’,
$or: [ { qty: { $gt: 100 } }, { price: { $lt: 9.95 } }
}
)
Listing 5: Exemple de requête find sur MongoDB avec des opérateurs
spéciaux.
Les types de bases de données NoSQL Bases de données orientées documents 20 février 2015 20 / 30
Exemples de requêtes MongoDB
db.inventory.insert(
{
item: "ABC1",
details: {
model: "14Q3",
manufacturer: "XYZ Company"
},
stock: [
{ size: "S", qty: 25 },
{ size: "M", qty: 50 }
],
category: "clothing"
}
)
Listing 6: Exemple de requête insert sur MongoDB.Les types de bases de données NoSQL Bases de données orientées documents 20 février 2015 21 / 30
Exemples de requêtes MongoDB
db.inventory.update(
{ item: "MNO2" },
{
$set: {
category: "apparel",
details.model: "14Q2"
},
$currentDate: { lastModified: true }
}
)
Listing 7: Exemple de requête update sur MongoDB.
Les types de bases de données NoSQL Bases de données orientées documents 20 février 2015 22 / 30
Bases de données orientées graphes
Figure : Exemple de graphe.
Les types de bases de données NoSQL Bases de données orientées graphes 20 février 2015 23 / 30
Bases de données orientées graphes
Modélisation : représentation de l’information de manière
très particulière (nœuds et arcs de même importance) ;
Opérations : traitement très particulier de l’information (voir
slide précédente) ;
Cas d’utilisation : utilisé principalement pour les réseaux
(liens entre des équipements ou des personnes) ;
Base de données rarement utilisée pour du stockage ;
Principaux acteurs : Neo4j, Titan, OrientDB.
Les types de bases de données NoSQL Bases de données orientées graphes 20 février 2015 24 / 30
Bases de données orientées graphes
Figure : Exemple de graphe.
Les types de bases de données NoSQL Bases de données orientées graphes 20 février 2015 25 / 30
Exemple de requête
Figure : Exemple de requête Cypher pour Neo4j.
Les types de bases de données NoSQL Bases de données orientées graphes 20 février 2015 26 / 30
1 Architecture web et relationnel
Architecture classique
Bilan architecture classique
Qu’est-ce qu’un ORM ?
2 Au delà du SQL : les BDs NoSQL
Pourquoi changer du relationnel ?
Relâchement des contraintes de transactions
À quoi ressemble une BD NoSQL
3 Les types de bases de données NoSQL
Bases de données clé-valeur
Bases de données orientées documents
Bases de données orientées graphes
4 Conclusion
Bonnes pratiques
NoSQL ou relationnel ?
Les bonnes pratiques du NoSQL
Bien connaître ses données ;
Ne pas avoir peur de la redondance ;
Ne pas trop redonder ;
Et surtout, bien quantifier ses besoins.
RTFM
La majorité des bases de données NoSQL connues sur le marché
possèdent une très bonne documentation, souvent faite à
destination de personnes venant du monde du relationnel.
Conclusion Bonnes pratiques 20 février 2015 28 / 30
NoSQL ou relationnel ?
Les deux mon capitaine !
Les bases de données NoSQL ont été inventées afin de résoudre des
problèmes insolubles par les bases de données relationnelle et non
pas pour les remplacer.
NoSQL Relationnel
stockage de masse stockage fiable
données diverses données formatées
scalabilité horizontale scalabilité verticale
Conclusion NoSQL ou relationnel ? 20 février 2015 29 / 30
Choix du type de BD NoSQL
Modélisation Cas d’utilisation
Clé / valeur Modélisation simple, per-
mettant d’indexer des infor-
mations diverses via une clé
Mise en cache
Documents Modélisation souple per-
mettant de stocker des do-
cuments au format JSON
dans des collections
Stockage de masse
Graphes Modélisation optimisée
pour les problèmes de
graphes
Stockage provisoire
pour traiter les don-
nées
Conclusion NoSQL ou relationnel ? 20 février 2015 30 / 30

Contenu connexe

Tendances

Les BD NoSQL
Les BD NoSQLLes BD NoSQL
Les BD NoSQL
Minyar Sassi Hidri
 
BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big Data
Lilia Sfaxi
 
Cours Big Data Chap2
Cours Big Data Chap2Cours Big Data Chap2
Cours Big Data Chap2
Amal Abid
 
BigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherBigData_Chp5: Putting it all together
BigData_Chp5: Putting it all together
Lilia Sfaxi
 
Technologies pour le Big Data
Technologies pour le Big DataTechnologies pour le Big Data
Technologies pour le Big Data
Minyar Sassi Hidri
 
Cours Big Data Chap1
Cours Big Data Chap1Cours Big Data Chap1
Cours Big Data Chap1
Amal Abid
 
Chapitre 2 hadoop
Chapitre 2 hadoopChapitre 2 hadoop
Chapitre 2 hadoop
Mouna Torjmen
 
Cours Big Data Chap5
Cours Big Data Chap5Cours Big Data Chap5
Cours Big Data Chap5
Amal Abid
 
Les Base de Données NOSQL
Les Base de Données NOSQLLes Base de Données NOSQL
Les Base de Données NOSQL
kamar MEDDAH
 
Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)
Alexis Seigneurin
 
Introduction NoSql 201406 - lbroudoux
Introduction NoSql 201406 - lbroudouxIntroduction NoSql 201406 - lbroudoux
Introduction NoSql 201406 - lbroudoux
Laurent Broudoux
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & Spark
Alexia Audevart
 
Introduction à Neo4j
Introduction à Neo4jIntroduction à Neo4j
Introduction à Neo4j
Neo4j
 
Introduction au BIG DATA
Introduction au BIG DATAIntroduction au BIG DATA
Introduction au BIG DATA
Zakariyaa AIT ELMOUDEN
 
NoSQL et Big Data
NoSQL et Big DataNoSQL et Big Data
NoSQL et Big Data
acogoluegnes
 
Big data: NoSQL comme solution
Big data: NoSQL comme solutionBig data: NoSQL comme solution
Big data: NoSQL comme solutionJEMLI Fathi
 
TP1 Big Data - MapReduce
TP1 Big Data - MapReduceTP1 Big Data - MapReduce
TP1 Big Data - MapReduce
Amal Abid
 
BigData_TP4 : Cassandra
BigData_TP4 : CassandraBigData_TP4 : Cassandra
BigData_TP4 : Cassandra
Lilia Sfaxi
 
BigData_TP5 : Neo4J
BigData_TP5 : Neo4JBigData_TP5 : Neo4J
BigData_TP5 : Neo4J
Lilia Sfaxi
 

Tendances (20)

Les BD NoSQL
Les BD NoSQLLes BD NoSQL
Les BD NoSQL
 
BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big Data
 
Cours Big Data Chap2
Cours Big Data Chap2Cours Big Data Chap2
Cours Big Data Chap2
 
BigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherBigData_Chp5: Putting it all together
BigData_Chp5: Putting it all together
 
Technologies pour le Big Data
Technologies pour le Big DataTechnologies pour le Big Data
Technologies pour le Big Data
 
Cours Big Data Chap1
Cours Big Data Chap1Cours Big Data Chap1
Cours Big Data Chap1
 
Chapitre 2 hadoop
Chapitre 2 hadoopChapitre 2 hadoop
Chapitre 2 hadoop
 
Cours Big Data Chap5
Cours Big Data Chap5Cours Big Data Chap5
Cours Big Data Chap5
 
Les Base de Données NOSQL
Les Base de Données NOSQLLes Base de Données NOSQL
Les Base de Données NOSQL
 
Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)
 
Introduction NoSql 201406 - lbroudoux
Introduction NoSql 201406 - lbroudouxIntroduction NoSql 201406 - lbroudoux
Introduction NoSql 201406 - lbroudoux
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & Spark
 
Introduction à Neo4j
Introduction à Neo4jIntroduction à Neo4j
Introduction à Neo4j
 
Introduction au BIG DATA
Introduction au BIG DATAIntroduction au BIG DATA
Introduction au BIG DATA
 
NoSQL et Big Data
NoSQL et Big DataNoSQL et Big Data
NoSQL et Big Data
 
Big data: NoSQL comme solution
Big data: NoSQL comme solutionBig data: NoSQL comme solution
Big data: NoSQL comme solution
 
TP1 Big Data - MapReduce
TP1 Big Data - MapReduceTP1 Big Data - MapReduce
TP1 Big Data - MapReduce
 
BigData_TP4 : Cassandra
BigData_TP4 : CassandraBigData_TP4 : Cassandra
BigData_TP4 : Cassandra
 
Resume de BI
Resume de BIResume de BI
Resume de BI
 
BigData_TP5 : Neo4J
BigData_TP5 : Neo4JBigData_TP5 : Neo4J
BigData_TP5 : Neo4J
 

En vedette

Big Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows AzureBig Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows Azure
Microsoft
 
Les modèles NoSQL
Les modèles NoSQLLes modèles NoSQL
Les modèles NoSQLebiznext
 
Introduction to Cassandra (June 2010)
Introduction to Cassandra (June 2010)Introduction to Cassandra (June 2010)
Introduction to Cassandra (June 2010)
gdusbabek
 
NoSQL: Introducción a las Bases de Datos no estructuradas
NoSQL: Introducción a las Bases de Datos no estructuradasNoSQL: Introducción a las Bases de Datos no estructuradas
NoSQL: Introducción a las Bases de Datos no estructuradas
Diego López-de-Ipiña González-de-Artaza
 
Presentation Hadoop Québec
Presentation Hadoop QuébecPresentation Hadoop Québec
Presentation Hadoop Québec
Mathieu Dumoulin
 
Techday Arrow Group: Hadoop & le Big Data
Techday Arrow Group: Hadoop & le Big DataTechday Arrow Group: Hadoop & le Big Data
Techday Arrow Group: Hadoop & le Big Data
Arrow Group
 
NoSQL databases
NoSQL databasesNoSQL databases
NoSQL databases
Marin Dimitrov
 
Architectures techniques NoSQL
Architectures techniques NoSQLArchitectures techniques NoSQL
Architectures techniques NoSQLOCTO Technology
 
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Hatim CHAHDI
 
Une introduction à HBase
Une introduction à HBaseUne introduction à HBase
Une introduction à HBase
Modern Data Stack France
 
Hadoop et son écosystème
Hadoop et son écosystèmeHadoop et son écosystème
Hadoop et son écosystème
Khanh Maudoux
 

En vedette (12)

Big Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows AzureBig Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows Azure
 
Les modèles NoSQL
Les modèles NoSQLLes modèles NoSQL
Les modèles NoSQL
 
Introduction to Cassandra (June 2010)
Introduction to Cassandra (June 2010)Introduction to Cassandra (June 2010)
Introduction to Cassandra (June 2010)
 
NoSQL: Introducción a las Bases de Datos no estructuradas
NoSQL: Introducción a las Bases de Datos no estructuradasNoSQL: Introducción a las Bases de Datos no estructuradas
NoSQL: Introducción a las Bases de Datos no estructuradas
 
Presentation Hadoop Québec
Presentation Hadoop QuébecPresentation Hadoop Québec
Presentation Hadoop Québec
 
Techday Arrow Group: Hadoop & le Big Data
Techday Arrow Group: Hadoop & le Big DataTechday Arrow Group: Hadoop & le Big Data
Techday Arrow Group: Hadoop & le Big Data
 
NoSQL databases
NoSQL databasesNoSQL databases
NoSQL databases
 
Architectures techniques NoSQL
Architectures techniques NoSQLArchitectures techniques NoSQL
Architectures techniques NoSQL
 
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
 
Une introduction à HBase
Une introduction à HBaseUne introduction à HBase
Une introduction à HBase
 
Introduction à Hadoop
Introduction à HadoopIntroduction à Hadoop
Introduction à Hadoop
 
Hadoop et son écosystème
Hadoop et son écosystèmeHadoop et son écosystème
Hadoop et son écosystème
 

Similaire à Introduction aux bases de données NoSQL

cours06-nosql.pdf
cours06-nosql.pdfcours06-nosql.pdf
cours06-nosql.pdf
hbadir
 
Serveur web / Base de donnees Langages de développement
Serveur web / Base de donnees Langages de développementServeur web / Base de donnees Langages de développement
Serveur web / Base de donnees Langages de développement
Ludovic REUS
 
Introduction nosql
Introduction nosqlIntroduction nosql
Introduction nosql
Ines Slimene
 
Gestion des données d'entreprise à l'ère de MongoDB et du Data Lake
Gestion des données d'entreprise à l'ère de MongoDB et du Data LakeGestion des données d'entreprise à l'ère de MongoDB et du Data Lake
Gestion des données d'entreprise à l'ère de MongoDB et du Data Lake
MongoDB
 
SQL Server et les développeurs
SQL Server et les développeurs SQL Server et les développeurs
SQL Server et les développeurs
Microsoft
 
No Sql - Olivier Mallassi - September 2010
No Sql - Olivier Mallassi - September 2010No Sql - Olivier Mallassi - September 2010
No Sql - Olivier Mallassi - September 2010
JUG Lausanne
 
Bases de données no sql.pdf
Bases de données no sql.pdfBases de données no sql.pdf
Bases de données no sql.pdf
ZkSadrati
 
Base de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvreBase de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvre
MICHRAFY MUSTAFA
 
SGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDB
SGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDBSGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDB
SGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDB
Romain Cambien
 
MariaDB une base de donnees NewSQL
MariaDB une base de donnees NewSQLMariaDB une base de donnees NewSQL
MariaDB une base de donnees NewSQL
Christophe Villeneuve
 
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
Frederic Descamps
 
11 visual basic .net - acces aux donnees avec ado .net
11 visual basic .net - acces aux donnees avec ado .net11 visual basic .net - acces aux donnees avec ado .net
11 visual basic .net - acces aux donnees avec ado .net
Hamza SAID
 
Benchmarking NoSQL DataBase dans le cadre d'un projet IoT
Benchmarking NoSQL DataBase dans le cadre d'un projet IoTBenchmarking NoSQL DataBase dans le cadre d'un projet IoT
Benchmarking NoSQL DataBase dans le cadre d'un projet IoT
CHAKER ALLAOUI
 
Discovery Session France: Atelier découverte de la Data Virtualization
Discovery Session France: Atelier découverte de la Data VirtualizationDiscovery Session France: Atelier découverte de la Data Virtualization
Discovery Session France: Atelier découverte de la Data Virtualization
Denodo
 
Valtech - NoSQL, solution alternative ou complémentaire aux bases de données ...
Valtech - NoSQL, solution alternative ou complémentaire aux bases de données ...Valtech - NoSQL, solution alternative ou complémentaire aux bases de données ...
Valtech - NoSQL, solution alternative ou complémentaire aux bases de données ...
Valtech
 
Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...
Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...
Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...
AZUG FR
 
NoSQL MeetUp
NoSQL MeetUpNoSQL MeetUp
NoSQL MeetUp
Eric DYKSTEIN
 
NoSQL panorama - Jean Seiler Softeam
NoSQL panorama - Jean Seiler SofteamNoSQL panorama - Jean Seiler Softeam
NoSQL panorama - Jean Seiler Softeam
TelecomValley
 
Discovery Session France: Atelier découverte de la Data Virtualization
Discovery Session France: Atelier découverte de la Data VirtualizationDiscovery Session France: Atelier découverte de la Data Virtualization
Discovery Session France: Atelier découverte de la Data Virtualization
Denodo
 
Alphorm.com-Formation MongoDB Administration
Alphorm.com-Formation MongoDB AdministrationAlphorm.com-Formation MongoDB Administration
Alphorm.com-Formation MongoDB Administration
Alphorm
 

Similaire à Introduction aux bases de données NoSQL (20)

cours06-nosql.pdf
cours06-nosql.pdfcours06-nosql.pdf
cours06-nosql.pdf
 
Serveur web / Base de donnees Langages de développement
Serveur web / Base de donnees Langages de développementServeur web / Base de donnees Langages de développement
Serveur web / Base de donnees Langages de développement
 
Introduction nosql
Introduction nosqlIntroduction nosql
Introduction nosql
 
Gestion des données d'entreprise à l'ère de MongoDB et du Data Lake
Gestion des données d'entreprise à l'ère de MongoDB et du Data LakeGestion des données d'entreprise à l'ère de MongoDB et du Data Lake
Gestion des données d'entreprise à l'ère de MongoDB et du Data Lake
 
SQL Server et les développeurs
SQL Server et les développeurs SQL Server et les développeurs
SQL Server et les développeurs
 
No Sql - Olivier Mallassi - September 2010
No Sql - Olivier Mallassi - September 2010No Sql - Olivier Mallassi - September 2010
No Sql - Olivier Mallassi - September 2010
 
Bases de données no sql.pdf
Bases de données no sql.pdfBases de données no sql.pdf
Bases de données no sql.pdf
 
Base de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvreBase de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvre
 
SGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDB
SGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDBSGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDB
SGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDB
 
MariaDB une base de donnees NewSQL
MariaDB une base de donnees NewSQLMariaDB une base de donnees NewSQL
MariaDB une base de donnees NewSQL
 
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
 
11 visual basic .net - acces aux donnees avec ado .net
11 visual basic .net - acces aux donnees avec ado .net11 visual basic .net - acces aux donnees avec ado .net
11 visual basic .net - acces aux donnees avec ado .net
 
Benchmarking NoSQL DataBase dans le cadre d'un projet IoT
Benchmarking NoSQL DataBase dans le cadre d'un projet IoTBenchmarking NoSQL DataBase dans le cadre d'un projet IoT
Benchmarking NoSQL DataBase dans le cadre d'un projet IoT
 
Discovery Session France: Atelier découverte de la Data Virtualization
Discovery Session France: Atelier découverte de la Data VirtualizationDiscovery Session France: Atelier découverte de la Data Virtualization
Discovery Session France: Atelier découverte de la Data Virtualization
 
Valtech - NoSQL, solution alternative ou complémentaire aux bases de données ...
Valtech - NoSQL, solution alternative ou complémentaire aux bases de données ...Valtech - NoSQL, solution alternative ou complémentaire aux bases de données ...
Valtech - NoSQL, solution alternative ou complémentaire aux bases de données ...
 
Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...
Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...
Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...
 
NoSQL MeetUp
NoSQL MeetUpNoSQL MeetUp
NoSQL MeetUp
 
NoSQL panorama - Jean Seiler Softeam
NoSQL panorama - Jean Seiler SofteamNoSQL panorama - Jean Seiler Softeam
NoSQL panorama - Jean Seiler Softeam
 
Discovery Session France: Atelier découverte de la Data Virtualization
Discovery Session France: Atelier découverte de la Data VirtualizationDiscovery Session France: Atelier découverte de la Data Virtualization
Discovery Session France: Atelier découverte de la Data Virtualization
 
Alphorm.com-Formation MongoDB Administration
Alphorm.com-Formation MongoDB AdministrationAlphorm.com-Formation MongoDB Administration
Alphorm.com-Formation MongoDB Administration
 

Dernier

PFE MASTER en Développement d’une Application E-commerce avec la Technologie ...
PFE MASTER en Développement d’une Application E-commerce avec la Technologie ...PFE MASTER en Développement d’une Application E-commerce avec la Technologie ...
PFE MASTER en Développement d’une Application E-commerce avec la Technologie ...
ayoub_anbara96
 
S210-S-27.04-chaudiere-à-vapeur bilan thermique
S210-S-27.04-chaudiere-à-vapeur bilan thermiqueS210-S-27.04-chaudiere-à-vapeur bilan thermique
S210-S-27.04-chaudiere-à-vapeur bilan thermique
ALIIAE
 
Note Agro-climatique et prairies n°4 - Juin 2024
Note Agro-climatique et prairies n°4 - Juin 2024Note Agro-climatique et prairies n°4 - Juin 2024
Note Agro-climatique et prairies n°4 - Juin 2024
idelewebmestre
 
PFE ABDOUS BERRI 2024, RAPPORT COMPLET RETA FINAL.pdf
PFE ABDOUS BERRI 2024, RAPPORT COMPLET RETA FINAL.pdfPFE ABDOUS BERRI 2024, RAPPORT COMPLET RETA FINAL.pdf
PFE ABDOUS BERRI 2024, RAPPORT COMPLET RETA FINAL.pdf
iheberry
 
Alternative au 3eme lien et complement au Tramway de la ville de Quebec Rev 1...
Alternative au 3eme lien et complement au Tramway de la ville de Quebec Rev 1...Alternative au 3eme lien et complement au Tramway de la ville de Quebec Rev 1...
Alternative au 3eme lien et complement au Tramway de la ville de Quebec Rev 1...
Daniel Bedard
 
Alternative - Complément au Tramway et 3 ème lien de la ville de Quebec (PDF)
Alternative - Complément au Tramway  et 3 ème lien de la ville de Quebec (PDF)Alternative - Complément au Tramway  et 3 ème lien de la ville de Quebec (PDF)
Alternative - Complément au Tramway et 3 ème lien de la ville de Quebec (PDF)
Daniel Bedard
 
SRE - Mythes et Réalités - Voxxed 2024.pdf
SRE - Mythes et Réalités - Voxxed 2024.pdfSRE - Mythes et Réalités - Voxxed 2024.pdf
SRE - Mythes et Réalités - Voxxed 2024.pdf
Henri Gomez
 
Rénovation des prairies sans labour est-ce possible en bio.pdf
Rénovation des prairies sans labour est-ce possible en bio.pdfRénovation des prairies sans labour est-ce possible en bio.pdf
Rénovation des prairies sans labour est-ce possible en bio.pdf
idelewebmestre
 

Dernier (8)

PFE MASTER en Développement d’une Application E-commerce avec la Technologie ...
PFE MASTER en Développement d’une Application E-commerce avec la Technologie ...PFE MASTER en Développement d’une Application E-commerce avec la Technologie ...
PFE MASTER en Développement d’une Application E-commerce avec la Technologie ...
 
S210-S-27.04-chaudiere-à-vapeur bilan thermique
S210-S-27.04-chaudiere-à-vapeur bilan thermiqueS210-S-27.04-chaudiere-à-vapeur bilan thermique
S210-S-27.04-chaudiere-à-vapeur bilan thermique
 
Note Agro-climatique et prairies n°4 - Juin 2024
Note Agro-climatique et prairies n°4 - Juin 2024Note Agro-climatique et prairies n°4 - Juin 2024
Note Agro-climatique et prairies n°4 - Juin 2024
 
PFE ABDOUS BERRI 2024, RAPPORT COMPLET RETA FINAL.pdf
PFE ABDOUS BERRI 2024, RAPPORT COMPLET RETA FINAL.pdfPFE ABDOUS BERRI 2024, RAPPORT COMPLET RETA FINAL.pdf
PFE ABDOUS BERRI 2024, RAPPORT COMPLET RETA FINAL.pdf
 
Alternative au 3eme lien et complement au Tramway de la ville de Quebec Rev 1...
Alternative au 3eme lien et complement au Tramway de la ville de Quebec Rev 1...Alternative au 3eme lien et complement au Tramway de la ville de Quebec Rev 1...
Alternative au 3eme lien et complement au Tramway de la ville de Quebec Rev 1...
 
Alternative - Complément au Tramway et 3 ème lien de la ville de Quebec (PDF)
Alternative - Complément au Tramway  et 3 ème lien de la ville de Quebec (PDF)Alternative - Complément au Tramway  et 3 ème lien de la ville de Quebec (PDF)
Alternative - Complément au Tramway et 3 ème lien de la ville de Quebec (PDF)
 
SRE - Mythes et Réalités - Voxxed 2024.pdf
SRE - Mythes et Réalités - Voxxed 2024.pdfSRE - Mythes et Réalités - Voxxed 2024.pdf
SRE - Mythes et Réalités - Voxxed 2024.pdf
 
Rénovation des prairies sans labour est-ce possible en bio.pdf
Rénovation des prairies sans labour est-ce possible en bio.pdfRénovation des prairies sans labour est-ce possible en bio.pdf
Rénovation des prairies sans labour est-ce possible en bio.pdf
 

Introduction aux bases de données NoSQL

  • 1. Bases de données aujourd’hui et bases de données NoSQL Antoine Augusti Thibaud Dauce Géraldine Del Mondo 20 février 2015
  • 2. 1 Architecture web et relationnel Architecture classique Bilan architecture classique Qu’est-ce qu’un ORM ? 2 Au delà du SQL : les BDs NoSQL Pourquoi changer du relationnel ? Relâchement des contraintes de transactions À quoi ressemble une BD NoSQL 3 Les types de bases de données NoSQL Bases de données clé-valeur Bases de données orientées documents Bases de données orientées graphes 4 Conclusion Bonnes pratiques NoSQL ou relationnel ?
  • 3. 1 Architecture web et relationnel Architecture classique Bilan architecture classique Qu’est-ce qu’un ORM ? 2 Au delà du SQL : les BDs NoSQL Pourquoi changer du relationnel ? Relâchement des contraintes de transactions À quoi ressemble une BD NoSQL 3 Les types de bases de données NoSQL Bases de données clé-valeur Bases de données orientées documents Bases de données orientées graphes 4 Conclusion Bonnes pratiques NoSQL ou relationnel ?
  • 4. Architecture classique Figure : La stack LAMP. Stacks habituelles : LAMP : Linux, Apache, MySQL, PHP — la plus commune ; LEMP : Linux, Nginx, MySQL, PHP-FPM — commence à remplacer LAMP ; MEAN : MySQL, Express, AngularJS, Node.js — pour du JavaScript côté serveur. Architecture web et relationnel Architecture classique 20 février 2015 4 / 30
  • 5. Bilan architecture classique Avantages : Rapide à mettre en place (installation en un clic généralement) ; Optimisation possible, verticalement le plus souvent ; Inconvénients : Il faut une expertise base de données. Architecture web et relationnel Bilan architecture classique 20 février 2015 5 / 30
  • 6. Qu’est-ce qu’un ORM ? Définition : ORM L’Object-Relationnal Mapping est une technique qui simule une base de données orientée objet à partir d’une base de données relationnelle. Fait la liaison entre le monde relationnel dans la couche stockage et le monde objet dans l’application ; Facilité de développement : pas besoin d’une connaissance poussée du SQL ; Facilite les interactions avec la base de données pour les développeurs. Les limites des ORM Toujours beaucoup moins performant que des requêtes SQL optimisées. Architecture web et relationnel Qu’est-ce qu’un ORM ? 20 février 2015 6 / 30
  • 7. ORM : exemple de requêtes 1 <?php 2 // Création d’un utilisateur 3 $data = [ 4 ’prenom’ => ’Antoine’, 5 ’age’ => 42 6 ]; 7 $user = User::create($data); 8 9 // Sélection des utilisateurs majeurs et articles qu’ils ont écrits 10 $users = User::with(’articles’) 11 ->where(’age’, ’>=’, 18) 12 ->get(); 13 14 // Suppression des utilisateurs vivant à Paris 15 User::where(’prenom’, ’Antoine’)->delete(); 16 17 // Les derniers articles d’un utilisateur (3ème page) 18 $articles = Article::whereUserId($user->id) 19 ->latest() 20 ->take(10) 21 ->skip(20) 22 ->get(); Listing 1: Quelques requêtes basiques avec l’ORM Eloquent (PHP). D’autres ORM : Hibernate (Java), SQLAlchemy (Python), Mongoose (Node.js). . . Architecture web et relationnel Qu’est-ce qu’un ORM ? 20 février 2015 7 / 30
  • 8. 1 Architecture web et relationnel Architecture classique Bilan architecture classique Qu’est-ce qu’un ORM ? 2 Au delà du SQL : les BDs NoSQL Pourquoi changer du relationnel ? Relâchement des contraintes de transactions À quoi ressemble une BD NoSQL 3 Les types de bases de données NoSQL Bases de données clé-valeur Bases de données orientées documents Bases de données orientées graphes 4 Conclusion Bonnes pratiques NoSQL ou relationnel ?
  • 9. Problèmes liés au relationnel Service réparti sur plusieurs continents ? Accès concurrent de plusieurs centaines de milliers de personnes ? Stockage d’objets avec prise en compte de l’héritage ? Reconnaissance automatique d’images ou traitement automatique de textes ? Au delà du SQL : les BDs NoSQL Pourquoi changer du relationnel ? 20 février 2015 9 / 30
  • 10. Pourquoi changer du relationnel ? Besoin d’une alternative vers les années 2004 avec l’arrivée du Big Data. Des volumes de données important (plusieurs gigas, voire téraoctets) ; Un nombre de transactions très important, une forte demande de disponibilité et de temps de réponse ; Des bases de données réparties sur plusieurs centres de données ou continents ; Préférence pour l’ajout de petites machines plutôt qu’une configuration poussée des BDs. Au delà du SQL : les BDs NoSQL Pourquoi changer du relationnel ? 20 février 2015 10 / 30
  • 11. Relâchement des contraintes de transactions Impossible de garantir les propriétés ACID des BDs relationnelles avec les nouvelles contraintes. De nouvelles propriétés BASE, suite au théorème CAP : Basic Availability : système disponible dans son ensemble bien que certaines machines soient indisponibles ; Soft state : l’état du système distribué peut changer, même sans nouvelles transactions ; Eventual Consistency : En l’absence de nouvelles transactions, le système sera cohérent au bout d’un temps. Au delà du SQL : les BDs NoSQL Relâchement des contraintes de transactions 20 février 2015 11 / 30
  • 12. À quoi ressemble une BD NoSQL Un SGBD qui n’est pas structuré en tables et dont l’élément de base n’est pas un tuple mais dépend du type de BD NoSQL ; Un langage de requête non uniformisé, propre à chaque BD. Souvent au format JSON avec une API REST ; Une dénormalisation des données où certains enregistrements sont en partie ou entièrement dupliqués ; Type de base de données NoSQL à choisir en fonction de l’usage souhaité ; Types de base de données NoSQL existants : clé-valeur, colonnes, documents, graphe. . . Au delà du SQL : les BDs NoSQL À quoi ressemble une BD NoSQL 20 février 2015 12 / 30
  • 13. 1 Architecture web et relationnel Architecture classique Bilan architecture classique Qu’est-ce qu’un ORM ? 2 Au delà du SQL : les BDs NoSQL Pourquoi changer du relationnel ? Relâchement des contraintes de transactions À quoi ressemble une BD NoSQL 3 Les types de bases de données NoSQL Bases de données clé-valeur Bases de données orientées documents Bases de données orientées graphes 4 Conclusion Bonnes pratiques NoSQL ou relationnel ?
  • 14. Modélisation BD clé-valeur Modélisation : la plus simple. À une clé, on associe une valeur. La valeur peut être de n’importe quel type (chaîne de caractères, entier, structure, objet sérialisé. . .). Des exemples de paires clé-valeur avec des types différents. Clé Valeur pays.id-42 {"id" :42,"name" :"Chad"} statistiques.nombre-visiteurs 1337 configuration.periode-gratuite false articles.categories-sport.latest [22, 45, 67, 200, 87] Les types de bases de données NoSQL Bases de données clé-valeur 20 février 2015 14 / 30
  • 15. BD clé-valeur en détail Opérations : création d’une paire clé-valeur, suppression, accès à une valeur à l’aide de la clé, incrémentation et décrémentation d’une valeur ; On peut définir la durée de vie d’une paire clé-valeur ou adopter une politique least recently used ; Stockage en RAM pour accélérer les temps de lecture. Mécanisme de reprise en cas de crash ; Cas d’utilisation : cache d’une autre BD, comptage d’éléments, gestion de files d’attente, opérations ensemblistes. . . Principaux acteurs : Redis, Memcached, Riak. Les types de bases de données NoSQL Bases de données clé-valeur 20 février 2015 15 / 30
  • 16. Commandes sous Redis 1 # Assignation de chaîne "bonjour" à la clé "cleTexte" 2 redis> SET cleTexte bonjour 3 OK 4 # Récupération de la valeur de la clé "cleTexte" 5 redis> GET cleTexte 6 "bonjour" 7 8 # Incrémentation d’un compteur 9 redis> INCR compteur 10 (integer) 42 11 # Suppression du compteur 12 redis> DEL compteur 13 (integer) 1 14 15 # Création d’une liste avec insertion en fin de liste 16 redis> RPUSH liste "Hello" 17 (integer) 1 18 # Insertion en fin de liste 19 redis> RPUSH liste "World" 20 (integer) 2 Listing 2: Quelques commandes Redis en console. Les types de bases de données NoSQL Bases de données clé-valeur 20 février 2015 16 / 30
  • 17. Bases de données orientées documents Modélisation : aucun schéma fixe, un document peut contenir n’importe quel type d’information ; Optimisation horizontale ; Opérations : utilise le JSON pour les requêtes et l’améliore pour le stockage (BSON) ; Facile d’accès (API REST, shell. . .) ; Cas d’utilisation : base de données principalement utilisées pour du stockage ; Principaux acteurs : MongoDB, CouchDB, CouchBase. Les types de bases de données NoSQL Bases de données orientées documents 20 février 2015 17 / 30
  • 18. Exemple d’un document 1 { 2 "id":1500, 3 "nom":"Thibaud", 4 "prénom":"Dauce", 5 "professeur_préférée":{ 6 "numero":42, 7 "prenom":"Géraldine", 8 "nom":"Del Mondo", 9 "matières": ["BD", "Réseaux"] 10 }, 11 "commentaires":[ 12 { 13 "id":646, 14 "contenu":"J’adore la BD." 15 }, 16 { 17 "id":647, 18 "contenu":"Boule et Bill aussi." 19 }, 20 { 21 "id":648, 22 "contenu":"Et pleins d’autres trucs." 23 } 24 ] 25 } Listing 3: Exemple d’un document JSON. Les types de bases de données NoSQL Bases de données orientées documents 20 février 2015 18 / 30
  • 19. Exemples de requêtes MongoDB db.inventory.find( { type: "snacks" } ) Listing 4: Exemple de requête find sur MongoDB. Les types de bases de données NoSQL Bases de données orientées documents 20 février 2015 19 / 30
  • 20. Exemples de requêtes MongoDB db.inventory.find( { type: ’food’, $or: [ { qty: { $gt: 100 } }, { price: { $lt: 9.95 } } } ) Listing 5: Exemple de requête find sur MongoDB avec des opérateurs spéciaux. Les types de bases de données NoSQL Bases de données orientées documents 20 février 2015 20 / 30
  • 21. Exemples de requêtes MongoDB db.inventory.insert( { item: "ABC1", details: { model: "14Q3", manufacturer: "XYZ Company" }, stock: [ { size: "S", qty: 25 }, { size: "M", qty: 50 } ], category: "clothing" } ) Listing 6: Exemple de requête insert sur MongoDB.Les types de bases de données NoSQL Bases de données orientées documents 20 février 2015 21 / 30
  • 22. Exemples de requêtes MongoDB db.inventory.update( { item: "MNO2" }, { $set: { category: "apparel", details.model: "14Q2" }, $currentDate: { lastModified: true } } ) Listing 7: Exemple de requête update sur MongoDB. Les types de bases de données NoSQL Bases de données orientées documents 20 février 2015 22 / 30
  • 23. Bases de données orientées graphes Figure : Exemple de graphe. Les types de bases de données NoSQL Bases de données orientées graphes 20 février 2015 23 / 30
  • 24. Bases de données orientées graphes Modélisation : représentation de l’information de manière très particulière (nœuds et arcs de même importance) ; Opérations : traitement très particulier de l’information (voir slide précédente) ; Cas d’utilisation : utilisé principalement pour les réseaux (liens entre des équipements ou des personnes) ; Base de données rarement utilisée pour du stockage ; Principaux acteurs : Neo4j, Titan, OrientDB. Les types de bases de données NoSQL Bases de données orientées graphes 20 février 2015 24 / 30
  • 25. Bases de données orientées graphes Figure : Exemple de graphe. Les types de bases de données NoSQL Bases de données orientées graphes 20 février 2015 25 / 30
  • 26. Exemple de requête Figure : Exemple de requête Cypher pour Neo4j. Les types de bases de données NoSQL Bases de données orientées graphes 20 février 2015 26 / 30
  • 27. 1 Architecture web et relationnel Architecture classique Bilan architecture classique Qu’est-ce qu’un ORM ? 2 Au delà du SQL : les BDs NoSQL Pourquoi changer du relationnel ? Relâchement des contraintes de transactions À quoi ressemble une BD NoSQL 3 Les types de bases de données NoSQL Bases de données clé-valeur Bases de données orientées documents Bases de données orientées graphes 4 Conclusion Bonnes pratiques NoSQL ou relationnel ?
  • 28. Les bonnes pratiques du NoSQL Bien connaître ses données ; Ne pas avoir peur de la redondance ; Ne pas trop redonder ; Et surtout, bien quantifier ses besoins. RTFM La majorité des bases de données NoSQL connues sur le marché possèdent une très bonne documentation, souvent faite à destination de personnes venant du monde du relationnel. Conclusion Bonnes pratiques 20 février 2015 28 / 30
  • 29. NoSQL ou relationnel ? Les deux mon capitaine ! Les bases de données NoSQL ont été inventées afin de résoudre des problèmes insolubles par les bases de données relationnelle et non pas pour les remplacer. NoSQL Relationnel stockage de masse stockage fiable données diverses données formatées scalabilité horizontale scalabilité verticale Conclusion NoSQL ou relationnel ? 20 février 2015 29 / 30
  • 30. Choix du type de BD NoSQL Modélisation Cas d’utilisation Clé / valeur Modélisation simple, per- mettant d’indexer des infor- mations diverses via une clé Mise en cache Documents Modélisation souple per- mettant de stocker des do- cuments au format JSON dans des collections Stockage de masse Graphes Modélisation optimisée pour les problèmes de graphes Stockage provisoire pour traiter les don- nées Conclusion NoSQL ou relationnel ? 20 février 2015 30 / 30