Correspondance modèle E/A vers modèle relationnel

Transcription

Correspondance modèle E/A vers modèle relationnel
Traduction
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
transformation des entitésTraduction
non faibles
Type d'
entité
relation
Attribut atomique
constituant (attribut)
Attributs composites n constituants
Attribut(s) clé(s)
clé candidate
E
C
A
Bases de Données
E(C, A)
Traduction
Employé
Attributs atomiques
Employe(noss, adresse)
Attributs composites
Employe(noss, adresse, nomf, prenom)
Aplatissement de la structure (suite d’attributs atomiques)
Département
Projet
perte de la sémantique
Attributs atomiques
Département(no_dept, libelle)
Attributs multivalués
Etape 6 : local
Attributs calculés
Etape 7 : nb_emp
Attributs atomiques
Projet(numero, description)
Conception - 1
!
Traduction
Traduction
!"
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é
E
C
A
(1,1)
E2
C2
A2
Entité
PersonneACharge
Attributs atomiques
PersonneACharge(nom, DateNaissance,
parenté)
+
Clé de l’entité
identifiante
PersonneACharge(nom, DateNaissance,
parenté, noss)
Noss :
clé étrangère sur Employé
+
Partie de la clé de PersonneACharge
E2(C, C2, A2)
#
!
Traduction
"
Clé associée à E1
attribut de E2
Attributs de Ass
attributs de E2
E1
C1
A1
?,?
Ass
A3
?,1
E2
C2
A2
TravaillePour
Employe(noss, adresse, nomf, prenom, no_dept)
Dirige
Département(no_dept, libelle, nosschef, dateDebut)
Dirige monovaluée dans les 2 sens
on aurait pu créer
Employe(noss, adresse, nomf, prenom, nodept, nodeptDirigé,
dateDebut)
Cardinalités (0,1), association partielle
valeurs nulles
E2(C2, A2, C1, A3)
Clé étrangère,
pas clé dans E2
$
Bases de Données
Traduction
Controle
Projet(numero, description, numdept)
Supervision
Employe(noss, adresse, nomf, prenom, nodept, noSSSuperviseur)
noSSSuperrviseur clé étrangère de Employé sur elle-même
AvoirACharge
Cf. étape 2
%
Conception - 2
!
!
Traduction
"
Traduction
(
Création d'
une nouvelle relation Ass
Clé de E1 + Clé de E2
clé de Ass
Attributs de Ass
Attributs de Ass
E1
C1
A1
?,n
TravailleDans
Ass
A3
?,n
E2
C2
A2
)* +
Idem étape 4 :
Création d'
une nouvelle relation Ass
Clé de E1 + Clé de E2 + … clé de En
Ass
Attributs de Ass
Attributs de Ass
Ass(C1, C2, A3)
E1
C1
A1
TravailleDans(noss, numeroProjet, nb_heures)
E2
C2
A2
Ass
A4
clé de
Ass(C1, C2, C3, A4)
E3
C3
A3
&
#
!
" Traduction
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
A
Département
C
R(A, C)
'
$
!
" Traduction
Attribut calculé
Requête associée
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
Localisations dans Département
Bases de Données
LocalisationDept(localisation, num_dept)
Conception - 3
,
!
Traduction
Employe(noss, adresse, nomf, prenom, nodept, noSSSuperviseur)
Département(no_dept, libelle, nosschef, dateDebut, Nb_emp)
Projet(numero, description, numdept)
PersonneACharge(nom, noss, DateNaissance, parenté)
TravailleDans(noss, numeroProjet, nb_heures)
LocalisationDept(localisation, num_dept)
CREATE VIEW EFFECTIFS(no-dept, nb_emp) AS
SELECT no_dept, COUNT(*)
FROM Employe
GROUP BY no_dept
-
(
Relation ne possédant pas de clé étrangère :
ensemble d'
entité
Relation possédant une clé étrangère à
l'
extérieur de sa clé : ensemble d'
entité plus
association monovaluée vers l'
ensemble
d'
entité correspondant à la clé étrangère
,
(
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)
-
)+
Relation dont la clé est intégralement
composée de clés étrangères : association
multivaluée entre les ensembles d'
entités
correspondant aux clés étrangères
Relation dont la clé comprend une clé
étrangère et une clé "locale" : ensemble
d'
entité faible par rapport à l'
ensemble
d'
entité correspondant à la clé étrangère
#
Bases de Données
Conception - 4
./
01
Exemples
,
(
01
Vins
Vins(num, cru, annee, degre)
Recoltes(nvin, nprod, quantite)
Producteurs(num, nom, prenom, region)
Buveurs(num, nom, prenom, ville)
Commandes(ncde, date, nb, nvin, qte)
Livraisons(ncde, no_ordre, qteLivree)
1?
num
cru
degré
annee
Buveurs
num
nom
prenom
ville
?
0,n
0,n
recoltes
Rétro-conception
0,n
concerne
?
Passer
quantite
1?
0,n
Producteurs
num
nom
prenom
region
1,1
1,1
Commandes
ncde
qté
date
1?
0,n
Donner_lieu
Livraisons
(1,1)
No_ordre
qteLivrée
date
1?
$
Bases de Données
%
Conception - 5