NoSQL Database Systems
Enseignant:
Email:
Durée totale du cours: 22.5 H
Semestre : 5 Ingénierie des Services Télécom (IST)
Nombre de crédits : 1
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 |
|
24 |
38 |
|
cours |
TD |
TP |
16.5 |
6 |
|
|
|
|
|
|
Code : GTIAI03 NoSQL Database Systems
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
Semaine 1-2: Introduction aux bases de données NoSQL
- Introduction aux concepts fondamentaux des bases de données NoSQL
- Comparaison avec les bases de données relationnelles
- Avantages et inconvénients des bases de données NoSQL dans le contexte des télécommunications
- Catégories de bases de données NoSQL : documents, graphes, colonnes, paires clé-valeur
Semaine 3-4: Bases de données orientées documents
- Modèle de données orienté document
- Étude de cas : MongoDB
- Schémas flexibles et évolutivité horizontale
- Requêtes et indexation dans les bases de données orientées documents
- Intégration des bases de données orientées documents dans les applications de télécommunication
Semaine 5-6: Bases de données orientées colonnes
- Modèle de données orienté colonne
- Étude de cas : Cassandra
- Stockage efficace en colonnes pour les données massives
- Conception de schémas pour les bases de données orientées colonnes
- Cas d'utilisation dans les réseaux de télécommunication
Semaine 7-8: Bases de données clé-valeur
- Modèle clé-valeur et utilisation dans les bases de données NoSQL
- Étude de cas : Redis
- Opérations clé-valeur de base : stockage, récupération, suppression
- Utilisation de bases de données clé-valeur pour la mise en cache et la gestion de sessions dans les services de télécommunication
Semaine 9-10: Bases de données orientées graphes
- Modèle de données orienté graphe
- Étude de cas : Neo4j
- Représentation des données et relations dans les bases de données graphes
- Interrogation de données graphiques pour l'analyse de réseaux de télécommunication
- Détection de fraudes et d'anomalies à l'aide de bases de données orientées graphes
Semaine 11-12: Conception de bases de données NoSQL
- Choix du bon type de base de données NoSQL en fonction des exigences
- Modélisation des données pour les bases de données NoSQL
- Schémas flexibles et adaptation aux changements
- Considérations en matière de cohérence, de disponibilité et de tolérance aux pannes (théorie CAP)
- Études de cas de conception pour les télécommunications
Semaine 13-14: Performance, évolutivité et sécurité des bases de données NoSQL
- Optimisation des performances dans les bases de données NoSQL
- Évolutivité horizontale et gestion de la croissance des données
- Sécurité des données et des accès dans un environnement NoSQL
- Gestion des sauvegardes, des restaurations et de la récupération
Semaine 15-16: Tendances et cas d'utilisation avancés
- Tendances actuelles dans le domaine des bases de données NoSQL
- Cas d'utilisation avancés : IoT (Internet of Things), Big Data, traitement en temps réel
- Intégration de bases de données NoSQL avec d'autres technologies (ex. : conteneurs, microservices)
- Projet final : Conception et implémentation d'une solution NoSQL pour un scénario de télécommunication
Méthodes d’enseignement et d’apprentissage
Enseignement frontal (magistral) avec des exemples à résoudre en commun.
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 disponible.
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 avec succès le cours "NoSQL Database Systems" dans le cadre du diplôme d'ingénieur en Génie des Télécommunications, les étudiants devraient développer un ensemble de compétences techniques et professionnelles. Voici quelques compétences qu'ils pourraient acquérir :
- Compétences techniques :
- Compréhension des systèmes de base de données NoSQL : Les étudiants devraient être en mesure de comprendre les concepts fondamentaux des bases de données NoSQL, y compris les différents types de bases de données NoSQL (document, graphe, colonne, etc.), leurs caractéristiques et leurs cas d'utilisation appropriés.
- Conception de bases de données NoSQL : Les étudiants devraient être capables de concevoir et de modéliser des bases de données NoSQL en fonction des exigences spécifiques des projets, en tenant compte des schémas flexibles et évolutifs propres aux bases de données NoSQL.
- Utilisation de bases de données NoSQL : Les étudiants devraient être en mesure d'implémenter, de configurer et de gérer des bases de données NoSQL, ainsi que d'effectuer des opérations courantes telles que l'insertion, la mise à jour, la récupération et la suppression de données.
- Optimisation des performances : Les étudiants devraient apprendre à optimiser les performances des bases de données NoSQL en choisissant les index appropriés, en gérant la distribution des données et en mettant en œuvre des techniques d'optimisation spécifiques à chaque type de base de données.
- Sécurité des bases de données NoSQL : Les étudiants devraient être conscients des défis de sécurité liés aux bases de données NoSQL et devraient être en mesure de mettre en œuvre des stratégies de sécurité telles que l'authentification, l'autorisation et le chiffrement.
- Intégration avec des applications : Les étudiants devraient être capables d'intégrer des bases de données NoSQL avec des applications en utilisant des bibliothèques, des API et des frameworks appropriés.
- Développement de compétences en programmation : Ils pourraient également développer des compétences en programmation dans les langages couramment utilisés pour interagir avec les bases de données NoSQL, tels que Python, Java, Node.js, etc.
- Compétences professionnelles :
- Résolution de problèmes : Les étudiants devraient être en mesure de résoudre efficacement des problèmes liés à la conception, à la mise en œuvre et à la gestion des bases de données NoSQL.
- Travail d'équipe : Ils devraient être capables de collaborer au sein d'équipes multidisciplinaires pour intégrer les bases de données NoSQL dans des projets plus larges.
- Communication technique : Les étudiants devraient être en mesure de communiquer de manière claire et concise les concepts liés aux bases de données NoSQL à des publics techniques et non techniques.
- Adaptabilité technologique : Comme la technologie évolue rapidement, les étudiants devraient développer la capacité de s'adapter à de nouvelles technologies et à de nouveaux développements dans le domaine des bases de données NoSQL.
- Pensée critique : Ils devraient être en mesure d'évaluer de manière critique les avantages et les inconvénients des solutions de bases de données NoSQL par rapport aux solutions traditionnelles.
- Éthique professionnelle : Les étudiants devraient être conscients des implications éthiques et légales liées à la gestion des données et à l'utilisation des bases de données NoSQL.
[lifterlms_course_continue_button]