SQL, NoSQL et NewSQL

Ects : 3
Compétence à acquérir :
Compréhension des modèles NoSQL, modélisation des bases de données en SQL et NoSQL, norme JPA.

Description du contenu de l'enseignement :
Le cours a pour objectif d'apprendre aux étudiants les aspects fondamentaux des différents types bases de données qu’elles soient basées sur le SQL, le NoSQL (Not Only SQL) ou récemment le NewSQL.
Le cours s’articule en trois parties.
Dans la première partie, l’accent est mis sur les bases de données relationnelles : leurs avantages et leurs inconvénients, ainsi que la correspondance objet-relationnel (Object-Relationnel Mapping -ORM) avec la norme JPA.
La deuxième partie présentera les différents modèles noSQL (clé-valeur, document, graphe), les notions de disponibilité et de partitionnement à la cohérence (propriétés BASE, théorème CAP), les différents systèmes NoSQL (Redis, MongoDB, Cassandra, Neo4j, ...), les avantages et les inconvénients du NoSQL.
La troisième partie sera consacrée aux bases NewSQL : leur définition et leurs caractéristiques, les nouvelles architectures et la notion de DBaaS (Database as a service), leurs avantages et leurs inconvénients.
Les notions apprises seront mises en pratique dans le cadre de TP (un TP sur Redis, un TP sur MongoDB et un TP sur Neo4j) et d'un projet où les étudiants devront manipuler différents types de bases de données afin de les comparer.