📊 Récapitulatif des structures de
données des bases NoSQL
🔹 Redis (Base clé-valeur en mémoire)
Élément Description
Clé Identifiant unique pour chaque donnée
Dans Redis, les clés sont toujours des
chaînes de caractères
Valeur Stockée sous différentes structures :
- String Texte ou nombre brut
- List Liste ordonnée de chaînes
- Set Ensemble non ordonné de chaînes uniques
- Hash Dictionnaire clé-valeur (comme un objet
JSON léger)
- Sorted Set Set ordonné par score numérique
- Stream Flux d’événements
- HyperLogLog Structure pour compter les éléments
distincts approximativement
🔹 Cassandra (Base orientée colonnes (wide column store))
Élément Description
Cluster Ensemble de nœuds (serveurs)
Keyspace Ensemble logique de tables, équivalent à
une base
Table Contient les données
Partition Key Clé qui détermine l’emplacement physique
Colonnes Champs de la table
Lignes Enregistrements identifiés par une clé
primaire
🔹 MongoDB (Base orientée documents (JSON-like))
Élément Description
Base de données Contient plusieurs collections
Collection Groupe de documents, équivalent d'une
table
Document Objet JSON (format BSON en interne)
Champs Paires clé-valeur dans un document
Index Améliorent les performances des requêtes
🔹 Neo4j (Base orientée graphe)
Élément Description
Nœud Entité principale (ex. personne, ville,
produit)
Relation Lien entre deux nœuds
Propriété Attribut clé-valeur sur un nœud ou une
relation
Étiquette Type ou catégorie d’un nœud
(ex. :Personne)
// Création de nœuds
CREATE (alice:Person {name: 'Alice', age: 30});
CREATE (bob:Person {name: 'Bob', age: 28});
CREATE (carol:Person {name: 'Carol', age: 27});
CREATE (paris:City {name: 'Paris'});
CREATE (london:City {name: 'London'});
// Création de relations
CREATE (alice)-[:KNOWS {since: 2020}]->(bob);
CREATE (bob)-[:KNOWS {since: 2021}]->(carol);
CREATE (alice)-[:LIVES_IN]->(paris);
CREATE (carol)-[:LIVES_IN]->(london);
// Requête de lecture
MATCH (p:Person)-[:LIVES_IN]->(c:City)
RETURN [Link] AS Person, [Link] AS City;
// Requête de suggestion de relation
MATCH (a:Person)-[:KNOWS]->(b:Person)-[:KNOWS]->(c:Person)
WHERE NOT (a)-[:KNOWS]->(c) AND a <> c
RETURN [Link], 'peut connaître', [Link];