Bases de données non relationnelles/NoSQL MongoDB
En relationnel Colonnes fixes ID Nom Prénom Téléphone fixe Téléphone portable 1 Dupont Thierry 0101010101 Null 2 Durant Laurent 0606060606 3 Thomas Georges 0303030303 4 Jean Martine 0404040404 0707070707 Colonnes fixes
En non relationnel ID Nom Prénom Téléphone fixe Téléphone portable 1 Dupont Thierry 0101010101 2 Durant Laurent 0606060606 3 Thomas Georges 0303030303 4 Jean Martine 0404040404 0707070707 Mode « ligne », je stocke des objets sans notion de colonne fixe
Reprenons ID Nom Prénom Téléphone fixe 1 Dupont Thierry 0101010101 Téléphone portable 2 Durant Laurent 0606060606 3 Thomas Georges 0303030303 4 Jean Martine 0404040404 0707070707
Pas de donnée, pas de colonne Pas de colonne, pas de colonne
On ne parle pas de table mais de collection Schéma flexible On ne parle pas de table mais de collection
Relations – par référence
Relations – par documents imbriqués
Accumulo Berkeley DB (Oracle) BigTable (Google) Cassandra (Twitter, Digg) CouchDB DEX/Sparksee (en) DynamoDB HBase (Facebook) MongoDB (SourceForge.net) Neo4j Project Voldemort (LinkedIn) Redis Riak SimpleDB (Amazon.com) Oracle NoSQL (en)
Adapté pour des données Qui n’ont pas forcément de lien entres elles Eviter de ne pas faire de relations On préfère dupliquer les données Ou faire de gros objets
PERSONNE id Adresse Téléphone PHYSIQUE Nom Prénom MORALE Nom Forme Juridique
ID Nom Prénom Téléphone Adresse 1 Dupont Thierry 0101010101 Rue du pont Forme_ju 2 Entrepreneurs SAS 0202020202 Boulevard làbas