146 conception dune bd int. 147 plan du document introductionslide 148 modèle...
TRANSCRIPT
1
Conception d’une BD
INT
2
Plan du document
Introduction slide 148 Modèle Entité/Association slide 153 Modèle données UML slide 158 Traduction E/A relationnel slide 160 Rétro-conception slide 172
3
Conception indépendante d’un modèle de données
Réalité
Schéma conceptuel
Schémarelationnel
Schémaréseau
Fichiers….
transformation
Introduction
4
Conception relationnelle
Relation universelle
Dépendances fonctionnelles
décomposition
SchémaRelationnelnormalisé
Introduction
5
Conception centraliséeSchéma
conceptuel global
Schémalocal
Schémalocal
….Schéma
local
ProgrammeUtilisateur …
Introduction
6
Conception décentralisée (à partir d’un existant)
intégration
Schémaglobal
Schéma local Schéma local Schéma local
Hétérogène/homogène
Introduction
7
Conception d’une BDIntroduction
Réalité
Recueil des besoins et analyse
Besoin de la BD
Conception logique
Schéma conceptuel (haut niveau)
Transformation du modèle
Schéma conceptuel (spécifique SGBD)
Conception physique
Schéma physique (spécifique SGBD)
Indépendant du SGB
DSpécifique à un SG
BD
8
Modèle Entité/Association
Proposé en 1976 (Chen) Nombreuses extensions depuis Avantages :
Utilisé dans la plupart des méthodes de conception (MCD Merise, …)
SimpleGraphiqueFacilite le dialogue avec les utilisateurs
Modèle E/A
9
Concepts Modèle E/A
Graphisme 1 Graphisme 2
Type d'entité
Attribut
Attribut composite
Attribut multivalué
Clé d’un type d’entité
Type d’association
Rôle
Contraintes de cardinalité
Nom Type Entité T
A
A
AssAss
RôleRôle
0,n1,n
10
Concepts (2) Modèle E/A
Graphisme 1 Graphisme 2
Type d’entité faible
Type d’association identifiante
Attribut calculé
Ass (1,1)
11
Modèle E/A EntrepriseModèle E/A
Employé
nomadresseNoSS
nomf prenom
Personne-à-charge Projet
Département
Nb_heures
No_dept libelle
Numéro Descriptionprénom
localisations
Avoir à charge
diriger
Travailler pour
Travailler surgérer
date
0,n 1,n
0,10,n
1,1
1,1
1,11,n
1,1
0,n
Nb_emp
superviser
Supervise0,n
Est supervisé1,1
DateNaissanceParente
12
Modèle E/A EntrepriseGraphisme 2
Modèle E/A
1,n
1,n
1,1
Est supervisé
0,nsupervise
(1,1)
0,n
1,1
1,n
1,10,1
1,n1,1Employe
NoSSAdresseNomfPrenom
Département
No_deptlibelleNb_Emp
Projet
NuméroDescription
PersonneACharge
prénomDateNaissanceParenté
TravaillerPour
Diriger
Date
GérerAvoir a charge
Superviser
TravaillerSur
Nb_heures
localisations
13
UML EntrepriseUML
14
Entité-Association / Diagramme de classe UML
Entité-Association Diagramme de Classe
SI – BD Génie logiciel – langages
Entité Classe
Entité faible Composition ? Clé ?
Association sans attribut Association / Composition
Association avec attribut Association + Classe d’association
(Héritage) - Association Héritage
Attribut / Propriété Attribut
Clé
Attribut calculé Méthode
(Attributs multivalués) – Entité + Association Attributs multivalués
Méthode
Cardinalité Multiplicité
UML
15
Traduction EA relationnel
La sémantique n’est pas complètement préservée (il faut ajouter des contraintes d’intégrité)
Règles sont automatisables (de nombreux outils existent sur le marché, AMCDesignor par exemple)
Transformation se fait en 7 étapes Comparaison des concepts des deux modèles : à
faire par l’étudiant
Traduction
16
Étape 1 : transformation des entités non faibles
Type d'entité relation Attribut atomique constituant (attribut) Attributs composites n constituants Attribut(s) clé(s) clé candidate
Traduction
ECA
E(C, A)
17
Exemples d’étape 1 Traduction
Employé Attributs atomiques Employé(noss, adresse)
Attributs composites Employé(noss, adresse, nomf, prénom)
Aplatissement de la structure (suite d’attributs atomiques) perte de la sémantique
Département Attributs atomiques Département(no_dept, libelle)
Attributs multivalués Étape 6 : local
Attributs calculés Étape 7 : nb_emp
Projet Attributs atomiques Projet(numéro, description)
18
Étape 2 : transformation des entités faibles Type d'entité faible relation Attribut atomique constituant (attribut) Attributs composites n constituants Attribut(s) clé(s) partie de clé candidate Attributs clés de l’entité identifiante partie
de clé
Traduction
ECA
E2C2A2
(1,1)E2(C, C2, A2)
19
Exemple d’étape 2Traduction
Entité PersonneACharge
Attributs atomiques PersonneACharge(prénom, DateNaissance, parenté)
+
Clé de l’entité identifiante
PersonneACharge(prénom, DateNaissance, parenté, noss)
Noss :
clé étrangère sur Employé
+
Partie de la clé de PersonneACharge
20
Étape 3 : transformation des associations binaires monovaluées Clé associée à E1 attribut de E2 Attributs de Ass attributs de E2
Traduction
E1C1A1
E2C2A2
?,1E2(C2, A2, C1, A3)
?,? AssA3
Clé étrangère, pas clé dans E2
21
Exemples d’étape 3Traduction
TravaillePour Employé(noss, adresse, nomf, prénom, no_dept)
Dirige Département(no_dept, libelle, nosschef, dateDebut)
Dirige monovaluée dans les 2 sens on aurait pu créer
Employé(noss, adresse, nomf, prénom, nodept, nodeptDirigé, dateDebut)
Cardinalités (0,1), association partielle valeurs nulles
Controle Projet(numéro, description, numdept)
Supervision Employé(noss, adresse, nomf, prénom, nodept, noSSSuperviseur)
noSSSuperrviseur clé étrangère de Employé sur elle-même
AvoirACharge Cf. étape 2
22
Étape 4 : transformation des associations binaires multivaluées dans les 2 sens
Création d'une nouvelle relation Ass Clé de E1 + Clé de E2 clé de Ass Attributs de Ass Attributs de Ass
Traduction
E1C1A1
E2C2A2
?,nAss(C1, C2, A3)
?,n AssA3
TravailleDans TravailleDans(noss, numeroProjet, nb_heures)
23
Étape 5 : Transformation des associations n-aires (n > 2) Idem étape 4 :
Création d'une nouvelle relation AssClé de E1 + Clé de E2 + … clé de En clé de AssAttributs de Ass Attributs de Ass
Traduction
E1C1A1
E2C2A2
Ass(C1, C2, C3, A4)AssA4
E3C3A3
24
Étape 6 : transformation des attributs multivalués Création d'une nouvelle relation R Attribut multivalué -> constituant Clé du type d'entité associé -> constituant Clé de la relation : tout le schéma
Traduction
DépartementA C R(A, C)
Localisations dans Département LocalisationDept(localisation, num_dept)
25
Étape 7 : transformation des attributs calculés Attribut calculé Requête associée
Traduction
Nb_emp dans Département
Département(no_dept, libelle, nosschef, dateDebut)
SELECT no_dept, COUNT(*)
FROM Employe
GROUP BY no_dept
Couples no département – effectif du département
Associée à une vue relationnelle
26
Récapitulatif de l’exemple
Employé(noss, adresse, nomf, prénom, nodept, noSSSuperviseur)
Département(no_dept, libelle, nosschef, dateDebut, Nb_emp)
Projet(numero, description, numdept)
PersonneACharge(prénom, noss, DateNaissance, parenté)
TravailleDans(noss, numeroProjet, nb_heures)
LocalisationDept(localisation, num_dept)
SELECT no_dept, COUNT(*)
FROM Employe
GROUP BY no_dept
Traduction
27
Rétro-conception
But : Passer d’un schéma relationnel à un schéma Entité-
Association équivalent Pourquoi ?
Analyse n’a pas été faite ou a été perdue Comment ?
Appliquer les étapes de transformation « à l’envers » Remarque
Ne fournit pas une solution unique (perte d’information sur le schéma relationnel par rapport au schéma E/A)
Rétro-conception
28
Rétro-conception de la BD des vinsRétro-conception
0,n
1,1
(1,1)0,n
1,1
0,n
0,n
0,n
Vins
numcrudegréannee
Producteurs
numnomprenomregion
recoltes
Livraisons
No_ordreqteLivréedate
concerne
Buveurs
numnomprenomville
Commandes
ncdeqtédate
Passer
Donner_lieu
quantite
?
?
1 ?
1 ?
1 ?
1 ?