Exercices Corrigés Dépendances fonctionnelles(Forme Normale) – Partie 7
La meilleure façon d’apprendre quelque chose est de pratiquer des exercices. Nous avons préparer ces exercices corrigés pour les personnes (débutantes ou intermédiaires) qui sont familières avec les dépendances fonctionnelles et normalisation des bases de données. Nous espérons que ces exercices vous aideront à améliorer vos compétences sur les Dépendances fonctionnelles et Normalisation. Les exercices corrigés suivantes sont actuellement disponibles, nous travaillons dur pour ajouter plus d’exercices. Bon apprentissage!
Vous pouvez lire notre tutoriel sur les dépendances fonctionnelles et normalisation des bases de données avant de résoudre les exercices suivants.
1. Considérons la relation suivante, qui représente des informations sur les produits d’une entreprise de menuiserie et leurs composants. Les informations suivantes sont fournies :
- le type de composant d’un produit (attribut Type),
- la quantité de composants nécessaires pour un certain produit (attribut Quantité),
- le prix unitaire du composant d’un certain produit (attribut PrixDeC),
- le fournisseur du composant (attribut Fournisseur) et
- le prix total du produit unique (attribut PrixT).
Identifiez les dépendances fonctionnelles et la (les) clé(s) de la relation.
2. En ce qui concerne la relation précédente, considérons les opérations de mise à jour suivantes:
- Insertion d’un nouveau produit
- Suppression d’un produit
- Ajout d’un composant dans un produit
- Modification du prix d’un produit.
Discutez les types d’anomalies qui peuvent être causées par ces opérations.
3. Considérez à nouveau la relation précédente. Décrivez les redondances présentes et identifiez une décomposition de la relation qui supprime ces redondances. Montrez le schéma obtenu. Vérifiez ensuite qu’il est possible de reconstruire la table originale pour ce schéma.
4. Considérons une relation R(A,B,C,D,E) avec les dépendances fonctionnelles suivantes :
AB → C BC → D CD → E DE → A
4.1) Spécifiez toutes les clés minimales pour R.
4.2) Parmi les dépendances fonctionnelles données, lesquelles sont des violations de la forme normale BCNF ?
4.3) Donnez une décomposition de R en BCNF basée sur les dépendances fonctionnelles données.
4.4) Donnez une décomposition différente de R en BCNF basée sur les dépendances fonctionnelles données.
5. Considérons le diagramme ER suivant qui modélise la base de données des patients d’un hôpital local.
Dans ce diagramme, num_santé, nom_p, maladies et service sont le numéro de santé personnel du patient, son nom, la maladie déclarée et le service hospitalier dans lequel il a été admis, tandis que nom_m et spécialisation sont le nom et la spécialisation du médecin. Les tests médicaux ont un nom et un type de test requis pour le test, et sont autorisés par un médecin. Enfin, si un patient a subi un tel test, la date et les résultats du test sont enregistrés.
Supposons que nous ayons également découvert les dépendances fonctionnelles suivantes :
- DF1 : num_santé → nom_p, adresse, maladies
- DF2 : nom_p, adresse → num_santé
- DF3 : maladies → service
- DF4 : nom_test → type_test
5.1) Supposons que nous définissions la table suivante:
Patient(num_santé, nom_p, adresse, maladies, service)
Listez toutes les clés candidates pour cette table.
5.2) Convertissez le diagramme ER en tables. Dans chaque table, soulignez la clé primaire. Si une table a plusieurs clés candidates, choisissez la plus courte comme clé primaire.
5.3) Montrez les tables BCNF que nous obtenons en appliquant les techniques de normalisation aux tables de la question 5.2). Soulignez les clés primaires des nouvelles tables.
6. Considérons le schéma relationnel suivant :
Faculté(id_étudiant, nom_étudiant, cours, id_prof, bureau_prof)
Chaque tuple de la relation Faculté indique que l’étudiant dont l’identifiant et le nom sont donnés a suivi le cours donné par le professeur dont l’identifiant et le bureau sont donnés. Supposons que les étudiants aient des identifiants uniques, mais pas nécessairement des noms uniques, et que les professeurs aient des identifiants uniques, mais pas nécessairement des bureaux uniques. Chaque étudiant a un nom, chaque professeur a un bureau.
6.1) Spécifiez un ensemble de dépendances fonctionnelles complètement non triviales pour la relation Faculté qui traduit les hypothèses décrites ci-dessus.
6.2) En vous basant sur les dépendances fonctionnelles de la question 6.1), spécifiez toutes les clés minimales de la relation Faculté.
6.3) La relation Faculté est-il en forme normale BCNF d’après vos réponses aux questions 6.1) et 6.2) ? Si ce n’est pas le cas, donnez une décomposition de la relation Faculté en BCNF.
6.4) Ajoutez maintenant les deux hypothèses suivantes :
- (1) Aucun étudiant ne suit deux cours différents du même professeur
- (2) Aucun cours n’est enseigné par plus d’un professeur (mais un professeur peut enseigner plus d’un cours).
Spécifiez des dépendances fonctionnelles supplémentaires pour prendre en compte ces nouvelles hypothèses.
6.5) Sur la base de vos dépendances fonctionnelles pour les questions 6.1) et 6.2), spécifiez toutes les clés minimales pour la relation Faculté.
6.6) La relation Faculté est-il en BCNF selon vos réponses aux questions 6.4) et 6.5) ? Si ce n’est pas le cas, donnez une décomposition de la relation Faculté en BCNF.