nosql
nosql
nosql
● Définition : Les bases de données NoSQL (Not Only SQL) sont des systèmes
non-relationnels conçus pour gérer de grands volumes de données hétérogènes et
distribuées. Elles répondent aux limites des bases relationnelles dans des contextes de
Big Data et d'applications web.
● Types principaux :
1. Clé/valeur : Stockage simplifié basé sur des paires clé-valeur. Exemples : Redis,
DynamoDB.
2. Orientées colonnes : Optimisées pour les analyses massives. Exemples :
Cassandra, HBase.
3. Orientées documents : Basées sur des formats JSON/BSON pour structurer
des documents hiérarchiques. Exemple : MongoDB.
4. Orientées graphes : Pour les données interconnectées, comme les réseaux
sociaux. Exemple : Neo4j.
MongoDB
● Caractéristiques :
○ Open source, développé en C++.
○ Utilise des documents JSON/BSON.
○ Supporte la scalabilité horizontale (sharding, réplication).
○ Fournit des fonctionnalités SQL telles que count, group by, order by.
● Avantages :
○ Modèle de données flexible (pas de schéma strict).
○ Indexation avancée et opérations performantes.
○ Adapté aux applications distribuées et temps réel.
● Opérations communes :
○ insert, find, update, remove.
○ Manipulation avancée : $set, $unset, $push, $pull.
● ACID vs BASE :
○ SQL garantit les propriétés ACID (Atomicité, Cohérence, Isolation, Durabilité).
○ NoSQL s'appuie sur BASE (Basically Available, Soft State, Eventually
Consistent) pour assurer la scalabilité et la disponibilité.
● Théorème CAP : Une base ne peut garantir simultanément Cohérence, Disponibilité, et
Tolérance au partitionnement.
○ SQL privilégie Cohérence et Disponibilité.
○ NoSQL varie selon les types de bases.
Applications et Modélisation
● Exemples de cas d'usage :
○ Bases clé-valeur pour les caches, sessions utilisateurs.
○ Bases orientées colonnes pour les analyses OLAP.
○ Bases orientées documents pour les systèmes de gestion de contenu.
○ Bases orientées graphes pour les moteurs de recommandations.
● Choix entre références et imbrications :
○ Imbrications pour les relations simples ou hiérarchiques.
○ Références pour les relations complexes ou volatiles.
Limites
Si vous avez besoin d'un focus particulier sur une section, faites-le-moi savoir !
You said:
plus detaillee
ChatGPT said:
ChatGPT
Les bases de données NoSQL sont une alternative aux bases relationnelles traditionnelles,
offrant flexibilité, performance et scalabilité dans les environnements massivement distribués.
Caractéristiques Générales
● Définition : NoSQL signifie "Not Only SQL" et représente des bases de données
non-relationnelles. Elles ne suivent pas les contraintes des bases relationnelles
classiques.
● Pourquoi NoSQL ?
○ Répondent aux limites des bases relationnelles (rigidité des schémas, difficultés
de scalabilité).
○ Adaptées à la gestion des données massives (Big Data).
○ Conçues pour des systèmes distribués nécessitant une forte disponibilité.
1. Clé/valeur :
○ Stockage sous forme de paires clé-valeur.
○ Très performant pour les lectures/écritures simples.
○ Cas d'utilisation : caches, sessions utilisateur, logs.
○ Exemples : Redis, Amazon DynamoDB.
2. Orientées colonnes :
○ Données stockées par colonne au lieu de ligne.
○ Idéal pour les traitements analytiques massifs.
○ Cas d'utilisation : OLAP, entrepôts de données.
○ Exemples : Cassandra, HBase.
3. Orientées documents :
○ Données stockées sous forme de documents semi-structurés (JSON, BSON).
○ Modèle clé-valeur enrichi où la valeur est un document.
○ Cas d'utilisation : systèmes de gestion de contenu, catalogues de produits.
○ Exemples : MongoDB, CouchDB.
4. Orientées graphes :
○ Modélisation des données sous forme de graphes (nœuds et relations).
○ Adapté aux relations complexes entre les données.
○ Cas d'utilisation : moteurs de recommandations, réseaux sociaux.
○ Exemples : Neo4j, OrientDB.
Caractéristiques Techniques
Avantages
Concepts Clés
Documents : Ensemble de paires clé-valeur. Exemples :
json
Copy code
{
"nom": "Doe",
"prenom": "John",
"age": 30,
"adresse": {
"rue": "10 rue de Paris",
"ville": "Paris",
"codePostal": "75000"
}
}
1.
2. Collections : Regroupement de documents similaires, équivalent à une table en SQL.
3. ID unique : MongoDB attribue un identifiant unique (_id) par document.
Opérations
● Insertion : db.collection.insert({document})
● Requêtes : db.collection.find({critères})
● Mises à jour :
○ $set : Modifie un champ.
○ $unset : Supprime un champ.
○ $push : Ajoute un élément dans un tableau.
● Suppression : db.collection.remove({critères})
Réplication
● Replica Sets :
○ Primaire : Reçoit les écritures.
○ Secondaires : Copient les données pour assurer la redondance.
○ Arbitres : Participent aux élections en cas de panne.
Sharding
1. Références :
○ Permettent de lier des documents distincts.
○ Utile pour les relations complexes.
2. Imbrications :
○ Représentent des données imbriquées dans un même document.
○ Simplifient l’accès aux données lorsque les relations sont simples.