0% ont trouvé ce document utile (0 vote)
3 vues9 pages

Structure Presentations NoSQL

Le document présente une série de présentations sur les bases de données, en comparant les modèles SQL et NoSQL, ainsi que les spécificités de différents types de bases NoSQL comme Document, Clé-Valeur, Colonnes et Graphe. Chaque présentation aborde des concepts clés, des cas d'utilisation, des avantages et des différences avec SQL, ainsi que des détails techniques sur l'installation et la configuration. La dernière présentation synthétise les caractéristiques des modèles NoSQL et propose un tableau comparatif.

Transféré par

livraisonapp3
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
3 vues9 pages

Structure Presentations NoSQL

Le document présente une série de présentations sur les bases de données, en comparant les modèles SQL et NoSQL, ainsi que les spécificités de différents types de bases NoSQL comme Document, Clé-Valeur, Colonnes et Graphe. Chaque présentation aborde des concepts clés, des cas d'utilisation, des avantages et des différences avec SQL, ainsi que des détails techniques sur l'installation et la configuration. La dernière présentation synthétise les caractéristiques des modèles NoSQL et propose un tableau comparatif.

Transféré par

livraisonapp3
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Présentation 1 : SQL vs NoSQL + Introduction

Partie 1 : Rappel SQL et ses limites


• Slide 1 : Architecture des bases de données relationnelles
• Slide 2 : Propriétés ACID (Atomicité, Cohérence, Isolation, Durabilité)
• Slide 3 : Normalisation et schémas rigides
• Slide 4 : Limites du SQL : scalabilité verticale, rigidité, performances

Partie 2 : Différences SQL vs NoSQL


• Slide 5 : Tableau comparatif : Structure des données (schéma fixe vs flexible)
• Slide 6 : Scalabilité : Verticale (SQL) vs Horizontale (NoSQL)
• Slide 7 : Transactions : ACID vs BASE (Basically Available, Soft state, Eventually
consistent)
• Slide 8 : Cas d'usage : Quand utiliser SQL vs NoSQL

Partie 3 : Caractéristiques des bases NoSQL


• Slide 9 : Définition et origine de NoSQL (Not Only SQL)
• Slide 10 : Schéma flexible et semi-structuré
• Slide 11 : Scalabilité horizontale et distribution
• Slide 12 : Haute disponibilité et réplication

Partie 4 : Le Théorème CAP


• Slide 13 : Définition du théorème CAP
◦ Consistency (Cohérence)
◦ Availability (Disponibilité)
◦ Partition tolerance (Tolérance au partitionnement)
• Slide 14 : Compromis impossibles : choisir 2 sur 3
• Slide 15 : Exemples de systèmes CP, AP, CA

Partie 5 : Types de bases NoSQL


• Slide 16 : Vue d'ensemble des 4 modèles NoSQL
• Slide 17 : Bases orientées Document (MongoDB, CouchDB)
• Slide 18 : Bases Clé-Valeur (Redis, DynamoDB)
• Slide 19 : Bases orientées Colonnes (Cassandra, HBase)
• Slide 20 : Bases de Graphes (Neo4j, OrientDB)

Partie 6 : Options de déploiement


• Slide 21 : Déploiement on-premise vs Cloud
• Slide 22 : Solutions managées (MongoDB Atlas, AWS DynamoDB, Azure
Cosmos DB)
• Slide 23 : Architectures hybrides

Partie 7 : Bases de données distribuées


• Slide 24 : Principes des systèmes distribués
• Slide 25 : Sharding (partitionnement horizontal)
• Slide 26 : Réplication et cohérence éventuelle
• Slide 27 : Stratégies de réplication (Master-Slave, Multi-Master)

Présentation 2 : Modèle Document (MongoDB)

Partie 1 : Introduction au modèle Document


• Slide 1 : Qu'est-ce qu'un document ? (JSON/BSON)
• Slide 2 : Structure hiérarchique et imbriquée
• Slide 3 : Collections vs Tables SQL
• Slide 4 : Documents vs Lignes SQL

Partie 2 : Présentation de MongoDB


• Slide 5 : Histoire et évolution de MongoDB
• Slide 6 : Architecture de MongoDB (mongod, mongos, replica sets)
• Slide 7 : Écosystème MongoDB (Atlas, Compass, Shell)

Partie 3 : Avantages de MongoDB


• Slide 8 : Flexibilité du schéma
• Slide 9 : Performance pour les lectures/écritures
• Slide 10 : Scalabilité horizontale native
• Slide 11 : Requêtes riches et indexation avancée
• Slide 12 : Support des données géospatiales

Partie 4 : Cas d'utilisation de MongoDB


• Slide 13 : Applications web et mobile
• Slide 14 : Gestion de contenu (CMS)
• Slide 15 : Catalogues de produits e-commerce
• Slide 16 : Analytique temps réel
• Slide 17 : IoT et données de capteurs

Partie 5 : Installation et configuration


• Slide 18 : Installation sur Windows/Linux/MacOS
• Slide 19 : Configuration du serveur MongoDB
• Slide 20 : MongoDB Compass (interface graphique)
• Slide 21 : MongoDB Shell (ligne de commande)

Partie 6 : Connexion et création de base


• Slide 22 : Se connecter à MongoDB
• Slide 23 : Créer une base de données
• Slide 24 : Créer une collection
• Slide 25 : Visualiser les bases et collections

Partie 7 : Comparaison avec SQL


• Slide 26 : Tableau de correspondance (Database, Table, Row, Column)
• Slide 27 : Exemple de modélisation : SQL vs Document
• Slide 28 : Dénormalisation dans MongoDB

Présentation 3 : Modèle Clé-Valeur (Redis)

Partie 1 : Introduction au modèle Clé-Valeur


• Slide 1 : Principe du modèle Clé-Valeur
• Slide 2 : Simplicité et performance
• Slide 3 : Comparaison avec une HashMap/Dictionary

Partie 2 : Présentation de Redis


• Slide 4 : Redis : REmote DIctionary Server
• Slide 5 : Architecture en mémoire (in-memory)
• Slide 6 : Persistance des données (RDB, AOF)

Partie 3 : Structures de données Redis


• Slide 7 : Strings (chaînes de caractères)
• Slide 8 : Lists (listes)
• Slide 9 : Sets (ensembles)
• Slide 10 : Sorted Sets (ensembles triés)
• Slide 11 : Hashes (tables de hachage)
• Slide 12 : Bitmaps et HyperLogLog

Partie 4 : Cas d'usage Redis


• Slide 13 : Cache applicatif (réduction de charge BDD)
• Slide 14 : Gestion de sessions utilisateur
• Slide 15 : File d'attente de messages (Queue)
• Slide 16 : Pub/Sub (publication/abonnement)
• Slide 17 : Compteurs et statistiques temps réel
• Slide 18 : Leaderboards (classements)

Partie 5 : Installation et commandes de base


• Slide 19 : Installation Redis
• Slide 20 : Redis CLI (interface ligne de commande)
• Slide 21 : Commandes SET, GET, DEL
• Slide 22 : Commandes EXPIRE, TTL (Time To Live)
• Slide 23 : Commandes pour Lists (LPUSH, RPUSH, LPOP, RPOP)
• Slide 24 : Commandes pour Sets et Hashes

Partie 6 : Exemples pratiques


• Slide 25 : Exercice 1 : Cache de profils utilisateur
• Slide 26 : Exercice 2 : Compteur de vues de page
• Slide 27 : Exercice 3 : Système de like/dislike

Partie 7 : Comparaison avec SQL


• Slide 28 : Limites du modèle Clé-Valeur
• Slide 29 : Quand utiliser Redis vs SQL
• Slide 30 : Architecture hybride : Redis + SQL

Présentation 4 : Modèle Colonnes (Cassandra)

Partie 1 : Introduction au modèle orienté Colonnes


• Slide 1 : Principe du stockage orienté colonnes
• Slide 2 : Différence avec le stockage orienté lignes (Row-based)
• Slide 3 : Column Family (famille de colonnes)
• Slide 4 : Avantages pour l'analytique et Big Data

Partie 2 : Présentation de Cassandra


• Slide 5 : Histoire de Cassandra (Facebook, Apache)
• Slide 6 : Architecture distribuée de Cassandra
• Slide 7 : Concept de nœuds et clusters
• Slide 8 : Pas de Single Point of Failure

Partie 3 : Modèle de données Cassandra


• Slide 9 : Keyspace (équivalent de Database)
• Slide 10 : Tables et Column Families
• Slide 11 : Partition Key et Clustering Key
• Slide 12 : Wide Row Pattern

Partie 4 : Caractéristiques de Cassandra


• Slide 13 : Haute disponibilité (99.99%)
• Slide 14 : Scalabilité linéaire
• Slide 15 : Tolérance aux pannes
• Slide 16 : Cohérence ajustable (tunable consistency)

Partie 5 : Cas d'usage Cassandra


• Slide 17 : Séries temporelles (Time Series)
• Slide 18 : IoT et données de capteurs
• Slide 19 : Logs et événements
• Slide 20 : Messagerie et historique de conversations
• Slide 21 : Recommandations et personnalisation

Partie 6 : CQL (Cassandra Query Language)


• Slide 22 : Syntaxe similaire à SQL
• Slide 23 : CREATE KEYSPACE et CREATE TABLE
• Slide 24 : INSERT, SELECT, UPDATE, DELETE
• Slide 25 : Limitations de CQL (pas de JOIN)

Partie 7 : Comparaison avec SQL


• Slide 26 : Tableau comparatif SQL vs Cassandra
• Slide 27 : Quand utiliser Cassandra
• Slide 28 : Exemples de grandes entreprises utilisant Cassandra (Netflix, Apple)

Présentation 5 : Modèle Graphe (Neo4j)

Partie 1 : Introduction aux bases de données de graphes


• Slide 1 : Qu'est-ce qu'un graphe ? (Nœuds et Relations)
• Slide 2 : Théorie des graphes : concepts de base
• Slide 3 : Propriétés des nœuds et des relations
• Slide 4 : Graphes orientés vs non-orientés

Partie 2 : Présentation de Neo4j


• Slide 5 : Neo4j : la base de graphes la plus populaire
• Slide 6 : Architecture de Neo4j
• Slide 7 : Neo4j Browser (interface web)
• Slide 8 : Property Graph Model

Partie 3 : Modèle de données Neo4j


• Slide 9 : Nœuds (Nodes) et labels
• Slide 10 : Relations (Relationships) et types
• Slide 11 : Propriétés (Properties)
• Slide 12 : Exemple de modélisation : Réseau social

Partie 4 : Langage Cypher


• Slide 13 : Introduction à Cypher
• Slide 14 : CREATE : créer des nœuds et relations
• Slide 15 : MATCH : rechercher des patterns
• Slide 16 : WHERE : filtrer les résultats
• Slide 17 : RETURN : retourner les résultats
• Slide 18 : DELETE et REMOVE
• Slide 19 : Requêtes de traversée de graphe

Partie 5 : Cas d'usage Neo4j


• Slide 20 : Réseaux sociaux (amis, followers)
• Slide 21 : Systèmes de recommandation
• Slide 22 : Détection de fraude
• Slide 23 : Gestion de connaissances (Knowledge Graph)
• Slide 24 : Routage et navigation
• Slide 25 : Gestion de dépendances et impact analysis

Partie 6 : Exemples pratiques


• Slide 26 : Exercice 1 : Créer un réseau d'amis
• Slide 27 : Exercice 2 : Trouver les amis d'amis
• Slide 28 : Exercice 3 : Système de recommandation de produits

Partie 7 : Comparaison avec SQL


• Slide 29 : Complexité des JOIN vs traversée de graphe
• Slide 30 : Quand utiliser Neo4j vs SQL
• Slide 31 : Performance : relations complexes

Présentation 6 : MongoDB Approfondi - CRUD, Index,


Agrégation

Partie 1 : Opérations CRUD


• Slide 1 : Rappel : Create, Read, Update, Delete
• Slide 2 : insertOne() et insertMany()
• Slide 3 : find() : recherche de documents
• Slide 4 : Opérateurs de requête ($eq, $ne, $gt, $lt, $in, etc.)
• Slide 5 : Opérateurs logiques ($and, $or, $not)
• Slide 6 : updateOne(), updateMany(), replaceOne()
• Slide 7 : Opérateurs de modification ($set, $unset, $inc, $push, etc.)
• Slide 8 : deleteOne() et deleteMany()
• Slide 9 : Exercices pratiques CRUD

Partie 2 : Projection et tri


• Slide 10 : Projection : sélectionner des champs spécifiques
• Slide 11 : sort() : trier les résultats
• Slide 12 : limit() et skip() : pagination

Partie 3 : Index
• Slide 13 : Pourquoi indexer ? Performance des requêtes
• Slide 14 : Types d'index : Single Field, Compound, Multikey
• Slide 15 : createIndex() : créer un index
• Slide 16 : Index unique (unique: true)
• Slide 17 : Index géospatiaux (2dsphere)
• Slide 18 : Index texte (text search)
• Slide 19 : getIndexes() et dropIndex()
• Slide 20 : explain() : analyser les performances

Partie 4 : Framework d'Agrégation


• Slide 21 : Concept de pipeline d'agrégation
• Slide 22 : Structure : aggregate([stage1, stage2, ...])
• Slide 23 : $match : filtrer les documents
• Slide 24 : $group : regrouper et calculer
• Slide 25 : Accumulateurs ($sum, $avg, $min, $max, $push)
• Slide 26 : $project : transformer les documents
• Slide 27 : $sort et $limit dans le pipeline
• Slide 28 : $lookup : jointures (similar to JOIN)
• Slide 29 : $unwind : dérouler les tableaux
• Slide 30 : Autres stages utiles ($addFields, $replaceRoot, $facet)

Partie 5 : Comparaison Agrégation vs GROUP BY SQL


• Slide 31 : Équivalence avec GROUP BY SQL
• Slide 32 : Exemples comparatifs SQL vs MongoDB
• Slide 33 : Avantages du pipeline MongoDB
Partie 6 : Accès depuis Python
• Slide 34 : Installation de PyMongo (pip install pymongo)
• Slide 35 : Connexion à MongoDB depuis Python
• Slide 36 : Opérations CRUD en Python
• Slide 37 : Agrégation en Python
• Slide 38 : Gestion des erreurs et exceptions

Partie 7 : Accès depuis Java


• Slide 39 : MongoDB Java Driver
• Slide 40 : Configuration Maven/Gradle
• Slide 41 : Connexion et opérations CRUD en Java
• Slide 42 : Exemple d'application Java + MongoDB

Partie 8 : Accès depuis PHP


• Slide 43 : Installation de l'extension MongoDB PHP
• Slide 44 : Connexion à MongoDB depuis PHP
• Slide 45 : Opérations CRUD en PHP
• Slide 46 : Exemple d'application web PHP + MongoDB

Présentation 7 : Synthèse Comparative + Travail de Synthèse

Partie 1 : Récapitulatif des 4 modèles NoSQL


• Slide 1 : Vue d'ensemble des 4 modèles
• Slide 2 : Modèle Document : caractéristiques principales
• Slide 3 : Modèle Clé-Valeur : caractéristiques principales
• Slide 4 : Modèle Colonnes : caractéristiques principales
• Slide 5 : Modèle Graphe : caractéristiques principales

Partie 2 : Tableau comparatif détaillé


• Slide 6 : Comparaison : Structure de données
• Slide 7 : Comparaison : Scalabilité
• Slide 8 : Comparaison : Performance
• Slide 9 : Comparaison : Cohérence et disponibilité (CAP)
• Slide 10 : Comparaison : Langages de requête
• Slide 11 : Comparaison : Cas d'usage principaux

Partie 3 : Critères de choix d'une base de données


• Slide 12 : Nature des données (structurées, semi-structurées)
• Slide 13 : Volume de données et croissance
• Slide 14 : Patterns d'accès (lecture vs écriture)
• Slide 15 : Exigences de cohérence
• Slide 16 : Complexité des relations
• Slide 17 : Compétences de l'équipe

Partie 4 : Architecture Polyglot Persistence


• Slide 18 : Concept de Polyglot Persistence
• Slide 19 : Utiliser plusieurs types de bases dans une application
• Slide 20 : Exemple d'architecture : SQL + Redis + MongoDB
• Slide 21 : Avantages et défis de cette approche

Partie 5 : Études de cas réels


• Slide 22 : E-commerce : utilisation de MongoDB + Redis
• Slide 23 : Réseau social : Neo4j + Cassandra
• Slide 24 : IoT : Cassandra pour séries temporelles
• Slide 25 : Application mobile : MongoDB + Redis

Partie 6 : Préparation à l'examen


• Slide 26 : Points clés à retenir sur chaque modèle
• Slide 27 : Exercices de révision

Partie 7 : Travail de Synthèse

Vous aimerez peut-être aussi