2023-2024 / INFO0009-2

Bases de données (organisation générale)

Durée

26h Th, 26h Pr, 25h Proj.

Nombre de crédits

 Bachelier en sciences de l'ingénieur, orientation ingénieur civil5 crédits 
 Bachelier en sciences informatiques5 crédits 
 Master en science des données, à finalité5 crédits 
 Master : ingénieur civil en science des données, à finalité5 crédits 
 Master en bioinformatique et modélisation, à finalité5 crédits 
 Master en sciences géographiques, orientation géomatique, à finalité5 crédits 
 Master en sciences mathématiques, à finalité6 crédits 

Enseignant

Christophe Debruyne

Langue(s) de l'unité d'enseignement

Langue française

Organisation et évaluation

Enseignement au deuxième quadrimestre

Horaire

Horaire en ligne

Unités d'enseignement prérequises et corequises

Les unités prérequises ou corequises sont présentées au sein de chaque programme

Contenus de l'unité d'enseignement

Le contenu du cours est divisé en 11 chapitres organisés en 4 parties.

Partie 1 : Introduction aux bases de données et conception des bases de données

Chapitre 01 : Introduction et Modèle Entité-Relation. 

  • Définition d'une base de données et l'introduction au jargon.
  • Le modèle entité-relation pour représenter un univers de discours (d'une manière graphique).
Partie 2 : Implémentation -- Modèle Relationnel (théorie)

Chapitre 02 : Le Modèle Relationnel et l'Algèbre Relationnelle

  • Le modèle relationnel comme base théorique des bases de données relationnelles.
  • Une traduction du modèle entité-relation en modèle relationnel.
  • L'algèbre relationnelle comme langage de requête du modèle relationnel
Chapitre 03 : La Théorie des Dépendances et la Normalisation des Relations

  • Définitions des anomalies de mise à jour, des dépendances fonctionnelles et des formes normales.
  • Processus de normalisation pour éviter les anomalies de mise à jour.
Partie 3 : Implémentation -- Modèle Relationnel (Mise en Œuvre et Implémentation)

Chapitre 04 : Les Bases de Données Relationnelles en Pratique : Langages d'Interrogation et de Mises à Jour

  • Modèle relationnel et algèbre relationnelle en pratique
  • SQL Data Query Language (DQL) pour interroger des données
  • SQL Data Manipulation Language (DML) pour manipuler les données
Chapitre 05 :  Les Bases de Données Relationnelles en Pratique : Mise en Œuvre et Utilisation

  • SQL Data Definition Language (DDL) pour créer les schémas.
  • SQL Data Control Language (DCL) pour gérer les utilisateurs et privilèges.
Chapitre 06 : Gestion de Stockage

  • Périphériques de stockage et les configurations Redundant Array of Independent Disks (RAID)
  • Approches de stockage des données, en tant qu'enregistrements, dans des fichiers
Chapitre 07 : Méthodes d'Accès

  • Trouver des enregistrements dans des fichiers à l'aide de fichiers index
  • Comparaison de différentes techniques d'indexation
Chapitre 08 : Le Traitement et l'Optimisation des Requêtes

  • Planification des requêtes, optimisation des requêtes et coût des requêtes
Chapitre 09 : La Gestion des Transactions

  • Définition des transactions et accès simultanés aux bases de données
  • SQL Transaction Control Language (TCL) pour déclarer et gérer les transactions.
Partie 4 : Implémentation -- Autres Modèles

Chapitre 10 : Bases de Données Déductives

  • Étendre les bases de données relationnelles avec la récursivité et la négation
  • Le langage de base de données déductif Datalog
  • Traduction du modèle entité-relation en Datalog
Chapitre 11 : XML

  • eXtensible Markup Language (XML)
  • Langages de schéma XML Data Type Definition (DTD) et XML Schema Definition (XSD)
  • Traduction du modèle entité-relation en DTD et XSD.

Acquis d'apprentissage (objectifs d'apprentissage) de l'unité d'enseignement

L'objectif du cours est l'acquisition des connaissances et des maîtrises techniques nécessaires à la réalisation de systèmes informatiques centrés sur une base de données. A l'issue du cours vous : 

  • Maîtriserez la terminologie et le jargon liés aux bases de données (relationnelles),
  • Serez capable de réaliser une base de données à petite ou moyenne échelle,
  • Serez capable de réaliser une application exploitant une base de donnée, et
  • Aurez une connaissance approfondie des caractéristiques des SGBDs.
Ce cours contribue aux acquis d'apprentissage I.1, I.2, II.1, II.2, III.1, III.2, III.3, V.1, VI.1, VI.2, VII.1, VII.4, VII.6 du programme de bachelier ingénieur civil.

Ce cours contribue aux acquis d'apprentissage I.1, I.2, II.1, II.2, III.1, III.2, III.3, V.1, VI.1, VI.2, VII.1, VII.4, VII.6 du programme d'ingénieur civil en génie biomédical.

Savoirs et compétences prérequis

Les bases de données s'appuient sur de nombreux domaines de l'informatique : la logique formelle, les structures de données, les systèmes d'exploitation, les langages de programmation, etc. Pour suivre ce cours de bases de données, il est impératif que vous :

  • maîtrisez l'algèbre booléenne ;
  • maîtrisez l'usage des systèmes d'exploitation (e.g., utiliser un terminal) ;
  • ayez une connaissance des systèmes d'exploitation ; et 
  • maîtrisez la programmation (procédurale). 
Ce cours ne consacre pas de temps à couvrir ces compétences. Si nécessaire, l'équipe pédagogique fournira des références sur eCampus.

Les unités prérequises ou co-requises sont présentées au sein de chaque programme.

Activités d'apprentissage prévues et méthodes d'enseignement

Le cours de bases de données organise quatre événements d'apprentissage clés, dont trois sont liés aux heures consacrées à la théorie, à la pratique et au projet. 

Théorie : Pour la théorie, les connaissances seront transmises sur base d'un exposé soutenu par des diapositives. Vous avez également accès à des alternatives qui s'appuient sur le même principe de transmission : un livre de référence et des enregistrements vidéo des cours. Des petits débats ou discussions sont sporadiquement organisés pendants les exposés afin d'approfondir la compréhension de certains aspects. Ces débats peuvent également être utilisés pour introduire un nouveau sujet dans un chapitre.

Travaux Pratiques : Chaque séance commence par un exercice simple entièrement élaboré par l'équipe pédagogique. Nous attendons de vous que vous suiviez chacune de ces étapes et que vous nous posiez des questions si nécessaire. Puis, vous effectuerez des exercices d'entraînement. Ces exercices ont pour but de de vous former à l'utilisation des techniques vues au cours. Certaines séances d'exercices vous offrent un environnement dans lequel vous pouvez tester vos solutions. Les solutions à ces exercices sont mises à votre disposition après la séance.

Projet : Le but de ce projet est de concevoir et de mettre en œuvre une base de données et de développer une application Web qui communique avec cette base de données. L'assistant et moi sommes ici pour vous guider et vous soutenir. Contrairement aux exercices, où des solutions sont données, vous serez uniquement guidés. Le projet est divisé en deux parties.

  • La première partie commence début mars et se termine environ 3 semaines plus tard, et consiste en la réalisation d'un modèle entité-relation, de la conversion vers le modèle relationnel, et éventuellement de la normalisation. Cette partie sera à réaliser en équipe de 3 étudiants. Non seulement le projet est plus difficile (i.e., plus important en taille) que les exercices couverts en classe, mais vous acquerrez également une expérience pratique de la modélisation collaborative. L'un des plus grands défis sur le terrain est de s'assurer que tout le monde s'accorde sur un modèle et la signification des étiquettes que l'on choisit pour les entités, les relations et les attributs.
  • La deuxième partie commence après la deadline de la première partie et se termine début mai. Il s'agit, en s'appuyant sur le travail effectué en première partie, de réaliser concrètement la base de données et son interface Web. Un modèle entité-relation et un ensemble de données seront fournis. Cette partie sera à réaliser en équipe de 3 étudiants. Alors que vous recevez des exemples de code qui interagissent avec une autre base de donnée, vous devrez copier et adapter ce code aux besoins du projet et la base de données que vous devez implémenter. Certains de ces besoins sont simples, mais d'autres requièrent l'intégration des connaissances et maîtrises acquises lors des séances théoriques et pratiques. Les tâches peuvent être facilement réparties entre vous. Vous travaillerez en équipe car cela vous permet de comprendre et d'évaluer le travail des autres. Le processus de compréhension et d'évaluation du travail des autres, et donc de collaboration vers un ensemble cohérent, est une compétence vitale dans l'industrie.
En dehors des cours et du projet, il y a des événements de métaréflexion. Le but de la métaréflexion est de comprendre où l'on en est dans l'apprentissage de la matière du cours.

  • Le premier type d'activité est le feedback global sur les projets (erreurs courantes, observations, etc.). Le feedback global inclut également des statistiques concernant les notes et la session vous invite à poser des questions ou ouvrir le débat. 
  • Le deuxième type d'activité est l'interrogation d'entraînement.  Ces interrogations (non obligatoires) vous préparent à l'examen. Après cette interrogation, je partage des solutions types et nous discutons des erreurs que vous voulez partager. Vous êtes invité à discuter et à corriger les erreurs commises. Je vous explique comment les solutions sont évaluées et notées lors de l'examen.

Mode d'enseignement (présentiel, à distance, hybride)

2ème semestre - présentiel

Lectures recommandées ou obligatoires et notes de cours

L'engagement pédagogique, ou syllabus dans des pays anglophones, est obligatoire. Vous trouverez des informations sur l'organisation du cours, le contenu du cours, les objectifs du cours et l'évaluation du cours sur cette ressource.

Les diapositives sont une ressource obligatoire. Chaque chapitre est accompagné d'un diaporama détaillé et complet. Il est possible d'étudier ce cours en utilisant uniquement les diapositives, mais vous êtes encouragé à combiner ceci avec une présence en classe ou les enregistrements des cours. Les cours en présentiel ou les enregistrements expliquent à nouveau, ou illustrent certains points sous différents angles.

Pour le projet, il existe un tutoriel sur l'utilisation de Git, Docker, PHP, HTML et MySQL. Ce tutoriel, disponible sous forme de slides, est suffisamment exhaustif pour réaliser votre projet.

Les documents relatifs aux exercices sont fortement recommandés. Les séances théoriques introduisent des exemples et ces exemples correspondent aux (types d') exercices que nous aborderons au cours des TP. Les exercices peuvent toutefois introduire de nouveaux éléments. Ceux-ci peuvent inclure de nouveaux opérateurs, des exemples plus élaborés ou difficiles, des détails techniques ou des cas particuliers. Des solutions seront disponibles après les exercices, mais vous êtes fortement encouragés à assister et à revoir ceux en préparation de l'examen. Cet exercice vous prépare également à la réalisation de votre projet.

Les questions d'examen précédents, les exemples de questions d'examen et les grilles d'évaluation de projet sont fortement recommandés. Toutes ces ressources sont mises à disposition, en temps voulu, sur eCampus. Bien que ceux-ci soient discutés en classe, vous devrez les consulter pour vous faire une idée concrète des attentes.

Le livre de référence est facultatif. "Silberschatz, Abraham, Henry F. Korth, and Shashank Sudarshan. Database system concepts. Ed. 7. New York: McGraw-Hill, 2019." Ou édition précédente car nous ne couvrons que les bases des bases de données. Alors que le matériel de cours développé pour ce cours est principalement basé sur ce livre, le matériel de cours a introduit les sujets dans un ordre différent et les présente différemment. Par exemple, le livre utilise une notation schématique qui n'est pas courante dans l'industrie. Cependant, ce livre peut être utile pour les étudiants qui souhaitent apprendre la matière à leur rythme, en anglais, ou qui souhaitent revisiter des chapitres différemment. Des exemplaires de ce livre sont disponibles à la bibliothèque. Les auteurs ont également gracieusement fourni du matériel d'apprentissage basé sur ce livre sur une page Web dédiée (https://www.db-book.com/).

Les enregistrements vidéo sont facultatifs. Les différents chapitres sont divisés en parties logiques. Pour chaque partie, un enregistrement vidéo est disponible sur YouTube. Des liens vers les vidéos YouTube sont disponibles sur eCampus sous chaque chapitre. Ces vidéos constituent une alternative aux cours en direct.

Références complémentaires partagées sur eCampus sont facultatifs. Il existe, pour certains chapitres, des liens vers des ressources et des articles. Ceux-ci sont destinés à fournir des indications supplémentaires ou un contexte (historique) pour ceux qui sont intéressés.

La documentation MySQL est fortement recommandée pour le projet. Bien que nous couvrions de nombreuses fonctions dans le cours, avoir la documentation MySQL à portée de main peut être utile pour le projet. Vous pouvez réaliser le projet sans documentation supplémentaire, mais la documentation décrit un ensemble de fonctions qui peuvent être utiles. Si une question d'examen devait s'appuyer sur une fonction non couverte en classe, cette fonction serait décrite dans l'énoncé.

Modalités d'évaluation et critères

Examen(s) en session

Toutes sessions confondues

- En présentiel

évaluation écrite ( questions ouvertes )

Autre : Projet


Explications complémentaires:

Evaluation du projet (40%); examen écrit (60%).

Parmi les 40% du projet, la première partie compte pour 10% et la seconde pour 30%.

Ce projet est obligatoire. Un étudiant qui n'aurait rien soumis pour une des deux parties obtiendra automatiquement une note d'absence (A) pour la totalité du cours.

Les étudiants qui ont échoué à la première partie du projet se verront attribuer un nouvel énoncé. Les étudiants ayant échoué à la deuxième partie du projet peuvent soumettre une version révisée.

Stage(s)

Remarques organisationnelles et modifications principales apportées au cours

Des informations additionnelles concernant ce cours peuvent être consultées à eCampus.

Contacts

Enseignant : Christophe Debruyne

Association d'un ou plusieurs MOOCs