Each module contains 3 ECTS. You choose a total of 10 modules/30 ECTS in the following module categories:
- 12-15 ECTS in technical scientific modules (TSM)
TSM modules teach profile-specific specialist skills and supplement the decentralised specialisation modules. - 9-12 ECTS in fundamental theoretical principles modules (FTP)
FTP modules deal with theoretical fundamentals such as higher mathematics, physics, information theory, chemistry, etc. They will teach more detailed, abstract scientific knowledge and help you to bridge the gap between abstraction and application that is so important for innovation. - 6-9 ECTS in context modules (CM)
CM modules will impart additional skills in areas such as technology management, business administration, communication, project management, patent law, contract law, etc.
In the module description (download pdf) you find the entire language information per module divided into the following categories:
- instruction
- documentation
- examination
Les applications modernes reposent sur des systèmes de données capables de traiter des volumes importants d’informations tout en garantissant la fiabilité, la cohérence et la performance. Ce cours propose une exploration approfondie des fondations des systèmes de données et des architectures distribuées.
L’objectif est de comprendre les principes fondamentaux qui sous-tendent les systèmes de données intensifs : fiabilité, passage à l’échelle, tolérance aux pannes, cohérence et consensus. Les étudiant-e-s apprendront à analyser les compromis entre cohérence, disponibilité et latence, et à concevoir des architectures adaptées aux besoins réels des applications distribuées.
Prerequisites
- Modèle relationnel, algèbre relationnelle et normalisation
- SQL : modélisation des données, langage de requête, transactions et droits d'accès
- Optimisation des requêtes, index de base de données
- Langages de programmation orientée objet
Learning Objectives
À la fin du module, les étudiant-e-s seront capables de :
-
Expliquer les principes de fiabilité, scalabilité et maintenabilité des systèmes de données ;
-
Comparer différents modèles de données et langages de requête (relationnel, document, graphe, clé-valeur) et comprendre leurs usages ;
-
Décrire les mécanismes internes de stockage et d’indexation (B-trees, LSM-trees, colonnes, sérialisation, compatibilité ascendante) ;
-
Comprendre les modèles de réplication (leader-follower, multi-leader, leaderless) et leurs effets sur la cohérence ;
-
Mettre en œuvre des stratégies de partitionnement (sharding) et de répartition de charge ;
-
Expliquer le fonctionnement et les limites des transactions distribuées, des protocoles de verrouillage et de commit en deux phases ;
-
Identifier les défaillances partielles dans les systèmes distribués et leurs conséquences ;
-
Analyser et comparer les modèles de cohérence (forte, causale, éventuelle) et les protocoles de consensus (Paxos, Raft) ;
-
Évaluer les compromis entre cohérence, disponibilité et tolérance aux pannes (CAP theorem) ;
-
Utiliser ces connaissances pour concevoir, choisir et configurer des systèmes de données adaptés à divers contextes.
Contents of Module
Contenu du cours et pondération
Fondations des systèmes de données (40 %)
-
Fiabilité, tolérance aux pannes, passage à l’échelle
-
Modèles de données et langages de requête
-
Stockage, indexation et sérialisation des données
-
Compatibilité et évolution des schémas
Systèmes de données distribués (60 %)
-
Réplication et partitionnement
-
Transactions distribuées et isolation
-
Défaillances partielles, détection et récupération
-
Cohérence, consensus et compromis de conception
Teaching and Learning Methods
Ce cours se base sur des présentations théoriques et des exercices pratiques, des laboratoires ou des projets de groupe.
Literature
Diapositives des cours, références à des ressources Internet et à des livres.
Martin Kleppmann, Designing Data-Intensive Applications, O’Reilly.
Download full module description
Back