MongoDB introduction
Michel Buffa
29/09/2020
1
MongoDB c’est quoi ?
2
“Enorme BD ?”
3
MongoDB: objectifs
4
Alors MongoDB ?
5
Alors MongoDB ?
les BDs relationnelles
6
Performant ?
7
Adoption ?
8
Intégration ?
9
BDs NoSQL ???
10
NoSQL: Catégories
11
Qu’est-ce que NoSQL ?
12
La famille “orientée colonne”�(ex: Hbase)
13
APIs: get(key), put(key, value), delete(key), …
MongoDB a un modèle de données plus flexible et des requêtes plus puissantes
Theorème CAP (ou CDP)
14
Theorème CAP
15
Exemple
16
Network Failure
Dans les systèmes distribués, AC n'est pas un choix
On prend AP ou CP
Availability
Consistency (éventuelle)
Consistency (éventuelle)
Ce que NoSQL ne propose pas !
20
est une base...
Qui suit...
Modèle de données
21
Modèle de données
22
Correspondances des termes (Relationnel vs. MongoDB)
23
JSON
24
Un document
No d’un champ (propriété)
Valeur d’un champ (propriété)
Autre exemple
25
Rappelez-vous que le JSON est stocké en binaire (BSON)
Le modèle MongoDB
26
Un document (similaire à un tuple dans un RDBMS)
Une Collection (similaire à une Table dans un RDBMS)
Contrairement aux RDBMS:
pas de contrainte d’intégrité dans MongoDB
Le modèle MongoDB
27
Un document (similaire à un tuple dans un RDBMS)
Une Collection (similaire à une Table dans un RDBMS)
Exemple d’un document MongoDB
28
Pas de schéma prédéfini �(Schema-free ou Schema-less)
29
Comparaison des modèles de données�Relationnel vs. NoSQL
30
31
ALORS : BD relationnelles : pas le meilleur choix
32
Modèle de données Clé-Valeur
33
Modèle relationnel
34
Modèle orienté document
35
Document vs. Modèle relationnel
36
Compromis: Normalization vs. Utilisation simple
37
Requêtes avec jointures
BDs relationnelles :
38
Pas de jointures avec MongoDB
39
Requêtes
40
CRUD
41
Exemples CRUD
42
Exemples
43
Avec RDBMS
Avec MongoDB
Soit on insère un premier document
Ou bien on crée la collection “Users” de manière explicite :
Insertion
44
Insertion Multi-Documents�(Arrays)
45
Tous les documents sont insérés d’un coup
Insertion Multi-Documents�(Bulk Operation)
46
Il existe aussi Bulk Ordered object
La colonne _id est ajoutée automatiquement
Suppression�(Remove Operation)
47
db.users.remove ( )
Supprime tous les documents de la collection users
Update
48
Sinon, seul le premier document qui correspond aux conditions sera mis à jour
Equivalent SQL :
Update
49
Deux opérateurs
Remplacer un document
50
Pour le document dont le champ item vaut “BE10”, le remplacer par le document fourni
Condition de requête
Nouveau document
Insérer ou remplacer
51
Si le document dont le champ item vaut “TBD1” est dans la BD, il sera remplacé, sinon on insère le nouveau document
Option upsert !
Pour aller plus loin
Lire la documentation
Suivre le(s) MOOC(s) proposé par MongoDB University (créateurs de MongoDB)
Lien dans la page du cours
Regarder les exemples fournis en TPs
52