NoSQL Database Systems

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

  1. Les familles NoSQL
  2. Maitrisez le théorème de CAP
  3. 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

  1. Découvrez le fonctionnement de MongoDB
  2. Interrogez vos données avec MongoDB
  3. Protégez-vous des pannes avec les ReplicaSet
  4. Distribuez vos données avec MongoDB
  5. Entraînez-vous à créer et à interroger une base de données MongoDB

Partie 3 – Visualisez vos données avec ElasticSearch et Kibana

  1. Etudiez le fonctionnement d’Elasticsearch
  2. Interrogez des données textuelles
  3. Faites grandir votre base
  4. Visualisez et prototypez avec Kibana
  5. 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

Laisser un commentaire

Défiler vers le haut
Need Help? Chat with us