Exercice 2 : Normalisation et transactions
Problème GUIDÉ : Normalisation et Transactions dans les Bases de Données Relationnelles
Section titled “Problème GUIDÉ : Normalisation et Transactions dans les Bases de Données Relationnelles”Matière : Informatique - Filière MPI
Chapitre: ** Bases de Données Relationnelles
Thème : Formes normales, dépendances fonctionnelles, propriétés ACID et niveaux d’isolation des transactions.
Introduction et Objectifs
Section titled “Introduction et Objectifs”Ce problème aborde deux piliers fondamentaux des bases de données relationnelles :
- La Théorie de la Normalisation : garantir la qualité du schéma relationnel par l’analyse des dépendances fonctionnelles afin d’éviter la redondance et les anomalies de mise à jour.
- Le Contrôle de Concurrence et les Transactions : assurer l’intégrité des données face à des exécutions simultanées en manipulant les propriétés ACID et les anomalies de concurrence.
Partie I : Normalisation et Dépendances Fonctionnelles
Section titled “Partie I : Normalisation et Dépendances Fonctionnelles”On considère une relation globale dont l’ensemble des attributs est :
On dispose de l’ensemble des dépendances fonctionnelles suivantes :
Question 1 : Fermeture d’un ensemble d’attributs
Section titled “Question 1 : Fermeture d’un ensemble d’attributs”Énoncé :
Déterminer la fermeture de l’attribut sous l’ensemble des dépendances fonctionnelles , notée .
En déduire si peut constituer à lui seul une clé candidate pour la relation .
Correction guidée :
Rappel de cours : La fermeture d’un ensemble d’attributs (noté ) sous un ensemble de DF est l’ensemble maximal d’attributs que l’on peut déterminer à partir de en appliquant les règles d’Inférence de Armstrong.
Étape par étape :
- Initialisation :
- Application de (1) : .
On obtient - Application de (2) : .
Puisque , on ajoute .
On obtient - Aucune autre règle ne s’applique car les autres DF nécessitent des attributs absents de (notamment ).
Par conséquent, .
Puisque cette fermeture ne contient pas l’ensemble de tous les attributs , n’est pas une clé candidate pour (il manque l’information sur les projets).
Question 2 : Recherche de clé primaire et Formes Normales
Section titled “Question 2 : Recherche de clé primaire et Formes Normales”Énoncé :
- Déterminer la clé primaire (ou clé candidate minimale) de la relation .
- La relation est-elle en Deuxième Forme Normale (2NF) ? En Troisième Forme Normale (3NF) ? Justifier.
Correction guidée :
-
Recherche de la clé :
Analysons les attributs qui n’apparaissent jamais à droite d’une DF dans :- (apparaît à gauche de 1, mais pas à droite)
- (apparaît à gauche de 3 et 4, mais pas à droite)
Testons la fermeture de la combinaison :
- contient :
- (via DF 1 et 2)
- (via DF 3)
- (via DF 4)
La fermeture est égale à . La clé candidate unique (minimale) est donc .
-
Formes normales :
- 1NF : Satisfaite (les attributs sont atomiques).
- 2NF : Une relation est en 2NF si elle est en 1NF et si tout attribut n’appartenant pas à une clé candidate dépend de façon complète (et non partielle) de la clé.
Or, on a la DF 1 : .
Ici, dépend d’une partie de la clé candidate ().
n’est donc pas en 2NF.
Question 3 : Décomposition en Forme Normale de Boyce-Codd (FNBC)
Section titled “Question 3 : Décomposition en Forme Normale de Boyce-Codd (FNBC)”Énoncé :
Proposer une décomposition sans perte de information et en dépendances de sous forme de relations en FNBC.
Correction guidée :
Pour chaque DF violant la FNBC (où le déterminant n’est pas une surclé), on sépare la relation :
- Violation 1 : ( n’est pas une clé).
On crée . - Violation 2 : ( n’est pas une clé).
On crée . - Violation 3 : ( n’est pas une clé).
On crée .
Il reste la relation d’association avec la clé complète :
- .
Toutes ces relations respectent la FNBC car, pour chacune d’elles, le déterminant de chaque DF non triviale est une superclé.
Partie II : Transactions et Concurrence
Section titled “Partie II : Transactions et Concurrence”On s’intéresse maintenant au système de gestion de bases de données gérant ces relations. Deux transactions et s’exécutent de manière concurrente.
Soit les opérations suivantes :
- : Lecture de l’élément par la transaction
- : Écriture de l’élément par la transaction
- : Validation (Commit) de la transaction
Question 4 : Analyse d’un échéancier (Schedule)
Section titled “Question 4 : Analyse d’un échéancier (Schedule)”Énoncé :
Soit l’échéancier suivant :
(Note : représente le solde du département 1 et le nombre d’employés).
- Cet échéancier est-il sérialisable (ou conflictuellement sérialisable) ? Justifier à l’aide du graphe de préséance (graphe de conflit).
- Quelles anomalies de concurrence classiques peuvent se produire dans un tel scénario si aucun mécanisme de verrouillage n’est actif ?
Correction guidée :
-
Graphe de préséance :
On cherche les conflits entre opérations de transactions différentes sur un même objet :- Conflit sur entre et :
- précède
- précède
- précède
Le graphe contient un cycle : .
Par conséquent, l’échéancier n’est pas conflictuellement sérialisable. - Conflit sur entre et :
-
Anomalies potentielles :
- Écriture aveugle / Écrasement prématuré (Lost Update) : lit avant que ne modifie , puis réécrit en écrasant la mise à jour de .
- Lecture non répétable (Non-repeatable read) : lit , puis modifie et valide , si relit il obtiendra une valeur différente.
Question 5 : Propriétés ACID et Niveaux d’isolation
Section titled “Question 5 : Propriétés ACID et Niveaux d’isolation”Énoncé :
- Définir brièvement la propriété d’Isolation dans le sigle ACID.
- Expliquer comment le verrouillage en deux phases strict (Strict 2PL) permet de garantir la sérialisabilité.
Correction guidée :
- Isolation : L’exécution simultanée de plusieurs transactions doit aboutir au même résultat que si elles avaient été exécutées séquentiellement (l’une après l’autre). Les modifications intermédiaires d’une transaction ne doivent pas être visibles par les autres tant qu’elle n’est pas validée.
- Strict 2PL (Two-Phase Locking) :
- Règle 1 : Une transaction doit acquérir un verrou en lecture (partagé) avant de lire, et un verrou en écriture (exclusif) avant d’écrire.
- Règle 2 (Stricte) : Tous les verrous en écriture (et généralement tous les verrous) détenus par une transaction sont libérés uniquement à la fin de la transaction (au moment du
Commitou duAbort).
Cela empêche les autres transactions de lire des données non validées (évitant les lectures sales) et élimine les cycles dans les graphes de préséance, garantissant ainsi la sérialisabilité.
Analyse Critique des Résultats
Section titled “Analyse Critique des Résultats”-
Sur la Normalisation :
La décomposition en FNBC élimine toute redondance liée aux dépendances fonctionnelles. Cependant, elle peut induire un coût en performance lors des requêtes car l’obtention des informations initiales nécessite de nombreuses jointures entre les tables et . Dans les systèmes décisionnels (OLAP), on accepte parfois de violer la FNBC (dénormalisation) pour accélérer les lectures. -
Sur les Transactions :
Le respect strict des propriétés ACID, via des mécanismes comme le Strict 2PL, garantit une correction absolue des données mais réduit le degré de concurrence (phénomène de blocage ou lock contention). Les SGBD modernes gèrent donc des niveaux d’isolation configurables (ex: Read Committed, Snapshot Isolation) pour trouver un compromis optimal entre performance et cohérence.