ch2 Intro Mongo PDF
ch2 Intro Mongo PDF
ch2 Intro Mongo PDF
19/12/2018 MODÉLISATION 5
Modèle JSON
JSON (Javascript Object Notation) est le format de sérialisation des objets
Javascript.
Avantage principal : il est possible de le parser directement sous la forme
d’un objet du langage (javascript, mais aussi tous les langages de scripts,
voire Java ou C++)
Une valeur est soit une chaîne de caractère, un numérique, un Booléen, un
objet ou un tableau.
Un objet est une liste non-ordonnée de paires (clé, valeur).
Exemple: {first_name: ‘Joe’, last_name: ‘Doe’}
Un tableau est une liste ordonnée de valeurs.
[“doe@cnam.fr”, “john.doe@cnam.fr”,“doej@cnam.fr”]
19/12/2018 MODÉLISATION 6
Exemple avec JSON
Point de départ : listes associatives, i.e., des enregistrements avec des
paires (clé, valeur).
{nom: "Alan", tél: 2157786, email: "agb@abc.com"}
Extension naturelle : les valeurs sont elles-mêmes d’autres structures.
{nom: {prénom: "Alan", famille: "Black"},tél: 2157786, email:
"agb@abc.com"}
Autre exemple: imbrication de listes.
{name: "Alan", téls: [2157786, 2498762] }
19/12/2018 MODÉLISATION 7
Organisation
Un serveur MongoDB est composé de bases de données.
Une base de données contient des collections.
Les collections possèdent les documents.
Chaque document possède un identifiant unique généré par MongoDB,
le champ _id.
19/12/2018 MODÉLISATION 8
Organisation
RDBMS MongoDB
Database Database
Table, View Collection
Row Document (JSON, BSON)
Column Field
Index Index
Join Embedded Document
Foreign Key Reference
Partition Shard
19/12/2018 MODÉLISATION 9
Documents
Un document est l’équivalent d’une ligne dans une base de données
SQL avec quelques différences :
◦ Les documents sont sans schéma
◦ Les documents utilise le syntaxe BSON
◦ La taille max d’un document est 16 mégabytes
◦ Non Relationnel
19/12/2018 MODÉLISATION 10
Documents
Exemple :
{
name : ‘MongoDB’,
type : ‘database’,
count : 1,
info :{
x : 203,
y : 102
}
}
19/12/2018 MODÉLISATION 11
Modélisation: quelques règles
simples
19/12/2018 MODÉLISATION 12
Modélisation: quelques règles
simples
19/12/2018 MODÉLISATION 13
Modélisation: quelques règles
simples
19/12/2018 MODÉLISATION 14
Modélisation: quelques règles
simples
19/12/2018 MODÉLISATION 15
Modélisation: quelques règles
simples
Ne pas oubliez d’en tenir compte !
● “J’ai besoin de l’ensemble des données à chaque requête”
○ Mettez tout dans une seule collection
● “J’ai besoin d’en avoir seulement une partie”
○ Faites plusieurs collections et des références
○ Ex: les posts d’un blog et leurs commentaires :
■ 2 besoins : affichage liste des posts + affichage post avec
commentaires
■ Modélisation avec 2 collections (posts, comments)
19/12/2018 MODÉLISATION 16
Références entre docs
Avantages à séparer dans plusieurs docs ?
● Flexibilité
○ Changement sur une collection sans impact sur les autres
● Cardinalité forte / gros document:
○ Attention à la place mémoire
○ Taille max des docs: 16Mo
Désavantages à séparer dans plusieurs docs ?
● On risque d’avoir à gérer des jointures dans l’application, compliqué !
19/12/2018 MODÉLISATION 17
Sharding et
Réplica Set
Replica set
écriture
Serveur d’application
Élection
écriture
Serveur d’application
Rollback
écriture
Serveur d’application
Shard 2
Shard 1 Shard 3
mongos
Shard 0
application