Bases de données : modélisation et implémentation

Cours de bases de données relationnelles : SQL avec MariaDB et DBeaver, récolte et pré-traitement de données, modélisation logique et physique, normalisation, peuplement, vues et statistiques, avec une ouverture vers Python et le NoSQL.
Databases
SQL
Date de publication

18 septembre 2024

Faculté
Faculté des lettres, Section des sciences du langage et de l’information, Université de Lausanne
Niveau
Master
Semestre
Automne 2024
Langue
Français
Séances
12
Prérequis
Aucun
Outils
MariaDB, DBeaver
Note

Ce cours est très pratique : chaque séance alterne slides et travaux pratiques sur une vraie base de données. Les fichiers de cours et de TP sont fournis en zip (scripts SQL, sauvegardes de bases à restaurer, données CSV) et les corrigés sont inclus dans les zips de TP.

Outils nécessaires

Le cours utilise deux logiciels libres, à installer avant la première séance de TP en suivant le guide d’installation ci-dessous :

TP 1 : Guide d’installation de MariaDB et DBeaver

Ressources utiles tout au long du semestre : le MariaDB Tutorial et la documentation de DBeaver.

Séance 1 : Introduction aux bases de données

Date : 18 septembre 2024

Pourquoi des bases de données ? Les notions fondamentales du modèle relationnel : tables, relations, clés, types de données, et le rôle d’un système de gestion de bases de données.

1. Introduction aux bases de données

TP 1 : Installation

Séance 2 : Prise en main de MariaDB, SQL et DBeaver

Date : 25 septembre 2024

Premiers pas dans DBeaver et premières requêtes SQL : créer une base, créer des tables, importer des données et interroger une base de pays et de langues.

2. MariaDB, SQL et DBeaver

Fichiers du cours 2 (scripts SQL, données)

TP 2

Fichiers du TP 2 et corrigé

Séance 3 : SQL 2

Date : 2 octobre 2024

Les requêtes SELECT en profondeur : filtres, tri, fonctions, et premières jointures sur la base world. Le TP travaille sur la base employees, à restaurer depuis la sauvegarde fournie.

3. SQL 2

Fichiers du cours 3

TP 3

Fichiers du TP 3 et corrigé (base employees)

Séance 4 : SQL 3

Date : 9 octobre 2024

Jointures multiples, agrégations et sous-requêtes. Le TP introduit la base de jeux vidéo, utilisée à plusieurs reprises dans la suite du cours et décrite dans un document à part.

4. SQL 3

Fichiers du cours 4

Présentation de la base de jeux vidéo

TP 4

Fichiers du TP 4 et corrigé (base video_games)

Séance 5 : Récolte de données et pré-traitements

Date : 16 octobre 2024

Les formats de données (CSV, JSON, XML, HTML), les sites de données ouvertes et les API REST. Les scripts Python montrent comment interroger une API et aplatir un JSON en table.

5. Récolte de données et pré-traitements

Fichiers du cours 5 (exemples de formats)

Scripts Python : API et aplatissement de JSON

TP 5

Séance 6 : Conception de bases de données, modélisation logique

Date : 23 octobre 2024

Du besoin au modèle : entités, associations, cardinalités et diagramme entité-association, à partir d’un jeu de données sur les pays européens.

6. Modélisation logique

Fichiers du cours 6

TP 6

Fichiers du TP 6 et corrigé (données Airbnb)

Séance 7 : Schéma relationnel et normalisation

Date : 30 octobre 2024

Passage du modèle logique au schéma relationnel, puis les formes normales pour éviter redondances et anomalies. Le TP poursuit la modélisation des données Airbnb, avec un corrigé détaillé.

7. Schéma relationnel et normalisation

Fichiers du cours 7

TP 7

Fichiers du TP 7

Corrigé du TP 7

Schéma du corrigé

Séance 8 : SQL 4

Date : 13 novembre 2024

SQL avancé, première partie : jointures externes, opérateurs ensemblistes et requêtes imbriquées, sur la base golf en cours et la base de jeux vidéo en TP.

8. SQL 4

Fichiers du cours 8

TP 8

Fichiers du TP 8 et corrigé

Séance 9 : SQL 5

Date : 20 novembre 2024

SQL avancé, seconde partie : fonctions, procédures stockées et transformation de tables (unpivot). Le TP porte sur une base de jeux de société.

9. SQL 5

Fichiers du cours 9

TP 9

Fichiers du TP 9 et corrigé (base board_game)

Séance 10 : Peuplement d’une base de données

Date : 27 novembre 2024

Comment remplir une base à partir de fichiers bruts : tables temporaires, transformations et insertions, illustrées sur les pays européens et leurs émissions de CO2.

10. Peuplement

Fichiers du cours 10

TP 10

Fichiers du TP 10 et corrigé (données Airbnb)

Séance 11 : Vues et statistiques

Date : 4 décembre 2024

Les vues pour simplifier l’accès aux données, et les requêtes statistiques pour explorer une base : comptages, moyennes, distributions.

11. Vues et statistiques

Fichiers du cours 11

TP 11

Fichiers du TP 11 et corrigé (base airbnb)

Séance 12 : Bases de données en backend et NoSQL

Date : 11 décembre 2024

Ouverture : accéder à une base depuis Python et un backend d’application, puis panorama des systèmes NoSQL (documents, clés-valeurs, graphes) et de leurs usages.

12. Backend et NoSQL