Séance 1 : Conception - rappels
1. De la mauvaise conception
Risques
Soit la relation R suivante :
- A partir de l'observation de cette relation, lister les inconvénients produits par une mauvaise conception
- Proposer une solution valide
Analyse de redondance
Soit la relation suivante :
A partir de l'observation de cette relation, proposer en le justifiant une clé pour cette relation
- Lister les colonnes contenant des informations redondantes
- Proposer une solution valide non redondante
2. Notion de dépendance fonctionnelle
Définition Soit une relation R(P1, P2, …Pn) et A et B des sous ensembles de P1, P2, …Pn.
Il existe une dépendance fonctionnelle entre A(source) et B(cible) si et seulement si La connaissance d'une valeur de A quelconque permet de connaître le seul B associé.
Notation : A⇒B
Exemple : Soit la relation suivante :
Personne(NSS, Nom, Prénom, Immat, Marque, Modele, type, Puiss, Date, Prix) Lister les dépendances fonctionnelles la constituant.
Propriétés des DF Axiomes d'Armstrong (W)
Réflexivité AB⇒BA AB⇒B AB⇒A Augmentation si A⇒B, alors quelque soit Y, AY⇒B Transitivité si A⇒B et B⇒C alors A⇒C Exercice Soit la relation suivante R (A, B, C, D, E) :
Lister les dépendances fonctionnelles présentes dans cette relation
Propriétés déduites Union si A⇒B et A⇒C alors A⇒BC Pseudo-transitivité A⇒B et BC⇒D alors AC⇒D Décomposition A⇒BC alors A⇒C et A⇒B Notions Fermeture transitive Ensemble de toutes les DF (obtenues grace aux propriétés) Dépendance fonctionnelle élémentaire Une dépendance fonctionnelle A⇒B est élémentaire ssi B n’est pas inclus dans A il n’existe pas A’ inclus dans A tel que A’⇒B Couverture minimale sous ensemble minimum des DF élémentaires permettant de générer toutes les autres (Un ensemble de Df peut avoir plusieurs couvertures minimales). Synonyme : Famille génératrice Graphe des DFE Représentation des DF élémentaires par un réseau de Pétri : les noeuds sont les attributs et les arcs les DFE (un seul attribut en destination de chaque arc et éventuellement plusieurs en source).
Exercices Soit la relation R(A, B, C, D) et l'ensemble de dépendances fonctionnelles:
F = {C⇒D, AB⇒C, B⇒C}
Identifier la DF de F DF1 qui n'est pas une DF élémentaire En utilisant les axiomes d'Armstrong, montrez qu'il est possible de supprimer DF1 Proposer une couverture minimale CM des DF élémentaires Proposer une ferneture transitive FT des DFE Clés Clé Soient une relation R(A1,A2,…,An) et K un sous-ensemble de A1,A2,… ,An.
K est une clé de R si et seulement si : K⇒A1,A2,…,An il n'existe pas K’ inclus dans K tel que K’⇒A1,A2,…,An Clés candidates & clé primaire Une relation peut comporter plusieurs clés (elles sont qualifiées de clés candidates). L'une d'entre elles sera choisie pour être clé primaire.
Ne pas confondre plusieurs clés avec la notion de clé composite (cad constituée de plusieurs attributs)
3. Des DF au MCD Régles de passage des dépendances fonctionnelles au modèle conceptuel de données (le MCD étant soit un MEA soit un diagramme de classes UML).
A ⇒ B Nelle entité dont A est l'id et B une propriété C ⇒ A CIF entre A(fils) et C(père) C,D ⇒ E CIM entre C et D, porteuse de la donnée E Exercice synthèse Soit les règles de gestion suivantes, relatives au système de gestion d'une entreprise :
Les employees travaillent dans un Office. Un employee a eventuellement un referent (employee lui aussi), il peut prendre en charge des Customers. Chaque Customer est éventuellement pris en charge par un Employee. Il peut passer des Orders, et effectuer des Payments. Un Order correspond à la commande d’un ou de plusieurs Products, en une certaine quantity, et à un certain price. Chaque office est décrit par OfficeCode, City, phone, addressLine1, addressLine2, state, country, postalCode, territory. Chaque employee par EmployeeNumbern lastName, firstName, extension, email, jobTitle. Chaque Customer par CustomerNumber, customerName, customerLastname, customerFirstname, phone, addressLine1, addressLine2, city, state, postalCode, country, creditLimit. Chaque Order par OrderNumber, orderDate, requiredDate, shippedDate, status, comments. Chaque product par ProductCode, productName, productScale, productVendor, productDescription, quantityInStock, buyPrice, MSRP Chaque Payment par checkNumber, paymentDate, amount. Analyser les DF et représenter le graphe des dépendances Elaborer le MCD (version Merise MEA) Elaborer le MLD correspondant