nosql

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 5

Introduction aux Bases de Données 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.

Comparaison NoSQL vs SQL

●​ 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.

Sharding et Réplication dans MongoDB

●​ Sharding : Permet de diviser les données en morceaux (chunks) et de les distribuer


entre plusieurs serveurs.
●​ Réplication :
○​ Primaire : Reçoit les écritures.
○​ Secondaires : Maintiennent des copies pour lecture ou backup.
○​ Arbitres : Participe aux élections sans stocker les données.

Limites

●​ Les bases NoSQL manquent souvent de standardisation.


●​ Adaptées pour des données massives ou semi-structurées mais moins performantes
pour les données fortement reliées.

Si vous avez besoin d'un focus particulier sur une section, faites-le-moi savoir !

You said:
plus detaillee

ChatGPT said:
ChatGPT

Résumé détaillé des Bases de Données NoSQL et MongoDB

Bases de Données NoSQL

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é.

Typologies des Bases NoSQL

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.

Propriétés NoSQL : BASE vs ACID

●​ ACID (Bases relationnelles) :


○​ Garanties transactionnelles strictes (Atomicité, Cohérence, Isolation, Durabilité).
●​ BASE (NoSQL) :
○​ Basically Available : Toujours disponible.
○​ Soft-State : L’état des données peut évoluer.
○​ Eventually Consistent : Cohérence assurée à terme, pas immédiate.

MongoDB : Une Base de Données Documentaire


MongoDB est un SGBD NoSQL documentaire, conçu pour la flexibilité et la scalabilité.

Caractéristiques Techniques

●​ Technologie : Open source, écrit en C++.


●​ Données : Format JSON (JavaScript Object Notation), converties en BSON (Binary
JSON) pour des performances accrues.
●​ Langages supportés : Pilotes disponibles pour Java, JavaScript, PHP, Python, Ruby,
etc.
●​ Fonctionnalités proches de SQL : count, group by, order by, etc.

Avantages

●​ Schéma dynamique : Documents de structure flexible.


●​ Scalabilité horizontale : Sharding et réplication intégrés.
●​ Indexation avancée pour optimiser les requêtes.

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

●​ Distribution horizontale des données pour gérer les grands volumes.


●​ Sharding Key : Clé utilisée pour distribuer les documents entre différents shards.

Comparaison Relationnel vs NoSQL

1.​ Modèle de Données :


○​ Relationnel : Rigidité des schémas, basé sur les tables et relations.
○​ NoSQL : Flexible, modélisation variée (clé-valeur, documents, colonnes,
graphes).
2.​ Scalabilité :
○​ Relationnel : Scalabilité verticale (ajout de ressources à un seul serveur).
○​ NoSQL : Scalabilité horizontale (ajout de serveurs).
3.​ Performances :
○​ Relationnel : Optimisé pour les transactions complexes et les jointures.
○​ NoSQL : Optimisé pour les lectures/écritures rapides, distribué.
4.​ Cas d’utilisation :
○​ Relationnel : Données bien structurées (ERP, bases financières).
○​ NoSQL : Big Data, applications web, données semi-structurées.

Choix entre Références et Imbrications dans MongoDB

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.

Vous aimerez peut-être aussi