NoSQL Database Systems GINAI03
Enseignant:
Email:
Durée totale du cours: 45 H
Semestre : 3
Nombre de crédits : 3
| Modules
spécialisés |
Modules de
base |
Sciences et techniques de
l’ingénierie |
Préparation à la carrière professionnelle |
| X |
| Nombre d’heures | Activités hors classe |
| 45 | 18 |
Code : GINAI03 NoSQL Database Systems
Volume Horaire : 01h30 Cours intégrés + 1h30 Travaux pratiques (par semaine)
Aperçu :
- Modèles de données NoSQL : magasins de valeurs clés, de colonnes larges, de documents et de graphiques. Théorème CAP. Modèles de diffusion.
- Bases de données NoSQL actuelles : configuration et déploiement, opérations CRUD, indexation, réplication et partage. Ensembles de données publics. Codage API et développement d’applications. NoSQL dans le Cloud. Projet d’équipe.
Contenu du cours
Sommaire
- Principes fondamentaux de NoSQL (fonctionnalités NoSQL, modèles de données et modèles de distribution)
- Présentation de MongoDB
- Opérations MongoDB CRUD et requêtes avancées
- Réplication MongoDB
- Partage MongoDB
- Index MongoDB
- Présentation de Cassandre
- Langage de requête Cassandra (CQL)
- Modélisation des données de Cassandre
- Architecture de Cassandre
Partie 1 – Immergez vos données dans le NoSQL
- Les familles NoSQL
- Maitrisez le théorème de CAP
- Maitriser les bases de données NoSQL
- Les origines de la distribution de données et le sharding
- les critères de choix d’une BDD NoSQL ?
Quiz : Savez-vous vraiment ce qu’est le NoSQL ?
Partie 2 – Administrez vos données avec MongoDB
- Découvrez le fonctionnement de MongoDB
- Interrogez vos données avec MongoDB
- Protégez-vous des pannes avec les ReplicaSet
- Distribuez vos données avec MongoDB
- Entraînez-vous à créer et à interroger une base de données MongoDB
Partie 3 – Visualisez vos données avec ElasticSearch et Kibana
- Etudiez le fonctionnement d’Elasticsearch
- Interrogez des données textuelles
- Faites grandir votre base
- Visualisez et prototypez avec Kibana
- Entraînez-vous à extraire l’essence d’une base de données
Méthodes d’enseignement et d’apprentissage
- Enseignement frontal (magistral) avec des exemples à résoudre en
- Exercices théoriques et études de cas (présentation et discussion).
- Travaux pratiques (laboratoire)
- Travaux à faire à domicile (mini-projet, exposé, compte-rendu, …)
Logiciel (les étudiants sont responsables de la configuration et du déploiement des produits logiciels requis.)
- MongoDB
- Cassandre
- Docker
- GIT
- Linux (Ubuntu)
- Langage de programmation : Java et/ou Python
Connaissances et compétences pré-requises
Bases de données
- Compréhension des bases de données relationnelles
- Langage de requêtes SQL
- Notions d’optimisation de bases de données : indexation, hachage, plans d’exécution
Ingénierie informatique
- Bonne connaissance de l’environnement UNIX
- Connaissances réseau élémentaires
Outils nécessaires :
- Serveur Mongo DB ((version 3.4.7)
- Rob3T (version 1.1)
- Serveur ElasticSearch
- Kibana
Références bibliographiques
- Un cours de l’enseignant sera
- NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence by Parmod J. Sadalage and Martin Fowler
- MongoDB: The Definitive Guide: Powerful and Scalable Data Storage, 3nd Edition by Kristina Chodorow, December 2020
- The Definitive Guide to MongoDB: A Complete Guide to Dealing with Big Data using MongoDB, 3rd Edition by David Hows, Peter Membrey, Eelco Plugge and Tim Hawkins, December, 2015
- Mastering Apache Cassandra 3.x, 3rd Edition by Nishant Neeraj, Tejaswi Malepati and Aaron Ploetz, October 2018
- Cassandra: The Definitive Guide: Distributed Data at Web Scale by Jeff Carpenter and Eben Hewitt, July 2016
- Seven Databases in Seven Weeks: A Guide to Modern Databases and the NoSQL Movement, 2nd Edition by Luc Perkins, Eric Redmond, and Jim Wilson, April 2018
- Other readings: A list of additional references will be provided per topic as needed
Modalité d’évaluation
- 40% Contrôle continu (TP noté, Test, Assiduité, Devoir surveillé, travaux non présentiels, …)
- 60% Examen semestriel
- TP, Test, Assiduité, Travaux non présentiels, Mini-projets, …
Résultats d’apprentissage :
Après avoir réussi ce cours, les étudiants doivent être capables de :
- Connaître les principaux modèles de données NoSQL : magasins de valeurs-clés, de familles de colonnes, de documents et de graphiques
- Effectuer une analyse comparative sur les modèles de données NoSQL et le modèle de données relationnelles
- Comprendre les méthodes de distribution des données : réplication et partitionnement
- Comprendre les réplications maître-esclave et peer-to-peer
- Comprendre le théorème CAP de Brewer et ses implications pour les systèmes de base de données NoSQL
- Comprendre l’essentiel de la gestion des données NoSQL à travers les opérations CRUD et les mécanismes d’interrogation
- Comprendre les composants du système de base de données NoSQL et leurs protocoles de communication pour le processus de lecture et d’écriture
- Sélectionnez une base de données NoSQL appropriée pour le cas d’utilisation en cours et concevez des applications pour travailler efficacement avec la base de données choisie