| | UE: Bases de données | | Site permanent |
L'unité d'enseignement « Bases de données » est
une UE de niveau (300) spécialisation relevant de la licence d'informatique.
Elle possède un volume de 6 ECTS et
s'étend sur 12 semaines. Elle est placée sous la responsabilité de Amann, bernd.
Description
Cette UE présente une introduction aux systèmes de gestion de bases de données (SGBD) relationnelles. Elle enseigne aux étudiants les fondements théoriques du modèle relationnel,
les langages pour la conception, l'interrogation et la mise-à-jour des bases de données (SQL), ainsi que les modèles et algorithmes pour l'optimisation et le traitement de requêtes et la gestion de transactions.
L'UE Bases de Données comporte 3 grandes parties :
-
La première partie présente
les outils théoriques et pratiques pour modéliser et interroger un système de gestion de bases de données (SGBD) : modélisation entité-association, logique du premier ordre, modèle et langages relationnels.
-
La seconde partie aborde les outils plus sophistiqués pour concevoir et programmer des applications : contraintes d'intégrité, vues,
triggers, ainsi que les dépendances fonctionnelles et la théorie de la normalisation permettant la conception et la validation formelle
de schémas relationnels.
-
La troisième partie introduit les mécanismes internes d'un SGBD (couche physique) : interprétation et optimisation de requêtes,
gestion de transactions (tolérance aux pannes et concurrence).
Les deux premières parties sont aussi abordées d'un point de vue pratique par
des séances sur machine avec le SGBD Oracle.
Préalables et buts pédagogiques
Bibliographie
R. Ramakrishnan, J. Gehrke. Database management systems. McGraw-Hill, 2002.
Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer D. Widom Database Systems: The Complete Book, Prentice Hall, 2001
S. Abiteboul, Les fondements des bases de données, Vuibert, 2001
Chris-J Date, Introduction aux bases de données, Vuibert, 2004
Contenu indicatif par semaine
Introduction: besoin de SGBD dans les applications, objectifs des SGBD, modélisation des données et niveaux d'abstraction, modélisation 'Entité Association'.
Modèle relationnel: les concepts (schéma de relation, attributs, domaine, n-uplet), l'algèbre relationnelle (opérateurs de base et opérateurs dérivés), passage d'un modèle
entité-association à un modèle relationnel.
Introduction à la logique: notions de système formel, mécanisme de déduction et théorèmes, calcul propositionnel.
Logique pour bases de données relationnelles : calcul des prédicats, calcul
relationnel variable n-uplet, calcul relationnel variable domaine.
Interrogation d'une base de données en SQL: requêtes simples, requêtes imbriquées, agrégats et groupement.
Définition et modification d'une base de données en SQL: création des tables,
insertion, suppression et mise à jour des données. Contraintes d'intégrité : typologie,
vérification, définition en SQL 2.
Triggers: définition (événement, condition et action), modèle d'exécution, expression en SQL3.
Conception et optimisation de schéma relationnel : notion de redondance, dépendance fonctionnelle, déduction (axiome d'Armstrong) et couverture minimale, formes
normales.
Evaluation et optimisation de requête : arbre algébrique, optimisation logique par réécriture, opérateurs physiques et modèle de coût, choix du meilleur plan d'exécution.
Vues : définition, utilisation pour l'interrogation, mise à jour au travers
des vues, matérialisation des vues et OLAP.
Transactions : définition, propriétés (Atomicité, Cohérence, Isolation, Durabilité), résistance aux pannes (journalisation, validation, reprise à froid et à chaud.
Contrôle de concurrence : problème de la concurrence, notion de sérialisabilité, verrouillage deux phases.
Contrôle de concurrence (suite) : résolution d'interblocages, ordonnancement
par estampillage.
|