Beruflich Dokumente
Kultur Dokumente
Annexe E
Transformations de schmas
(Version provisoire)
E.1 INTRODUCTION
La drivation d'un schma partir d'un autre peut tre ralise au moyen d'oprateurs dnomms transformations de schma. Typiquement, un tel oprateur
remplace une construction d'un schma par une autre. Par exemple, un attribut peut
tre transform en un type d'entits, une srie d'attributs en un attribut compos, ou
encore un type dassociations en un cl trangre.
C'est ainsi que nous avons prpar un schma conceptuel lenrichissement
incrmental (analyse conceptuelle), que nous avons normalis un schma conceptuel ou relationnel, mis en conformit deux schmas avant leur intgration, produit
un schma relationnel partir d'un schma conceptuel (conception logique) et
reconstruit un schma conceptuel d'une base de donnes existante (rtro-ingnierie).
Dans cette annexe, on analyse sommairement les caractristiques gnrales des
transformations de schmas. On prsente une classe de transformations remarquables, les oprateurs de mutation, puis on rpertorie, sans chercher l'exhaustivit, les
principales transformations utiles, classes selon la nature de l'objet transform :
attribut, type d'entits, relation is-a, type d'associations, contraintes. A loccasion,
mais uniquement titre dillustration, nous suggrons des usages appropris pour
lune ou lautre transformation.
La figure E.1 reprend une transformation que nous avons rencontre de multiples
reprises : la transformation dun attribut dun type dentits en type dentits.
Lattribut NumFournisseur de PRODUIT (C) du schma de gauche est remplac par
une construction complexe (C) dans le schma de droite : type dentits FOURNISSEUR, attribut NumFournisseur, identifiant {NumFournisseur}, type dassociations
de et ses deux rles. Compar au schma source, le schma cible :
a perdu lattribut NumFournisseur de PRODUIT,
a gagn le type dentits FOURNISSEUR, son attribut NumFournisseur et son
identifiant {NumFournisseur}, le type dassociations de et ses deux rles,
a conserv le type dentits PRODUIT.
FOURNISSEUR
NumFournisseur
id: NumFournisseur
PRODUIT
NumPro
Description
NumFournisseur
id: NumPro
1-N
de
1-1
S1
S2
C-
PRODUIT
NumPro
Description
id: NumPro
C+
C0
E.2
Il est important de mentionner le type dentits PRODUIT bien quil reste inchang
durant la transformation. Il y joue en effet un rle passif mais important : parent de
NumFournisseur dans le schma source et rle de.PRODUIT dans le schma cible.
Les autres composants du schma source (attributs NumPro et Description, identifiant
{NumPro}) ont galement t conservs mais, comme ils ne jouent aucun rle dans
la transformation (ils appartiennent S1 mais pas C), nous pouvons les ignorer.
Si nous dsignons par C- les composants de C absents de C, C+ les composants de C
absents de C et C0 les composants communs C et C, nous pouvons crire :
C = C0 CC = C0 C+
Attention, le fait quune transformation ait une inverse ne signifie pas quelle
prserve linformation de la construction C. Pour comprendre cette proprit de
prservation, il faut tudier la manire dont les instances de C et C sont traites lors
de la transformation T.
Considrons une transformation t, associe T, qui, applique toute instance c
de C, produit une instance c de C (figure E.2). Intuitivement, T explique comment
restructurer le schma tandis que t prcise la manire de convertir des donnes de C
pour les rendre conformes C. T est la transformation de schma et t la transformation dinstance1. On a donc :
C = T(C)
c = t(c)
Pour rsumer, une transformation est dfinie par le couple <T,t>, quon peut
rcrire <P, Q, t>. Dans certaines classes de transformations, il est possible dassocier t une transformation inverse t, qui opre la conversion inverse de t.
C
inst_de
C' = T(C)
inst_de
c' = t(c)
E.4
Catalogue de Transformations
Cette annexe a principalement pour but de rpertorier les transformations les plus
communes dans les diffrents processus tudis dans cet ouvrage. Un tel rpertoire
peut tre organis de plusieurs manires : selon leur degr dutilit dcroissant, selon
les objectifs atteindre ou selon de type dobjets auquel elles sappliquent. Nous
adopterons la troisime approche, qui apparat comme la plus gnrale. Cependant,
avant la prsentation systmatique des transformations, nous dcrirons une classe
trs importante doprateurs: les transformations de mutation.
Nous prsenterons les transformations sous forme de schmas gnriques dont
les objets reoivent des noms abstraits. Le schma de gauche reprsente graphiquement le prdicat P et celui de droite la prdicat Q. La plupart des transformations
peuvent se lire dans les deux sens. On attribue aux objets intervenant dans les constructions C et C des noms gnriques : lettres majuscules (A, B, C, EA2, ... pour les
types dentits, lettres minuscules r, s, t, ... pour les types dassociations et lettres
majuscules indices A1, A21, B1, ... pour les attributs. Un mme nom attribu des
objets de mme genre (type dentits, type dassociations, attribut) dans les deux
schmas dune transformation indique que ces objets sont les mmes (ils appartiennent la fraction C0 des constructions). En ce qui concerne les cardinalits des
attributs et des rles, les valeurs valides sont interprter telles quelles (sauf
mention contraire, [1-N] signifie exactement [1-N]) tandis que les valeurs symboliques [a-b] ou [c-d] peuvent tre remplaces par nimporte quelles valeurs valides.
Une transformation spcifique est obtenue par substition de noms rels ces
noms gnriques et de valeurs relles ces valeurs symboliques.
La spcification complte dune transformation peut tre trs complexe. Par
exemple, lors de la transformation dun attribut en type dentits (figure E.1) il
faudrait indiquer avec prcision ce quil advient de cet attribut :
lorsquil est facultatif
lorsquil est multivalu selon [0-N] ou [1-N]
3. Dailleurs, les deux transformations sont lies : = <Q,P,t>.
E.4
Catalogue de Transformations
a) Transformation en TE
b) Transformation par dsagrgation
c) Transformation par concatnation
E.6.4 Transformation d'un attribut multivalu compos (complexe)
a) Transformation en TE
b) Transformation par dsagrgation
E.6.5 Transformation d'un attribut monovalu facultatif
a) Transformation en TE
b) Transformation par extension du domaine
E.6.6 Transformation d'un groupe d'attributs
E.8.4 Fusion de TE
a) Fusion de dnormalisation
b) Fusion bijective
c) Union de TE
E.8.5 Factorisation de composants de TE
E.8.6 Assignation d'un identifiant technique un TE
E.5
Transformations de mutation
Type d'entits
Att-en-TE
Type d'associations
Att-en-TA
TE-en-Att
TA-en-Att
Attribut
On dfinit ainsi trois couples de transformations inverses (figure E.4). Toutes ces
transformations sont rversibles. Il existe plusieurs manires de changer le genre
dun objet mais celles que nous prsentons ci-aprs sont les plus courantes. Nous
reviendrons plus en dtail sur certaines dentre elles dans la suite de lexpos.
La troisime transformation est appele transformation dun attribut en type
dentits par reprsentation des valeurs. En effet, chaque entit EA2 reprsente une
valeur distincte de lattribut source A2. A ces trois couples de transformations nous
en ajouterons un quatrime (figure E.5), qui drive des prcdents, mais que nous
avons dj dcrit et compar, notamment au chapitre 12 (section 12.5.6). Cette
transformation sobtient en deux tapes partir du schma infrieur droit de la
figure E.4 :
1. le type dassociations r est transform en type dentits RA2,
10
a-b
a-b
c-d
c-d
R
1-1
A
A1
id: A1
0-N
1-1
id: s.A
t.B
A
A1
id: A1
B
A1'[a-b]
ref: A1'[*]
a-b
A1
A2[a-b]
A3
EA2
A2'
id: A2'
A
A1
A3
r
a-b
1-N
A
A1
A2[a-b]
A3
RA2
A2'
id: s.A
A2'
A
A1
A3
a-b
1-1
E.6
11
On envisage trois configurations frquentes (figure E.6) : lattribut A2 est obligatoire, A2 est facultatif et A2 constitue un identifiant de A. Cette transformation nest
applicable qu un attribut de niveau 1.
EA2
A2'
id: A2'
A
A
A1
A2
A3
A1
A3
1-1
EA2
A2'
id: A2'
A
A
A1
A2[0-1]
A3
A1
A3
0-1
A1
A2
A3
id': A2
A2'
id: A2'
A1
A3
1-1
1-N
EA2
1-N
1-1
Figure E.6 - Transformation dun attribut monovalu en type dassociations par reprsentation des valeurs
12
Ici encore, on envisage trois configurations frquentes (figure E.7) : lattribut A2 est
obligatoire, A2 est facultatif et A2 constitue un identifiant de A. Cette transformation
nest applicable qu un attribut de niveau 1.
A
A
A1
A2
A3
RA2
A2'
A1
A3
1-1
A
A
A1
A2[0-1]
A3
A
A1
A2
A3
id': A2
RA2
A2'
A1
A3
0-1
1-1
RA2
A2'
id: A2'
A1
A3
1-1
1-1
1-1
Cette transformation est linverse de celle dun attribut compos par concatnation
(section E.6.3-d). Elle consiste imposer lattribut une dcomposition en sousattributs de tailles et types ventuellement diffrents. On lutilisera presquexclusivement en rtro-ingnierie.
d) Dcomposition en attribut multivalu
Cette transformation est linverse de celle dun attribut multivalu par concatnation (section E.6.2-d). Elle consiste imposer lattribut une dcomposition en
composants de taille et type identiques, formant ainsi un tableau de valeurs. On la
rencontrera frquemment en rtro-ingnierie. Elle servira galement au niveau
physique au traitement dattributs de grande longueur, dont les valeurs sont ainsi
trononnes en une suite de segments de taille fixe raisonnable, plus aiss manipuler4. Les types CLOB et BLOB en SQL sont souvent traits de cette manire.
4. Lattribut multivalu liste est ensuite transform en un type dentits, qui se traduit physiquement en une chane dentregistrements de taille fixe ou variable limite.
E.6
13
A
A1
A2[a-b]
A3
EA2
A2'
id: A2'
A
A1
A3
a-b
1-N
A
A1
A2[a-b]
A3
RA2
A2'
id: s.A
A2'
A
A1
A3
a-b
1-1
A
A1
A3
a-b
A2
A2'
1-1
Chaque valeur de lattribut multivalu de cardinalit [a-b] devient un attribut monovalu autonome. Un nombre a de ces attributs sont dclars obligatoires, les autres
14
tant facultatifs. Strictu senso, cette transformation cre une variante de tableau :
unicit non garantie, structure dordre sur les attributs, pas dobligation de regrouper
les attributs sans valeur en fin de liste5. La transformation nest rversible que
lorsque lattribut source A2 est un tableau6. Il est recommand dviter cette transformation dans les approches de conception classiques.
A
A1
A2[a-b]: char(10)
A3
A
A1
A2-1: char(10)
A2-..: char(10)
A2-a: char(10)
A2-..[0-1]: char(10)
A2-b[0-1]: char(10)
A3
Les valeurs de lattribut sont concatnes dans un certain ordre de manire constituer une unique valeur. La longueur de cette dernire est en principe b fois celle de
lattribut source mais dpend en fait de la manire dont les composants de la concatnation sont organiss (format fixe, sparateur, etc.) De mme que la transformation
par instanciation, et pour des raisons similaires, cette transformation cre une
variante de tableau. Il est galement recommand de lviter dans les approches de
conception classiques.
A
A1
A2[a-b]: char(10)
A3
A
A1
A2s: char(10xb+n)
A3
5. En toute gnralit, les valeurs dun tableau ne sont pas soumises une contrainte dunicit,
sont ordonnes (selon lindice de leur cellule) et noccupent pas ncessairement des cellules
contigus (existence de "trous" dans la squence des cellules).
6. Cette affirmation est presquexacte ! Le schma cible fait une hypothse suppplmentaire sur
les cellules obligatoires (qui occupent les premires celllules du tableau) que le schma source
nimpose pas.
E.6
15
a) Transformation en TE
Un attribut compos peut se traiter comme un attribut monovalu atomique. Cependant, il est intressant de procder ensuite une dsagrgation de lattribut dplac,
la forme compose nayant plus beaucoup dintrt aprs dplacement (figures E.13
et E.14). Ces transformations ne sont applicables quaux attributs de niveau 1.
A
A1
A2
A21
A22
A3
EA2
A21'
A22'
id: A21'
A22'
A
A1
A3
1-1
1-N
A
A1
A2
A21
A22
A3
A
A1
A3
1-1
A2
A21'
A22'
s
1-1
A
A1
A2_A21
A2_A22
A3
Lorsque lattribut source est obligatoire, les nouveaux attributs conservent leur
cardinalit dorigine (figure E.16).
Lorsque lattribut source est facultatif et que ses composants sont tous obligatoires, les nouveaux attributs sont facultatifs et sont soumis une contrainte de
coexistence (figure E.17).
16
A
A1
A2
A21
A22[0-1]
A3
A
A1
A2_A21
A2_A22[0-1]
A3
A
A1
A2[0-1]
A21
A22
A3
A
A1
A2_A21[0-1]
A2_A22[0-1]
A3
coex: A2_A21
A2_A22
Lorsque lattribut source est facultatif et que certains de ses composants sont obligatoires alors que les autres sont facultatifs, la situation est plus complexe. Les
nouveaux attributs sont facultatifs. Ceux qui taient obligatoires sont soumis une
contrainte de coexistence. Chacun de ceux qui taient facultatifs est soumis une
contrainte dimplication dont le deuxime membre est un des composants anciennement obligatoires (figure E.18). Dans un tel cas, il sera sans doute prfrable de
transformer lattribut compos en type dentits.
A
A1
A2[0-1]
A21
A22
A23[0-1]
A3
A
A1
A2_A21[0-1]
A2_A22[0-1]
A2_A23[0-1]
A3
coex: A2_A22
A2_A23
if: A2_A23
A2_A21
Le cas dun attribut compos facultatif dont tous les composants sont facultatifs ne
peut pas tre transform par dsagrgation (figure E.19).
A
A1
A2[0-1]
A21[0-1]
A22[0-1]
A3
Figure E.19 - Un attribut compos facultatif dont tous les composants sont facultatifs
ne peut tre dcompos
E.6
17
A
A1
A2_1_2
A3
Lattribut est transform en un type dentits, soit par reprsentation des valeurs, soit
par reprsentation des instances. Dans le nouveau type dentits ainsi produit,
lattribut sera gnralement dcompos (figures E.21 et E.22). Cette transformation
nest applicable qu un attribut de niveau 1.
A
A1
A2[a-b]
A21
A22
A3
EA2
A21'
A22'
id: A21'
A22'
A1
A3
a-b
1-N
RA2
A21'
A22'
id: s.A
A21'
A22'
A
A1
A2[a-b]
A21
A22
A3
A
A1
A3
a-b
1-1
18
Il est possible de dsagrger un attribut complexe pour autant quil soit du type liste
ou tableau. Les composants de lattribut source deviennent multivalus et se substituent ce dernier (figure E.23). Les lments de mme rang des attributs cibles
permettent la reconstitution de llment de ce rang de lattribut source.
A
A1
A2[a-b] array
A21
A22
A3
A
A1
A2_A21'[a-b] array
A2_A22'[a-b] array
A3
A
A1
A2[0-1]
A3
A1
A3
r
0-1
1-N
Cette technique consiste rendre lattribut obligatoire mais tendre son domaine
de valeurs une valeur conventionnelle indiquant labsence de valeur ( dans la
figure E.25).
A
A1
A2[0-1]
A3
A
A1
A2'
A3
dom(A2) = dom(A2) {}
E.6
19
A
A1
A2
A21
A22
A23
A3
A
A1
A21
A2...
A2a
A2...[0-1]
A2b[0-1]
A3
A1
A2[a-b] array
A3
A
A1
A2[a-b]
IdA2
Valeur
A3
id(A2):
IdA2
20
noms A21, ..., A2b du schma source. Dans lexemple qui vient dtre cit, IdA2
pourrait sappeler Mois et son domaine serait {Janvier, Fevrier, ..., Decembre}.
A
A1
A2
id: A1
B
B1
B2
1-1
0-N
A
A1
A2
id: A1
Des contraintes additionnelles sont imposes (dans la prcondition P). En particulier, aucun composant de la cl trangre source ne peut apparatre dans une autre
contrainte, lexception du cas suivant : la cl trangre est un identifiant ou une
partie dun identifiant. A titre dexemple, aucune des deux cls trangres {A1, A2} et
{A2, A3} dun mme type dentits ne peut tre transforme selon ces techniques
(figure E.29).
B
B1
B2
B3
id: B1
B2
A
A1
A2
A3
ref: A1
A2
ref: A2
A3
C
C1
C2
C3
id: C1
C2
E.6
A
A1
A2: *B
B
B1
B2
A
A1
21
1-1
A2
0-N
B
B1
B2
A
A1
A2[a-b] bag
A3
A
A1
A2'[a-b]
Multiplicity
Value
A3
id(A2'):
Value
Une liste (list) est une collection ordonne de valeurs non ncessairement distinctes.
On les reprsente pas un attribut ensembliste complexe dont les valeurs (Value) sont
identifies par un numro de squence (Sequence) (figure E.32).
A
A1
A2[a-b] list
A3
A
A1
A2'[a-b]
Sequence
Value
A3
id(A2'):
Sequence
22
Une liste unique (unique list) est une collection ordonne de valeurs distinctes. Leur
reprsentation est similaire celle des listes simples, laquelle on ajoute lidentifiant dattribut {Value} (figure E.33).
A
A1
A2[a-b] u-list
A3
A
A1
A2'[a-b]
Sequence
Value
A3
id(A2'):
Sequence
id'(A2'):
Value
Un tableau (array) est une structure de stockage comportant un nombre fixe (ou
variable, ce que nous ignorerons ici) de cellules indices pouvant contenir chacune
une valeur. Les valeurs ne sont pas ncessairement distinctes. Certaines cellules
peuvent ne pas contenir de valeur. Leur reprsentation est celle dun attribut ensembliste complexe modlisant les cellules. Chaque cellule contient (ou non) une valeur
(Value) et est identifie par une valeur dindice (Index) (figure E.34).
A
A1
A2[0-5] array
A3
A
A1
A2'[5-5]
Index
Value[0-1]
A3
id(A2'):
Index
E.7
A
A1
A2[a-b] u-array
A3
23
A
A1
A2'[b-b]
Index
Value[0-1]
A3
id(A2'):
Index
id'(A2'):
Value
A
A1
A2: dom2
A3
A
A1
A2
Att21
Att22
A3
24
0-N
B
r
A1
A2
0-N
B
r'
A1
id: A
B
0-N
0-N
1-N
EA2
A2'
id: A2'
0-N
B
r
A1
A2
0-N
B
r'
A1
id: A
B
0-N
0-N
1-1
EA2
A2'
E.7
B
r
AC: *C
id: A
AC
0-N
25
B
r
0-N
0-N
0-N
id: A
C
0-N
r
0-N
C1
id: A
C1
ref: C1
r
0-N
0-N
id: A
C
0-N
0-N
C
C1
id: C1
C1
id: C1
26
B
c-d
1-1
1-1
ER
R1
R2
id: rA.A
rB.B
R1
rC
a-b
1-1
c-d
e-f
rB
rA
r
R1
R2
id: A
B
R1
e-f
E.8
27
Il existe une transformation plus complexe mais appartenant la mme famille. Elle
est applicable dans les conditions suivantes :
1. ER joue au moins deux rles, tous monotypes et appartenant des types dassociations fonctionnels non cycliques,
2. chacun des rles de ER appartenant ces types dassociations fonctionnels est
de cardinalit [1-1],
3. ER joue en outre un (et un seul) rle de cardinalit [1-N]7 dans un type dassociations rr,
4. lunique identifiant de ER est form des rles opposs des types dassociations
fonctionnels,
5. ER ne possde pas dattribut,
6. ER napparat dans aucune hirarchie is-a.
La transformation sexplique comme suit (figure E.42). Dans le schma source, il
existe une bijection entre ER et le produit cartsien A x B. Si on remplace dans rr
chaque entit ER par le couple de A x B qui lui correspond, on obtient le type dassociations rr.8
A
0-N
0-N
0-N
rA
rB
1-1
1-1
rr
R1
0-N
0-N
rr'
R1
0-N
ER
id: rA.A
rB.B
1-N
Il est intressant de noter quen ralit rr nest pas lquivalent de ER mais plutt de
rr dans le schma source.
1. EA2 joue un et un seul rle dans un type dassociations r binaire non cyclique,
2. ce rle est obligatoire,
7. Le cas [1-1] nest pas illgal, mais il correspond alors la transformation standard de la figure
E.41.
8. Cette transformation a t dcrite et sa rversibilit dmontre dans [Hainaut, 1996].
28
0-1
1-1
EA2
A2
A
A1
1-1
1-1
EA2
A2
A
A1
0-N
1-1
EA2
A2
A
A1
A2'[0-N] bag
A
A1
1-N
1-1
EA2
A2
A
A1
A2'[1-N] bag
A
A1
A2'[0-1]
A
A1
A2'
E.8
A
A1
0-1
1-1
EA2
A2
id: A2
A
A1
1-1
1-1
EA2
A2
id: A2
29
A
A1
A2'[0-1]
id': A2'
A
A1
A2'
id': A2'
Figure E.44 - Transformation en attribut dun TE avec identifiant non hybride - type
dassociations 1:1
A
A1
A
A1
0-N
1-N
1-1
EA2
A2
id: A2
1-1
EA2
A2
id: A2
A
A1
A2'[0-N]
id': A2'[*]
A
A1
A2'[1-N]
id': A2'[*]
Figure E.45 - Transformation en attribut dun TE avec identifiant non hybride - type
dassociations 1:N
A
A1
0-1
1-N
EA2
A2
id: A2
A
A1
A2'[0-1]
A
A1
1-1
1-N
EA2
A2
id: A2
A
A1
A2'
Figure E.46 - Transformation en attribut dun TE avec identifiant non hybride - type
dassociations N:1
A
A1
0-N
1-N
EA2
A2
id: A2
A
A1
A2'[0-N]
A
A1
1-N
1-N
EA2
A2
id: A2
A
A1
A2'[1-N]
Figure E.47 - Transformation en attribut dun TE avec identifiant non hybride - type
dassociations N:N
30
Le type dentits joue un rle de cardinalit [1-1] et le rle oppos est de cardinalit
[0-N] ou [1-N] (r est de classe fonctionnelle 1:N). EA2 se transforme en un attribut
multivalu identifiant de A (figure E.48). Ces transformations peuvent tre regroupes sous le pattern suivant : le type dentits joue un rle de cardinalit [1-1] et le
rle oppos est de cardinalit [a-b] o b > 1; lattribut cible A2 hrite de cette cardinalit.
A
A1
A
A1
0-N
1-N
1-1
EA2
A2
id: r.A
A2
1-1
EA2
A2
id: r.A
A2
A
A1
A2'[0-N]
id': A2'[*]
A
A1
A2'[1-N]
id': A2'[*]
Ces attributs sont collectivement soumis aux mmes contraintes que lattribut A2 de
EA2 des cas prcdents et jouent le mme rle. Les transformations produisent des
rsultats similaires, le nouvel attribut tant compos des attributs sources.
A
A1
0-N
1-N
EA2
A21
A22
id: A21
A22
A
A1
A2'[0-N]
A21
A22
La dcomposition dun type dentits dont les composants (attributs et rles) sont
soumis des dpendances fonctionnelles anormales (dont le dterminant nest pas
un identifiant) suit les raisonnements et les rgles de restructuration dvelopps dans
la thorie relationnelle (chapitre 3).
La figure E.50 illustre le processus de dcomposition comme lextraction des
attributs soumis une dpendance anormale (A3, A4) sous la forme dun nouveau
E.8
31
type dentits EA3 recueillant tous les composants litigieux et dont lidentifiant est
le dterminant de la dpendance incrimine. Un type dassociations N:1 connecte les
deux types dentits.
A
A1
A2
A3
A4
A3
EA3
A3'
A4'
id: A3'
1-N
A
A1
A2
A4
1-1
B
0-N
rAB
1-1
rAB.B, A3
A
A1
A2
A3
A4
A4
0-N
rAB'
EA3
A3'
1-1 A4'
id: rAB'.B
A3'
1-N
A
A1
A2
1-1
b) Partitionnement vertical
32
0-N
0-N
A
A1
A2
A3
A4
1-1
rAB
A
A1
A2
1-1
A'
A3
A4
r
1-1
rAB
1-1
A
A1
A2
A3[0-1]
A4[0-1]
coex: rAB.B
A3
A4
0-N
0-N
0-1
rAB
A
A1
A2
0-1
A'
A3
A4
r
1-1
rAB
1-1
c) Partitionnement horizontal
A'
A1
A2
A3
A4[0-1]
id: A1
A"
A1
A2
A3
A4[0-1]
id: A1
les ensembles
A'.A1,
A".A1
sont disjoints
9. On rsistera la tentation de connecter ces types dentits par un type dassociations 1:1 !
E.8
A
A1
A2
A3[0-1]
A4[0-1]
id: A1
coex: A3
A4
A
A1
A2
id: A1
33
A'
A1
A2
id: A1
A"
A3
A4
A"
A1
A2
A3
A4
id: A1
les ensembles
A'.A1,
A".A1
sont disjoints
La dnormalisation dun schma est une transformation doptimisation. Elle constitue linverse de la transformation de normalisation (E.8.3/a). On introduit de la
sorte une redondance interne conduisant diverses anomalie de mise jour des
donnes.
b) Fusion bijective
0-N
A1
A1
A2
1-1
A2
A3
A4
r
1-1
1-1
rAB
A
A1
A2
A3'
A4'
0-N
1-1
rAB'
34
c) Union de TE
Cette transformation est linverse dun partitionnement horizontal (E8.3/c). Elle est
applicable lorsque deux types dentits ont le mme schma et que leurs populations
sont disjointes.
A
A1
A2
AB1
AB2
B
B1
B2
AB1
AB2
AB
AB1
AB2
T
A
A1
A2
B
B1
B2
A
A1
A2
A4
B
A1
A2
A3
A5
C
A1
A3
A6
A
A4
AB
A2
BC
A3
T
B
A5
C
A6
E.9
35
Cet oprateur est linverse de la transformation de relations is-a par hritage descendant (E.9.2).
La construction de cette hirarchie relve dun processus appel FCA (Formal
Concept Analysis). Cette hirarchie est galement un cas particulier de treillis de
Galois. On en trouvera une application non triviale et des rfrences lannexe F.
A
Id_A
A1
A2
A3
id: Id_A
id': A1
A2
36
A
A1
A2
D
C
C1
C2
B
B1
B2
A
A1
A2
at-lst-1: ca.C
ba.B
A
A1
A2
P
C
C1
C2
B
B1
B2
C
C1
C2
B
B1
B2
C
C1
C2
B
B1
B2
A
A1
A2
A
A1
A2
A
A1
A2
excl: ca.C
ba.B
A
A1
A2
exact-1: ca.C
ba.B
0-1
0-1
0-1
0-1
0-1
0-1
0-1
0-1
ba
ca
ba
ca
ba
ca
ba
ca
1-1
1-1
1-1
1-1
1-1
1-1
1-1
1-1
B
B1
B2
C
C1
C2
B
B1
B2
C
C1
C2
B
B1
B2
C
C1
C2
B
B1
B2
C
C1
C2
E.9
37
A
A1
A2
B
A1
A2
B1
B2
A'
A1
A2
C
A1
A2
C1
C2
B
A1
A2
B1
B2
D
C
C1
C2
B
B1
B2
C
A1
A2
C1
C2
B
A1
A2
B1
B2
P
C
C1
C2
B
B1
B2
C
A1
A2
C1
C2
B
A1
A2
B1
B2
B
B1
B2
C
C1
C2
B
B1
B2
A
A1
A2
A'
A1
A2
C
C1
C2
A
A1
A2
C
A1
A2
C1
C2
38
son sous-type. Les contraintes des sous-types sont traduites en contraintes dexistence imposes aux attributs composs propres aux sous-types.
Cette transformation produit un schma cible peu naturel et peu lisible dans
lequel les surtypes paraissent hypertrophis. En revanche, contrairement aux deux
autres transformations, la traduction complte du schma cible en structures relationnelles nexigera que des techniques lgres telles que des checks.
A
A1
A2
A
A1
A2
A
A1
A2
B[0-1]
B1
B2
C[0-1]
C1
C2
B
B1
B2
D
C
C1
C2
C
C1
C2
A
A1
A2
A
A1
A2
B[0-1]
B1
B2
C[0-1]
C1
C2
at-lst-1: B
C
B
B1
B2
P
C
C1
C2
A
A1
A2
B[0-1]
B1
B2
C[0-1]
C1
C2
excl: B
C
B
B1
B2
C
C1
C2
B
B1
B2
A
A1
A2
A
A1
A2
B[0-1]
B1
B2
C[0-1]
C1
C2
exact-1: B
C
E.9
39
A
A1
B
B1
C
C1
B'
B1
BC
B1
C1
C'
C1
B
B1
C
C1
B'
B1
A
A1
A
A1
D
C
C1
BC
B1
ou
B
B1
BC
C1
C'
C1
40
ou
C = C - B
BC = BC
A
A1
B
B1
C
C1
B
B1
BC
B1
C1
C
C1
Dans les transformations qui prcdent, on na tudi que la propagation des attributs des sous-types transforms. Il faudrait de la mme manire analyser la propagation des rles et les contraintes du schma source. La section 19.7 abordent certaines
de ces questions.
E.9
41
A
A1
A
A1
D
B
B1
E
E1
C
C1
D
D1
B'
B1
B'E
E1
BC
B1
C1
B'D
D1
BCE
E1
C'
C1
BCD
D1
A
A1
B
B1
C
C1
D
D1
B'
B1
C'
C1
D'
D1
BC'
B1
C1
BD'
B1
D1
CD'
C1
D1
BCD'
B1
C1
D1
D
Figure E.68 - Distribution des entits B, C et D
42
En regroupant les entits qui appartiennent plus dun sous-type dans un type de
nom BCD, on obtient le schma de la figure E.69. cette approche est gnralisable
plus de trois sous-types mais le rsultats est de plus en plus complexe puisque
chaque surtype possde n + 1 sous-types et que le nombre total de sous-types feuilles
reste 2n - 1.
A
A1
A
A1
B
B1
C
C1
D
D1
B'
B1
C'
C1
D'
D1
BCD
P
BC'
B1
C1
BD'
B1
D1
CD'
C1
D1
BCD'
B1
C1
D1
E.9
A1
A11
43
A2
A21
A1
A11
D
B
B1
C
C1
B'
B1
D
D1
A2
A21
C
C1
D
D1
BC
B1
A1
A11
A2
A21
A1
A11
A2
A21
B'
B1
C
C1
D'
D1
B'
B1
C
C1
D'
D1
D
BC'
B1
BCD
B1
D1
CD'
D1
BC
B1
CD
D1
Lorsque lensemble des sous-types nest pas soumis une contraite de totalit, il est
possible que des entits du surtype nappartiennent aucun sous-type. On peut
demander de complter cet ensemble de manire imposer cette contrainte. On fait
ainsi apparatre un nouveau sous-type A sans composants propres (figure E.71).
Attention cependant lasymtrie des sous-types en cas de non-disjonction (schma
suprieurs) : B et C restent non disjoints mais A est disjoint de B et C. Lorsque les
sous-types sources sont disjoints, le rsultat est une partition (schmas infrieurs).
44
A
A1
A
A1
B
B1
C
C1
A'
B
B1
A
A1
A
A1
D
B
B1
C
C1
P
A'
C
C1
B
B1
C
C1
A
A1
B
B1
C
C1
A
A1
D
B'
B1
BC
B1
C1
C'
C1
P
A'
B'
B1
BC
B1
C1
C'
C1
E.9
45
des rpartitions. Nous dcrirons ces transformation pour deux rpartitions. Elles se
gnralisent sans difficult plus de deux rpartitions.
Le ddoublement du surtype (figure E.73) consiste attacher en bijection au
surtype n-1 types dentits sans proprits (ni attribut, ni rle, ni contrainte). Le
surtype ainsi que ses doublures reoivent chacun une rpartition. Les mcanismes
dhritage sont propres cette structure et doivent donc tre, partiellement du
moins, grs de manire procdurale (lhritage de A vers D et E doit tre simul).
Une variante consiste dupliquer les proprits de A dans A. Dans ce cas, les mcanismes dhritage standard sont dapplication mais cest la redondance A/A quil
faut contrler de manire procdurale.
A
A
A1
A
A1
1-1
1-1
A'
B
B1
C
C1
D
D1
E
E1
B
B1
C
C1
D
D1
E
E1
A
A
A1
T
A'
B
B1
C
C1
D
D1
E
E1
A"
B
B1
C
C1
D
D1
E
E1
46
proprits de D sont dupliques dans BD et CD. Il nexiste cependant pas de redondance au niveau des instances.
A
A1
A
A
A1
B
B1
C
C1
D
D1
E
E1
B
B1
BD
D1
C
C1
BE
E1
CD
D1
CE
E1
La transformation par croisement des rpartitions (figure E.76) remplace les rpartitions multiples par une seule rpartition dont les sous-types sont obtenus par le
produit cartsien des n ensembles de sous-types. Le nouveau sous-type BD reprsente les entits appartenant la fois aux types B et D du schma source. Cette transformation exige que chaque rpartition soit une partition (il est possible de
supprimer cette contrainte mais au prix dun grande complexit de schma rsultant). On procdera donc au pralable, si ncessaire, la transformation de chaque
ensemble de sous-types en une partition. Le schma final implique des redondances
dans les composants des sous-types : les proprits de B sont dupliques dans BD et
BE. Il nexiste cependant pas de redondance au niveau des instances. Cette transformation nest envisageable que si le fragment de schma source ne comprend quun
petit nombre de sous-types. On observera que cet oprateur nest pas primitif. Il
sobtient par application de la transformation des relations is-a par hritage descendant (section E.9.2) aux sous-types BD, BE, CD et CE de la figure E.75.
A
A
A1
A
A1
B
B1
C
C1
D
D1
E
E1
BD
B1
D1
CD
C1
D1
BE
B1
E1
CE
C1
E1
E.9
47
A
D
B
B1
A1
A11
A2
A21
D
C
C1
D
D1
B
B1
A1
A11
A2
A21
A1*A2
C
C1
D
D1
A1
A11
A2'
D
B
B1
A1*A2
A21
C
C1
D
A21
D1
A2'
A21
48
E.10
49
Un type dassociations 1:1 se transforme en une cl trangre monovalue identifiante (figure E.78). Cette cl est obligatoire ou facultative, simple ou totale.
B
0-1
B1
B2
0-1
1-1
0-1
0-1
1-1
A1
A2
id: A1
B
B1
B2
A1
A2
id: A1
B
B1
B2
B
B1
B2
A1
A2
id: A1
1-1
1-1
A1
A2
id: A1
B
B1
B2
A1[0-1]
id': A1
ref
A
A1
A2
id: A1
B
A1
B1
B2
id: A1
ref
A
A1
A2
id: A1
B
B1
B2
A1[0-1]
id': A1
equ
A
A1
A2
id: A1
B
A1
B1
B2
id: A1
equ
A
A1
A2
id: A1
50
B
0-1
B1
B2
0-N
B
1-1
B1
B2
0-N
0-1
1-N
A1
A2
id: A1
B
1-1
B1
B2
A
A1
A2
id: A1
B
B1
B2
A1
A2
id: A1
1-N
A1
A2
id: A1
B
B1
B2
A1[0-1]
ref: A1
A
A1
A2
id: A1
B
B1
B2
A1
ref: A1
A
A1
A2
id: A1
B
B1
B2
A1[0-1]
equ: A1
A
A1
A2
id: A1
B
B1
B2
A1
equ: A1
A
A1
A2
id: A1
Un type dassociations 1:N se transforme en une cl trangre multivalue identifiante (figure E.80). Cette cl est obligatoire ou facultative, simple ou totale.
Si lidentifiant de A est constitu de plusieurs attributs, les composants de la cl
trangre sont regroups sous la forme dun attribut compos. La cardinalit
maximum du rle jou par B, note N, peut tre toute valeur suprieure 1.
A
B
0-N
B1
B2
0-1
B
B1
B2
A1
A2
id: A1
1-N
0-1
A1
A2
id: A1
B
A1[0-N]
B1
B2
id': A1[*]
ref
B
A1[1-N]
B1
B2
id': A1[*]
ref
A
A1
A2
id: A1
A
A1
A2
id: A1
E.10
51
B
A
B
0-N
B1
B2
1-1
A1
A2
id: A1
A1[0-N]
B1
B2
id': A1[*]
equ
A1[1-N]
B1
B2
id': A1[*]
equ
A
A1
A2
id: A1
B
A
B
1-N
B1
B2
1-1
A1
A2
id: A1
A
A1
A2
id: A1
B
0-N
B1
B2
0-N
B
1-N
B1
B2
0-N
0-N
1-N
A1
A2
id: A1
B
B1
B2
A1
A2
id: A1
B
B1
B2
A
A1
A2
id: A1
1-N
1-N
A1
A2
id: A1
B
B1
B2
A1[0-N]
ref: A1[*]
B1
B2
A1[1-N]
ref: A1[*]
B1
B2
A1[0-N]
equ: A1[*]
B
B1
B2
A1[1-N]
equ: A1[*]
A
A1
A2
id: A1
A
A1
A2
id: A1
A
A1
A2
id: A1
A
A1
A2
id: A1
52
c-d
r
R1
R2
id: A
B
R1
a-b
a-b
c-d
e-f
rA
rB
rC
1-1
e-f
ER
R1'
R2'
id: rA.A
rB.B
R1'
1-1
1-1
0-1
ba
ca
1-1
1-1
B
B1
B2
C
C1
C2
A
A1
A2
P
B
B1
B2
C
C1
C2
E.10
53
B2
b
0-N
r
B1
B2
0-N
0-N
r1
r2
0-1
0-1
B12
0-N
P
r'
B1
B2
1-1
A
A
1-1
exact-1: r2.B2
r1.B1
54
B
r
0-N
id: A
C
0-N
0-N
B
r
AC: *C
id: A
AC
0-N
0-N
C
B
r
r
0-N
id: A
C
0-N
0-N
C1
id: A
C1
ref: C1
0-N
C
C1
id: C1
C1
id: C1
0-N
E.10
55
Cet oprateur, dcrit plus en dtail dans [Hainaut, 1991], regroupe plusieurs
transformations classiques et moins classiques.
Son principe est assez intuitif. Considrons, dans le schma de gauche de la
figure E.87, un sous-ensemble quelconque de k rles de r. Soit par exemple {r.A, r.B}
cet ensemble (k = 2). Lensemble de tous les couples (a,b) de A x B prsents dans les
instances de r sexprime par la projection r[A,B].
Reprsentons chacun de ces couples par une entit dun nouveau type nomm AB.
Nous pouvons ds lors substituer AB aux deux rles r.A et r.B dans r, ce qui nous
donne un nouveau type dassociations r de degr n - k - 1, soit ici 3, entre AB, C et D.
Il nous faut encore dfinir les entits de AB comme reprsentant des couples de
A x B, ce quon ralise par les k = 2 types dassociations fonctionnels rA et rB et par
lidentifiant {rA.A, rB.B} de AB.
A
0-N
0-N
0-N
0-N
0-N
0-N
rA
rB
1-1
1-1
0-N
0-N
AB
id: rA.A
rB.B
1-N
Lorsque k = 1, le nouveau type dentits (soit A) reprsente toutes les entits actives
du rle slectionn (r[A]). Dans ce cas limite, le degr de r est conserv (n - 1 + 1). Le
type dassociations fonctionnel rA est 1:1 (il constitue un identifiant implicite de A).
Il peut ensuite, si ncessaire, tre transform en une relation is-a (figure E.88)
A
0-N
0-N
0-N
0-N
A'
0-N
0-N
0-N
1-N
Considrons lautre cas limite : k = n. Dans ce cas, le nouveau type dentits ABCD
reprsente toutes les instances de r (r[A,B,C,D]). On introduit n types dassociations
fonctionnels rA, ..., rD dont les rles opposs forment lidentifiant de ABCD. r est ici
inexistant et on retrouve la transformation classique de la section E.10.2, rappele
la figure E.89.
En pratique, lidentifiant minimal du nouveau type dentits dpend des identifiants de r.
56
0-N
0-N
0-N
0-N
0-N
0-N
0-N
0-N
rA
rB
rC
rD
1-1
1-1
1-1
1-1
ABCD
id: rA.A
rB.B
rC.C
rD.D
Un type dassociations dont un rle est de cardinalit [0-1] ou [1-1] peut tre dcompos selon ce rle. Celui-ci est un effet un dterminant de chacun des autres rles.
Cette transformation et sa justification ont t prsentes la section 15.18.9.
La figure E.90 prsente cette transformation selon les deux configurations de
cardinalit du rle r.B. Dans le cas dun rle de cardinalit [0-1], il est possible
dabandonner la contrainte de coexistence au profit dune relation is-a (section
E.11.1).
b) Normalisation relationnelle dun TA
On a montr (section 15.18) quun type dassociations pouvait tre reprsent par
une relation constitue de la reprsentation de ses rles et de ses attributs. Cette relation peut tre le sige de dpendances anormales, auquel cas il convient de la normaliser par dcomposition.
E.10
57
C
r
a-b
c-d
1-1
a-b
c-d
rA
rC
1-1
1-1
A
a-b
C
r
c-d
0-1
a-b
c-d
rA
rC
0-1
0-N
0-N
rA
rC
0-1
1-1
coex: rA.A
rC.C
B'
1-1
Le cas le plus simple est celui dun type dassociations n-aire sans attributs, dont la
normalisation a t discute la section 17.5.8. Il est repris la figure E.91. Lorsque
le rle dterminant de la dpendance anormale (r.B) est facultatif, le schma cible
comporte une contrainte de coexistence, qui peut ensuite tre limine, par exemple
par la dfinition dun sous-type (B) selon les transformations de la section E.11.1.
A
0-N
C
r
0-N
0-N
0-N
r'
0-N
0-N
r'
0-N
B
B C
0-N
0-1
1-N
B'
1-1
coex: s.C
r'.A[*]
La prsence dattributs ne pose pas de problme particulier, la procdure de normalisation relationnelle sappliquant telle quelle (figure E.92). Cependant, les configurations de dpendances fonctionnelles dans lesquelles le dterminant est
exclusivement constitu dattributs ne sont pas valide.
58
A
0-N
C
r
R1
0-N
0-N
0-N
0-N
r'
R1
0-N
B C
B
0-1
coex: s.C
r'.A[*]
A
A1
A23[0-1]
A2'
A3'
A
A1
0-1
A
A1
r
1-1
A23
A2'
A3'
A23
A2'
A3'
E.12
59
A
A1
A1
0-N
r
0-1
A
A1
A2[0-1]
coex: r.B
A2
0-1
0-N
0-N
1-1
r
1-1
AA
A2
1-1
AA
A2
A
A1
A23[0-1]
A2'
A3'[0-1]
A
A1
0-1
A
A1
r
1-1
A-A2
A2'
A3'[0-1]
A-A2
A2'
A3'[0-1]
60
Lapproche suivie dans cette annexe se base sur un ensemble de travaux dont les
rfrences sont reprises dans la section E.13 et dont la synthse a t publie dans
[Hainaut, 2006].
E.13
Rfrences et bibliographie
61
Hainaut, J-L., Chandelon M., Tonneau C., & Joris M. (1993). Contribution to a Theory of
Database Reverse Engineering. Proc. of the IEEE Working Conf. on Reverse Engineering,
Baltimore, May 1993, IEEE Computer Society Press.
Hainaut, J-L, Chandelon M., Tonneau C., Joris M. Transformational techniques for database
reverse engineering. Proc. of the 12th Int. Conf. on ER Approach, Arlington-Dallas, ER
Institute (and LNCS Springer-Verlag in 1994). (1993)
Hainaut, J-L. Transformation-based database engineering. Tutorial notes, VLDB'95, Zrich,
Switzerland, (1995) (available at http://www.info.fundp.ac.be/libd).
Hainaut, J-L. Specification preservation in schema transformations - application to semantics and statistics, Data & Knowledge Engineering, 11(1). (1996)
Hainaut, J-L., Henrard, J., Hick, J-M., Roland, D., Englebert, V. Database Design Recovery,
in Proc. of the 8th Conf. on Advanced Information Systems Engineering (CAiSE96),
Springer-Verlag (1996)
Hainaut, J.-L., Hick, J.-M., Englebert, V., Henrard, J., Roland, D. Understanding implementations of IS-A Relations, in Proc. of the conference on the ER Approach, Cottbus, Oct.
1996, LNCS, Springer-Verlag (1996).
Hainaut, J-L. Transformation-based Database Engineering. In: [van Bommel, 2005]. (2005)
128
Hainaut, J-L., The transformational approach to database engineering, in Generative and
Transformational Techniques in Software Engineering. Ralf Lmmel, Joo Saraiva, Joost
Visser, eds, LNCS 4143, Springer-Verlag, pp. 89-138, 2006
Halpin, T., A., & Proper, H., A. Database schema transformation and optimization. Proc. of
the 14th Int. Conf. on ER/OO Modelling (ERA). (1995)
Henrard, J., Hick, J-M. Thiran, Ph., Hainaut, J-L. Strategies for Data Reengineering, in Proc.
of WCRE'02, IEEE Computer Society Press. (2002)
Hick, J-M., Hainaut, J-L. Strategy for Database Application Evolution: the DB-MAIN
Approach, in Proc. ER'2003 conference, Chicago, Oct. 2003, LNCS Springer-Verlag.
(2003)
Jajodia, S., Ng, P., A., & Springsteel, F., N. The problem of Equivalence for Entity-Relationship Diagrams, IEEE Trans. on Soft. Eng., SE-9(5). (1983)
Kobayashi, I. Losslessness and Semantic Correctness of Database Schema Transformation :
another look of Schema Equivalence, Information Systems, 11(1). (1986) 41-59
Lmmel, R. Coupled Software Transformations (Extended Abstract), In Proc. First International Workshop on Software Evolution Transformations (SET 2004). (2004) [http://
banff.cs.queensu.ca/set2004/set2004_proceedings_acrobat4.pdf]
Levene, M. The Nested Universal Relation Database Model, LNCS 595, Springer-Verlag.
(1992)
Lien, Y., E. On the equivalence of database models, JACM, 29(2). (1982)
Ling, T., W. External schemas of Entity-Relationship based DBMS, in Proc. of Entity-Relationship Approach : a Bridge to the User, North-Holland. (1989)
McBrien P., & Poulovassilis, A. Data integration by bi-directional schema transformation
rules, Proc 19th International Conference on Data Engineering (ICDE'03), IEEE
Computer Society Press. (2003)
Motro, Superviews: Virtual integration of Multiple Databases, IEEE Trans. on Soft. Eng. SE13, 7, (1987)
62
Navathe, S., B. Schema Analysis for Database Restructuring, ACM TODS, 5(2), June 1980.
(1980)
Partsch, H., & Steinbrggen, R. Program Transformation Systems. Computing Surveys,
15(3). (1983)
Poole, J. Model-Driven Architecture : Vision, Standards And Emerging Technologies. in
Proc. of ECOOP 2001, Workshop on Metamodeling and Adaptive Object Models, (2001)
Rauh, O., & Stickel, E. Standard Transformations for the Normalization of ER Schemata.
Proc. of the CAiSE95 Conf., Jyvskyl, Finland, LNCS, Springer-Verlag. (1995)
Roland, D. Database engineering process modelling, PHD Thesis, University of Namur.
http://www.info.fundp.ac.be/~dbm/publication/2003/these-dro.pdf (2003)
Rosenthal, A., & Reiner, D. Theoretically sound transformations for practical database
design. Proc. of Entity-Relationship Approach. (1988)
Rosenthal, & A., Reiner, D. Tools and Transformations - Rigourous and Otherwise - for
Practical Database Design, ACM TODS, 19(2). (1994)
Schek, H-J., Scholl, M., H. () The relational model with relation-valued attributes, Information Systems, 11. (1986) 137-147
Thalheim, B. Entity-Relationship Modeling: Foundation of Database Technology. SpringerVerlag, (2000)
Thiran, Ph., Hainaut, J-L. Wrapper Development for Legacy Data Reuse. Proc. of WCRE'01,
IEEE Computer Society Press. (2001)
Thiran, Ph., Estivenart, F., Hainaut, J-L., Houben, G-J, A Generic Framework for Extracting XML Data from Legacy Databases, in Journal of Web Engineering, Rinton Press,
(2005)
van Bommel, P. (Ed.). Transformation of Knowledge, Information and Data: Theory and
Applications, Information Science Publ., Hershey. (2005)
van Griethuysen, J.J., (Ed.). Concepts and Terminology for the Conceptual Schema and the
Information Base. Publ. nr. ISO/TC97/SC5-N695. (1982)