ECTS : 3
Volume horaire : 24
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 (sur Redis, Cassandra, MongoDB et Neo4j) et d'un projet où les étudiants devront manipuler différents types de bases de données afin de les comparer.
Compétence à acquérir :
Mode de contrôle des connaissances :
Cette UE est évaluée par un projet (50%) et un examen (50%)
Bibliographie, lectures recommandées :
P. J. Sadalage et M. Fowler (2013). NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence. Addison Wesley
R. Bruchez (2015). Les bases de données NoSQL et le Big Data. Eyrolles
G. Harrison (2015), Next Generation Databases, NoSQL, NewSQL and Big Data, Apress