19.02.2015 Views

Conception logique d'une base de données relationnelle objet

Conception logique d'une base de données relationnelle objet

Conception logique d'une base de données relationnelle objet

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

G.7 Représentation <strong>de</strong>s relations is-a 13<br />

préserve. Cependant, les choses se compliquent dans trois situations, que nous allons<br />

examiner plus en détail.<br />

• les <strong>de</strong>ux sous-types jouent un rôle ou sont soumis à <strong>de</strong>s contraintes;<br />

• le surtype possè<strong>de</strong> plus <strong>de</strong> <strong>de</strong>ux sous-types;<br />

• un <strong>de</strong>s sous-types B ou C n’est pas une feuille mais possè<strong>de</strong> lui-même <strong>de</strong>s<br />

sous-types.<br />

a) Les <strong>de</strong>ux sous-types jouent un rôle ou sont soumis à <strong>de</strong>s contraintes<br />

La disjonction asymétrique préserve un <strong>de</strong>s sous-types et ses propriétés, tandis que<br />

l’autre subit un éclatement. Le rôle et les contraintes <strong>de</strong> ce <strong>de</strong>rnier doivent donc être<br />

répartis entre ses fragments. La répartition d’un rôle s’effectue via un rôle multitype.<br />

La figure G.11 montre <strong>de</strong>ux approches : la première (a) préserve le sous-type D<br />

et répartit le rôle s.B en s.B’ et s.BC; la secon<strong>de</strong> (b) se <strong>base</strong> sur une disjonction symétrique<br />

et répartit les <strong>de</strong>ux rôles s.B et r.C <strong>de</strong> manière i<strong>de</strong>ntique. Bien que d’apparence<br />

plus complexe, la secon<strong>de</strong> solution présente l’avantage <strong>de</strong> la régularité, qualité que<br />

nous avons mise en avant à la section 17.7.5 : <strong>de</strong>ux constructions similaires se<br />

traduisent <strong>de</strong> manière similaire.<br />

E<br />

0-N<br />

s<br />

A<br />

attA<br />

D<br />

1-1<br />

r<br />

1-1<br />

B<br />

attB<br />

C<br />

attC<br />

0-N<br />

E A<br />

D E<br />

A<br />

D<br />

0-N<br />

attA<br />

1-1<br />

0-N<br />

attA<br />

1-1<br />

s<br />

D<br />

r<br />

s<br />

D<br />

r<br />

1-1<br />

B'<br />

attB<br />

(a)<br />

C<br />

attC<br />

BC<br />

attB<br />

0-N<br />

1-1<br />

B'<br />

attB<br />

BC<br />

attB<br />

attC<br />

(b)<br />

C'<br />

attC<br />

0-N<br />

Figure G.11 - Transformation <strong>de</strong>s rôles joués par les sous-types<br />

© J-L Hainaut - 2009<br />

La traduction d’une contrainte affectant un type d’entités B suite à l’éclatement <strong>de</strong><br />

ce <strong>de</strong>rnier peut s’avérer délicate. Alors qu’une contrainte locale (<strong>de</strong> domaine ou <strong>de</strong><br />

valeurs par exemple) ou une contrainte d’existence sera simplement dupliquée pour<br />

chaque fragment, il n’en va pas <strong>de</strong> même <strong>de</strong>s i<strong>de</strong>ntifiants et <strong>de</strong>s dépendances fonctionnelles,<br />

qui sont <strong>de</strong>s contraintes globales qui portent sur la population entière <strong>de</strong><br />

B. Un i<strong>de</strong>ntifiant portant sur B dans la figure G.11 ne se traduit qu’incomplètement

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!