MSE Master of Science in Engineering

The Swiss engineering master's degree


Chaque module vaut 3 ECTS. Vous sélectionnez 10 modules/30 ECTS parmi les catégories suivantes:

  • 12-15 crédits ECTS en Modules technico-scientifiques (TSM)
    Les modules TSM vous transmettent une compétence technique spécifique à votre orientation et complètent les modules de spécialisation décentralisés.
  • 9-12 crédits ECTS en Bases théoriques élargies (FTP)
    Les modules FTP traitent de bases théoriques telles que les mathématiques élevées, la physique, la théorie de l’information, la chimie, etc., vous permettant d’étendre votre profondeur scientifique abstraite et de contribuer à créer le lien important entre l’abstraction et l’application dans le domaine de l’innovation.
  • 6-9 crédits ECTS en Modules contextuels (CM)
    Les modules CM vous transmettent des compétences supplémentaires dans des domaines tels que la gestion des technologies, la gestion d’entreprise, la communication, la gestion de projets, le droit des brevets et des contrats, etc.

Le descriptif de module (download pdf) contient le détail des langues pour chaque module selon les catégories suivantes:

  • leçons
  • documentation
  • examen 
Advanced Databases (TSM_AdvDaBa)

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.

Compétences préalables

  • 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

Objectifs d'apprentissage

À 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.

Contenu des modules

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

Méthodes d'enseignement et d'apprentissage

Ce cours se base sur des présentations théoriques et des exercices pratiques, des laboratoires ou des projets de groupe.

 

Bibliographie

Diapositives des cours, références à des ressources Internet et à des livres.

Martin Kleppmann, Designing Data-Intensive Applications, O’Reilly.

Télécharger le descriptif complet

Retour