• Aucun résultat trouvé

Représentation de schémas de bases de données hétérogènes sous forme de métaschémas XML

N/A
N/A
Protected

Academic year: 2022

Partager "Représentation de schémas de bases de données hétérogènes sous forme de métaschémas XML"

Copied!
68
0
0

Texte intégral

(1)

HAL Id: mem_00000130

https://memsic.ccsd.cnrs.fr/mem_00000130

Submitted on 18 May 2004

HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci- entific research documents, whether they are pub- lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

Représentation de schémas de bases de données hétérogènes sous forme de métaschémas XML

Amar Zerdazi

To cite this version:

Amar Zerdazi. Représentation de schémas de bases de données hétérogènes sous forme de métaschémas XML. domain_shs.info.comm. 2003. �mem_00000130�

(2)

!!"" ## $$

%

%&&

'' ''(('' &&

) *+,

") )-

* " . .

!"!"## $$ %% "" ## && ''

() $ " * ) + " " +

(3)

'

Résumé

/ 0 1 ) 2 1

) - -) 3 ) 4 * 5

.)) 1) ) )! )1 - ) . 1 ) - 6 .

) # - -

) ) 4 0 # ) -

) 7 - 3 -) )4

* ! # 8 / 0 ) - 0

) -) -) ) .) ) .)) 10

.) 9 4 : ) - 5

)1 # ) -)

- : ) ; 3 4 .) )

- ) .) 1 ) 5 ) ) 4

Mots clés

< ) .)) 10 ! ) ) ! )1 ! 1 1 9=*! .) 9 4

Abstract

* 1 / # 1 - .

4 * . . 1 /! . 1 - : . 1

! . # - 1 .

. 4 . # / . - .

>. - 4

# . - ! > # / - / # 1 1

- . 1 . . 9 . 4

. : 2 - - 1 # / 1 >

- - ! > . : 1 . 4 . .

:- . . 1 . . 4

Keywords

? 1 ! ! 1 ! 9=* 1 1 ! . 9 4

(4)

&

! ! "

# # !

" $%&' $

$ # !

" # (

) * )+% ) , ----

- !

) & %.) &/ 0)12 $

--- !

$ !

3 ! $& . .4 $%)+')

5 !

(5)

! ! " " " " " "

# $ % & $

4 4 : @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 44444444@ @ ' 4'4 ) A @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 44444444444 ' 4&4 @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 444

&

# '% () & *

'4 4 @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 444 B '4'4 )1 @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 4 C '4'4 4 ); )1 @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 44 C '4'4'4 - @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 4 C '4'4&4 $ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 44 '4'4 4 " @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 44 '4&4 A D+ E@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ '4 4 A 9/0 @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 444 % '4F4 A ,= E"@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ '4B4 < @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 44 '4C4 @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ '

# +% ) $+

&4 4 @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 444

&4'4 -- . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 44

&4&4 )1 ) 9 @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 444 F

&4 4 *) 01 .) <* .) 9 44 '

&4 4 4 - @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 4 '

&4 4 4 4 *) <*@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ '

&4 4 4'4 *) ) @ @ @ @ @ @ @ @ @ @ @ @ @ @ '

&4 4'4 - / )1 )@ @ @ @ @ @ @ 4 '&

&4 4'4 4 - ) - 44@ @ @ @ @ @ @ @ @ @ @ @ @ @ 44 '&

&4 4'4'4 - ) ) 10 @ @ @ @ @ @ @ @ @ '

&4 4'4'4 4 ) ) 10 - @ 444@ @ @ @ @ @ @ @ @ @ @ @ 444 '

&4 4'4'4 4 ) ) 10 - : 44@ @ @ @ @ @ @ @ @ @ @ @ 444 'F

&4 4'4&4 - )1 ) .) # @ @ 'C

&4 4'4&4 4 *) /- 11 @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 44 'C

&4 4'4&4'4 /- 11 @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 4 '

&4 4'4&4&4 ")) /- 11 /- - : @ @ @ @ @ 4 '

&4 4&4 - / @ @ @ @ @ @ @ @ @ @ @ 4 '%

&4 4&4 4 - ) 2) @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 4@ 44 '%

&4 4&4'4 # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ &

&4F4 ") - @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 44 &

&4B4 @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ &

(6)

F

# , % ( & +*

4 4 @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 444 &B 4'4 ) : @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 44 &B 4&4 G # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 444 &

4&4 4 1 =D<* .)) 10 @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 4 &

4&4'4 ") -) ) @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 44 &

4&4&4 ) .) 9 @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 444 &

4 4 -) @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 4 4 4 4 , ) ) @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @

4 4 4 4 +: <* .)) 10 @ @ @ @ @ @ @ @ @ @ @ @ 444

4 4 4'4 D .) ) @ @ @ @ @ @ @ @ @ @ @ @ @ @ 4 '

4F4 @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ &

# * % # ( - & ,,

F4 4 @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ F F4'4 - # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 44 F

! ( . . . & ,/

0( . . . && *1

2 & **

,4 4 @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 4 FB ,4'4 ,-- ) 1 1 9 = . * 9=* @ @ @ @ 4444 FB ,4& =-) 1 1 9=* @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 444@ @ @ F

,4&4 4 = @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 444 F ,4&4'4 /- ) @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 44 B

,4&4'4 4 /- ) 44 @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 444 B

,4&4'4'4 /- ) ) #)44@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ B ,4 4 @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 444 B

(7)

B

! ! " " 3 3 " " 4 4 " "

5 & $& 6 Architecture du système……….. 14

'& 6 Transfert d’information via XML ……… 15

+& 6 Extrait d’un simple document XML……… 17

,& 6 DTD du document XML………... 18

*& 6 Schéma XML du document XML………... 19

7& 6 MCD de la gestion de commandes………... 21

/& 6 MCD de la gestion de commandes avec les nouvelles contraintes………..……….. 24

8& 6 Graphe de la gestion de commandes………... 26

9& 6 Métaschéma XML de la BD gestion de commandes………. 33

$1& 6 Représentation graphique du type complexe dbGestion………... 34

$$& 6 Modèle UML de l’extracteur………... 37

$'& 6 Construction d’un complexType représentant une table……… 39

$+& 6 Algorithme d’extraction du schéma de la BD ……….. 40

$,& 6 Classe DomDocuement et DomNode de la bibliothèque DOM de Java………. 41

$*& 6 Génération des métaschémas XML……….. 42

(8)

C

$&$ # 2

$&' : ( ; <

$&+ :(

(9)

1.1 Contexte

, A . ) 1 # . 1 -

-) ) / 0 ) - # ) --

H , 'I4 )- - 1 0 1 ) -

- 0 ! - ! ) ) 5 .)) 1) ) ) ) ! 5

) ) ! : ) !

- ) -) ! ) 4 )

# ! - 0! . ! 4 -

- ) ) 0

- / 0 ) 1

) ) 2) ) -

-- 1) ! 1) 1 !

-- ! ) 0 ! 4

* - / 0 ! ) )-

) ! ; 3 )1 )- . 1) 1 -.

) 4 ) - # 3 ) )- . J

# - ) )- ) 0 . 10 4

5 - - 0 1 ) : ) ) ! ) )

- )! ) ) - 0 HK," 'I4

.)) 1) ) )! 5 ! )- -./ ) 4

/ 0 . 10 1 10 ) 3

! ) 3 3 0 )

-- 5 3 # H, *% I4 / 0 .)) 10

.0 - 5 ) / 0 . 10 L ;5; / 0

1 1 - 1 1 ! 0 !

=D<* ) 4

1.2 Problématique et objectifs

- - # )1 )

) 1 - 5 ) 4 + !

- - :L -- ! - - - : !

) - 1 ! # )1

3 - ) 4

, ! ) -) - # ; -

) - # .)) 10 ) !

) A ! ) 9 ! 4 4 ) -) 3 -

) ) / 0 2 1 4 - !

- # ) .) 5 ) 1 )

) 4

# : . . )# -- !

)1 ) .)) 10 # 9 : . . -

7 -- . 9 1) ) -- - A

(10)

%

- : - - 1 # # . .

M 4

)1 5 )) ) -) - ;- A )# -- 5 # N

*)# -- O A - : .) )

) 4

*) 01 - 1 O .) 5 -

) .) 4

*) O - ) 5 ) - ) .) 4

- O-) ) .) )1 4

$ 3 1 1 ; 4

* 1 *+,! ) - - 0 - - !

: -) ) .) )

.) 9 4 , ! ) .) 9

.) ) 5 ) ) 4 ) ) # 1 6 5

: ) .) ) - 5 ) ) 4

-- . ) . 1) ) 9 - 1) )#

.) ) 1) ) ) .) 9 4

) .) : ) - ) )

# ! # ) .) 9 N

; +: ) .) : ) 4

; * - -0 .) ) 5 - 1 / 0

=D<* - 4

; E- .) 4

; -). ) /- )

-). : ) ; 3 4

; - -0 ! /- ) 4

; ) # - .) )

- # )1 # # : - - -

)# <*4

(11)

1.3 Plan

) ) 8 # N

. - ' N () P . - -) - ) . )1

) .)) 10 4 - # ) ) -

- 4 + ! # : - A . . )1

<*4 - -- . 4 , . - !

1 - - : A -- . !

# 1 #) 4

. - & N = P

. - ! -) -- . )1 4 ,-0 -)

. / 0 ! ) 01

.) <* .) 9 4 . 01 ) ) ) - : -

-- 4

. - N ( P G # )1 -)

-- . 4 ) - / / 0 -

-) 4 + ! 0 - . - -

) ) : - 4

. - F N # ( - P . - / ) -) )

. - -) ) )# - - # 4

(12)

( ( ) )

'&$

'&' : )

'&+ : < 0

'&, : < (

'&* : < # "

'&7 ! (

'&/ # (

(13)

' 2.1 Introduction

1 :- ) . 1 - M : 1

- 0 .)) 1) ) ) -) 2 1 4

* ! -) . - ) -- . )1

) .)) 10 ! -0 # -) ) - - - -.

- )1 4 , -) . - ! ) / .0

) - # 1 . -- . 4

2.2 Processus d’intégration

) -) O A ) ! #

- - ))4 O )1 ) ! ! )- -) !

- ) - -) )- Q -) )4

- - -- . ) - - )1 .)

) - -. ! - - HRE %%IN

); )1 N .) 0 ) !

- N . . - ; .) !

)1 N ) .) 1 5 - .) !

- ; .) 01 )1 !

" N .) 4

2.2.1 Pré-intégration

-. : : )) !

! ). ! 4 - .) ! 01 :

)) 4

-); )1 ) 5 - # - # ) ) :- )

- .) ) - .)) 1) ) ) 0 ) )4

2.2.2 Comparaison

.) : # ) . )! O) - #

5 )) : 4

" -- : ) - - )

O -) )) # !

)) :- ) - -- H ,"%BI4

# : ) ) 5 -. - ! -- . #

- )) HS % I!

- ) )) 5 1 H$, % I!

). N - - - ) 5 :- <* *<, !

) ; 3 - 5 4

(14)

&

2.2.3 Fusion

) # - ) .) -); )1

. . - )) - ! - )1

- - - 3 )4 ! 0 ; 1) ) ! 5

.) )1 )5 - N

T* .) )# 0 !

T* - ; .) ) ) - !

T* 01 )1 - - 5 ). : 0 ) ) 4

2.2.4 Restructuration

-. # - Q )1 #

) .) 4 -- . ) ! /- ) )) !

- ! -) # #

) ! -- - ) ) 1

H<E % I4

- - )1 )) )# --) # - A . . 4

-) ; # : - ) - ) ) :

) . 1 ) .)) 10 - M 4

" -- ! ! ) ) 5 -. -); )1 4

2.3 Projet GEMO (Ex Verso)

- A D+ E HK+" 'I! - A K+"=E! )1

) ) M 4 A - A )

- 0 : - ) : / 0 1 ) :

)# -- # -- - ) 4 O / 0 -

# 5 ) - : : ) :4

U : . . - A 5 # N

Médiation entre données XML

* )1 ) ) 9 ! - - #

- 1 .) )

- # # 3 .)) 10

9 4 * - -- 1 # - # 3 )

1 # .) ) ) * * 9

# 1 4

* 1 . 1 - ) ; ) 5 )

- - .) )

.)) 10 9 4 1 - 9

-) )! - - - -- - )

1) ) - -) . HK+" 'I4

(15)

Médiation pour le Web sémantique

A M ) # M ) )

5 -). - . --). - )

1 ! . . ! # H , 'I4 1

) ) M # - - # )

) . . 4 - ! - 1 5 ) . M #)

) - - 0 ) ) ) ) 0

-- )# ;. - - 5 ) . 4

Ouverture vers les services du Web

+ -- . /- -Q ) ! D+ E O ) 5 )1

)1 # M ) O) . 1 ) 9 4

) # # ) - -- - 0 -

- # 3 )4 * ! # :- - 0 )

9 -- 5 # M 4

Entrepôts thématiques de données du Web

)# -- -- . : 1) ) - -) 8

) # ) - . ) -Q .) .

- 5 - M ! 1 ) #

1 ) 4 - 0 :-) ) , # 9 5 )

HK+" 'I4

! D+ E )# -- , # 9 .0 # M -

-Q ) .) 4

,$ - & ' -& ' % ) )

. %/

(16)

F 2.4 Projet Xylème

, 1 ! 9/0 H9S &I ; - " , )) - ' -

)# -- - 5 - - /- K 4 9/0 # 5 )

-Q : 5 0 1 ) . ! - 2 ) 9

M 4 + -Q ) ) 5

- M - #) ! # . 1 )1 4

= # 1) ) . 1 1

) ! - :- - 1 1 9 4

A - A - : - ) : M

- 4 * ! - 1

, - N

• # 01 ) M - ) 4

• 1 ) 5 # # 1 6 5 1 1 3 V

: M & H9S &I4

• = # )# ) < .0 ! R :!44 4

< 1 A ) ) ; ) ! - -

.)- - . 1 8 - / 0

W- ; : X - 0 ) ) 4

, . ! -Q 9 9/0 Y = # 10 2 1 ! 0 5

; ).)) 10 4

) 2 1 - - . 1 - /) - 9/=

2 9 1 - 9/ :'

: ) : )4

. 1 # 9/ & :

) ) 5 # ) 4

$ ! - - ! - #

4 ! - # Z! - # A

- : ;- # )4 9U ! 1 1 3 9

- ) ) / 0 W- ; : X 5 -) 3

) ) 4 - ) - 0 4

,$ &0 )1 & ' / ' & ' ) ) % 2

" " #* /

3 $ &0 4 " 4 * 4 *

* % * /

5$ &0' ) " * / 6 )

&0 # 7 ) 4 * 8 8 9 :

) 0 " /

(17)

B

# 1 . - ) 1 ) . .

! - )5 /- 3 - )- :

.)) 10 - ) )

) -) - 4

5 1 0 -)

# )1 ! 9/0 Y = # - # .) .

)) 4 ! ! .) .

4

* # - - - : ! -) )

- 1 ) V ) 5 )1 -- 4

9/0 Y = # )) 6 . # 8 5 )

) -- -Q )1 ; #

- )4

2.5 Projet CASTOR

,= E" H ,= &I - A E- = -- 1 A ( -

- - 1 - 0 A

) 4 - - ) - /-

A R# H , &IL 5 . -) )- R# !

- ) - : -) N D = 4

) 1 ) -) ) O A

) 4 - ) ) 0 ) ! -

- # - : 4

,= E" ) . -- 1! )# ) 4 + -.

)# -- ! 0 A )# 0 # ! # - 1) 5

/ . ) )) H ,= &I4

(18)

C 2.6 Bilan

- . J - A # : . . ! / .) )

- 4 -- Z

- - : A . -- . ! - - 0 )

) - . 4

PPrriinncciippee//OObbjjeeccttiiffss PoPoiinnttss ffoorrttss PoPoiinnttss ffaaiibblleess

GEGEMMOO

- Concevoir un système qui repose sur

l’intégration virtuelle de données.

- Concevoir et valider des solutions (originales) à la gestion de données complexe dans les systèmes distribués.

- Amélioration de la recherche sur le Web.

- Echange de données sur le Web (sources d’informations et services)

- Systèmes distribués à grande échelle (nombreuses sources de données,

nombreux clients)

- Les applications deviennent de plus en plus complexes (systèmes virtuels, services de gestion de contenu personnels).

- Problème de médiation de données (disparité entre la compréhension des données par l’utilisateur et le schéma de la base).

XyXyllèèmmee

- Nouvelle génération de moteur de recherche.

- Gestion des évolutions (historique de données).

- Hébergement des données et des applications.

- Acquisition des documents à partir du Web ou en local.

- Intégration sémantique de données à travers des vues.

- Architecture distribuée.

- Basé sur le standard XML du W3C.

- Passage à l’échelle (taille, contenu hétérogène, accès multiple).

- Gestion des changements (acquisition des données, gestion des versions, requêtes temporelles).

CACASSTTOORR

- Mettre des BD relationnelles et objets dans des documents XML et annuaires LDAP.

- Projet open source.

- Performance du système de gestion d’objet.

- Evolution très rapide du modèle objet.

- Etape supplémentaire d’intégration par la traduction et la mémorisation des sources de données en objets.

(19)

2.7 Conclusion

* ) / 0 ) ; ! )1 ) .)) 10

- - ) - ) 1) 4

)- . 3 / 0 W -- 1 X4 --

-); -) ) 4

* : ! -- . - - -) ) 5

) ) ! 5 )

- ) - ) - : ) ; 3 4

(20)

%

) )

+&$

+&' 4 +&+

+&, ( ) !

+&* (

+&7 # (

(21)

' 3.1 Introduction

5 1 - )1 ! -. )

-- ) -); )1 4 :- ) . - '4'4 ! -. - /

.) 5 )1 : ) 4

. - ! -) - ! - - -- . )1 ! A

1 -- 4 + ! ) ) # : -

01 .) <* 5 .) 9 ! -

A 4

3.2 Notre approche

-- . # 5 - - : - 0 .)) 1) ) )

) 4 ) - - -) .) <* - )

.) 9 /- .) ! A ( !

A 4 : ) - 5 )1 #

) -) - : )

; 3 4 ) .) ) - ; .)

1 ) 5 ) ) 4

) .) - - -0 .) 5

- 1 / 0 =D<* - 4 # 1 .

) .) A - -

) 4

, - 0 ) )1 ) ) )) ! .

-) N

5 $& > - " 0 # /

XSD1

<…>

XSD2

<…>

XSD3

<…>

Catalogues systèmes des SGBD

Métaschémas XML (structure logique) Moteur d’extraction

des fichiers XSD

: Interrogation des bases de données via des requêtes SQL.

: Résultats des requêtes.

: Génération des métaschémas XML (fichiers d’extension .xsd).

: Lien sémantique entre métaschémas.

Légende :

(22)

'

- # ! .) - ) - - - !

Q . :- ) ; ! -)

: 0 4

; # ( "0! N : ) .) 9 !

# 1 ) /- =D<* ! A ( ! A

/ 0 )1 4

; ( ) 2 N - G / 0 4 ,

! 1 1 / 0 3 =U

) - ) ) .) 9 4

1) ) ) .) 9 ! : -

01 :- . - &4 4

; N - -) ) -)4 1 . 9=*

- - * * ) - 1 -. #

- - - - -) ) : 4

* ! . /- .) <* . 9=* -)

1 A - - # 4

5 - W ) ) .) X -

-) # L A - A *+,

) 5 # 0 - ) 01 - 1

) .) 5 4

3.3 Intégration basée sur XML

) ) .) ) ) )) # 1 ' !

9 ) .) ! . 9=*

!

BD_1 SGBDR

BD_2 SGBDOO

BD_3 Entrepôt

XML

BD_4 LDAP

Légende :

: Echange par des métaschémas XML.

: Evolution du schéma de la BD par un métaschéma XML.

5 '& > ! & '/

(23)

''

9 1 1 - - 5 -

# ) ! ! ! ) 01 - )

! # 1 4

# . 1 1 9 -) - - )5

-) /- ) 4 ! 9=* -- .

* * HM &I- -) - - ! Q

8 - - # -- Z 9 4 , !

.) 9=* * * 01 # 3 - ) -

9 4 - * * - )5 -) )

) Z) 1 1 9=* 4 * *

- A 01 - J -)

) - /- 1 - ) ! - ) -)

)) ! 4 4 = - ! * *

- - ) 01 9 - .) 1 -

. 10 # 1 1 # 9 4

+ ! /- -) - - A . 5 * * 5

. . # : ) 1) ) 9

H ?, &I4

; , 1 . :- ! - #

- /- 1 ) L

; - ) ) ) A !

.) 1 -) ! - 1 1

) ) )# -- .) 9=*4

; , - / : 9 - -) .) 9 ; 3 ! -

) ) - ) ! - 2 .)

- :; # :; 3 9 1

- 1 1 3 9 9U 4

) .) 9 - - -0 .) ) 5

- 1 / 0 =D<* - 4 . A

- - ) 4

-). - ) - ) -) ) !

-) 9 # * * )

# .) 9 - 4 ) :

# 0 * * # 1 .) 9 4

1 # -) : - 9 N 1 -)

) ) #). )) 1 4

(24)

'&

<?xml version="1.0" encoding="UFT-8"?>

<bulletin-meteo ident=“b201“>

<note>&#x00A9; <I>InfoMétéo</I>, </note>

<date>25 mars 2001</data>

<heure>08:00</heure>

<vue-satellite type="gif" src=http://www.zzz.com/photos/im9245.gif/>

< !—Localisation géographique -->

<localisation>

<zone>

<ville>Toulouse</ville>

<departement>31</departement>

<region>Midi-Pyrénées</region>

<pays>France</pays>

</zone>

<altitude unite"m">187</altitude>

</localisation>

< !—Bloc de mesures -->

<mesures>

<ciel>variable</ciel>

<température unite="celsius">16</temperature>

<vent>

<direction>SW</direction>

<vitesse unité="m/s">6</vitesse>

</vent>

<pression unite="mb">1025</pression>

<humidite unite="%">80</humidite>

<visibilite>10</visibilite>

<index-uv>1</index-uv>

</measures>

</bulletin-meteo>

5 +& > 4 ) & '/

(25)

'

1 : - * * - # 9 1 &

) 1 - - * * 4

1 - ) /- )) [\+ + + @ 4

) /- )) )) ; -

) ;)) N ) ) - W ! X4

W ] X -- Z 5 0 1 . : : :

# 4 ;)) ! )) )) # ; !

- ! ) W ^ X4

W _ X 1 )) 1 - )) - )-) !

W ` X 1 )-) 4 ) - .0 0

/- )) ; 4 " - - -)

-) )-) : - ) : )) 4

1: <!DOCTYPE bulletin-meteo [

2: <!ELEMENT bulletin-meteo (note?, date, heure, vue-satellite?, localisation, mesures)>

3: <!ATTLIST bulletin-meteo ident ID #REQUIRED>

4: <!ELEMENT note (#PCDATA | I *>

5: <!ELEMENT I (#PCDATA)>

6: <!ELEMENT date (#PCDATA)>

7: <!ELEMENT heure (#PCDATA)>

8: <!ELEMENT vue-satellite EMPTY>

9: <!ATTLIST vue-satellite type CDATA #REQYUIRED 10: src CDATA #IMPLIED>

11: <!ELEMENT localisation (zone, altitude)>

12: <!ELEMENT zone (ville, departement, region, pays)>

13: <!ELEMENT mesures (ciel, temperature, vent, pression, humidite, visibilite, index-uv?)>

14: <!ELEMENT ville (#PCDATA)>

15: <!ELEMENT departement (#PCDATA)>

16: <!ELEMENT region (#PCDATA)>

17: <!ELEMENT pays (#PCDATA)>

18: <!ELEMENT altitude (#PCDATA)>

19: <!ATTLIST altitude unite CDATA #REQUIRED>

20: <!ELEMENT ciel (#PCDATA)>

21: <!ELEMENT temperature (#PCDATA)>

22: <!ATTLIST temperature unite CDATA #REQUIRED>

23: <!ELEMENT vent (direction, vitesse)>

24: <!ELEMENT pression (#PCDATA)>

25: <!ATTLIST pression unite CDATA #REQUIRED>

26: <!ELEMENT humidite (#PCDATA)>

27: <!ELEMENT humidite unite CDATA #REQUIRED)>

28: <!ELEMENT visibilite (#PCDATA)>

29: <!ELEMENT index-uv (#PCDATA)>

39: <!ELEMENT direction (#PCDATA)>

31: <!ELEMENT vitesse (#PCDATA)>

32: <!ATTLIST vitesse unite CDATA #REQUIRED>

33: ]>

5 ,& > ! & '/

(26)

'F

1 &0 1 ! - ) [\, = @ 4 +

-) ! /- ) # - ) .) .

)5 /- )) )4

1 B0 1 ! -) ) )) )

-) )) 4 ) /- )) -)

) : a *, , N . * ! - ) )-

)) ) 4 #) * *!

- /- ) -) - # 3 :- )4

- )) # . ! - - . / FNF -

: - . Z 0 # V )

4

R 5 -) ! # ) * * - ) - 5

9 4 , # : - -) ) ! # )A5 # 4 *

1 # ) - ) - 1 1 .) 9 4

1 F -) : .) 9 - 5 * * 1 !

--) 1 1 F -

:- 4

<?xml version="1.0" encoding="UFT-8"?>

<xsd:schema xmlns="http://www.w3.org/2000/10/XMLSchema">

<xsd:element name="bulletin_météo">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="note" minOccurs="0"/>

<xsd:element ref="date" minOccurs="1" maxOccurs="1"/>

<xsd:element ref="heure" minOccurs="1" maxOccurs="1"/>

<xsd:element ref="vue-satellite" minOccurs="0"/>

<xsd:element ref="localisation" minOccurs="1" maxOccurs="1"/>

<xsd:element ref="mesures"/>

</xsd:sequence>

<xsd:attribute name="ident" type="xsd:ID" use="required"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="ciel" type="xsd:string"/>

<xsd:element name="date" type="xsd:date"/>

<xsd:element name="direction" type="xsd:string"/>

<xsd:element name="département" type="xsd:string"/>

<xsd:element name="heure" type="xsd:time"/>

<xsd:element name="humidité"/>

<xsd:complexType>

<xsd:simpleContent>

<xsd:extension base="xsd:string">

<xsd:attribute name="unité" type="xsd:string"

use="required"/>

</xsd:extension>

</xsd:simpleContent>

</xsd:complexType>

</xsd:element>

</xsd:schema>

5 *& > " & ' & '/

(27)

'B

• * )) G : : # )

: - - ! ! )- ! 4 ! /- ))

W - X ) )) 5 /-

) ! /- ) - 3 /- -) ) : N 1!: N ! : N !

4 /- W X ) .) 4 * : - !

) /- )) . )) 5 /- )

-) ) 4 - 5 9 5 .)

#) ! - : - ! : )) -0

4

• * G - 0 G ! /- ))

W - : X : N - : /- 0 :- -

)) # - ) : N ! 4 1 )

) )4 ) :- E !

:E -) W X ) * *4

# ) )) 3 - #

-- Z )) ) 4 )

: N - )1 /- ) -) 5 #

! # - ) ! 1 4

= : - - # .) )

) - . -) * *! - : / : - -

# ! - - - ) - --

.) 9 0 ) ) 4 ! : -

- ) ) 0 /- )! - /-

) ) ) # /-

)) 9 ! / -) )# - :

- - 1 ! 1 ' 4 ) /- - )1 3

- -) 4 - )

/- ) ) /- )) 9

# -)- ) -

A -) .) 9 4

(28)

'C 3.4 Définition des règles de transformation d’un schéma de BD

en un schéma XML

- 01 - .)

) /- 9=*4 01 - -

/ 4 - 0 - )

) -4 - / -

)1 ) ) # )1 .) L

- ! ) ) : - 0 -

4

3.4.1 Traduction de la partie statique

-) )- 0 - ) * 4 . )

) - . ) - 7

01 - .) )

.) 9=*4

3.4.1.1 Définition des tables de la BD

( $ % . <* -- 1 / 0 =D<*

- /- - : 9=* <xsd:complexType> -) -4 /-

9=* 3 ) A 4

3.4.1.2 Définition des attributs non clé d’une table

( '% . )) <xsd:element> /-

/- 9=* ) 4 ) <xsd:string> 5 /-

- : - ! ) ) # # 4 * ! /-

) #) ) 5 - /- 9=* L /- ) #) )- /-

4

) ! # - ) - 3 ) 4

4 ) $

produit

idprod libelle prix_unitaire commande

idcom date

contenir quantité

1,n 0,n

5 7& > /

(29)

'

1 ; ) : 01 -) ) 4

) 4!0) ) -) ) )- table-

- ) - ) -4

/- 4

-) ! : !

minOccurs maxOccurs ) - #

: # : 4

Soit le modèle relationnel de la BD constitué des tables :

COMMANDE [idCom, date]

CONTENIR [#idCom, #idProd, quantite]

PRODUIT [idProd, libelle, prix_unitaire]

Dans le modèle ci-dessus, les attributs qui sont soulignés représentent la clé primaire et ceux qui sont précédés par le caractère dièse représentent une clé étrangère.

) : ) ) - COMMANDE

PRODUIT! ) -) ) - 1 9=* ;

N

<xsd:complexType name="tableCommande">

<xsd:sequence>

<xsd:element name="date" type="xsd:date" minOccurs="1" maxOccurs="1"/>

</xsd:sequence>

<xsd:complexType name="tableCommande">

<xsd:sequence>

<xsd:element name="date" type="xsd:date" minOccurs="1" maxOccurs="1"/>

</xsd:sequence>

<... />

</xsd:complexType>

<xsd:complexType name="tableProduit">

<xsd:sequence>

<xsd:element name="libelle" type="xsd:string"

minOccurs="1" maxOccurs="1"/>

<xsd:element name="prix_unitaire" type="xsd:float"

minOccurs="1" maxOccurs="1"/>

</xsd:sequence>

<... />

</xsd:complexType>

(30)

'%

3.4.2 Traduction de la partie dynamique

3.4.2 Traduction de la partie dynamique des contraintes d’intégrité 3.4.2.1 Contrainte induite par les clés primaires

* ! # ! - /- )1 ) )) -

# ) - -- 5 ) - - Q / .

) 1 b) -4 , ! 01 1) ) ; N

( +& % . - )- -

/- - : - 5 4

* /- - : <xsd:complexType name="tableCommande">! - 5 N

) commande4

required 1 -) 1 4

- # -) N ) 9=* /- - !

- idCom -) 1 4

( +& % * /- - : <xsd :complexeType name= "dbGestion">

-) - : /- 0 5 )

[: N cd d /- cd d E cd d

:E cd de

5 -- ! )- ) N

)- ) -) ) )- ID

1 /- )4

:- xpath - /) ) -0 ) - )4

! )) : <xsd:selection> 1 1 9= 4

<xsd:attribute name="idCom" type="xsd:positiveInteger" use="required"/>

<xsd:key name="IDCommande">

<xsd:selector xpath=".//commande" />

<xsd:field xpath="./@idCom" />

</xsd:key>

(31)

&

:0 :- xpath ) # )) <xsd:field>

-) ) 3 1

<xsd:attribute> - : /- 4

= - )- 5 ) - #

5 L - : - TVA taux

# - F4F! &4 ! &&4& 5 -)

/- - : - ) - -) ) - - 4

3.4.2.2 Contrainte induite par les associations (clés étrangères)

Deux cas sont possibles en fonction des cardinalités indiquées de part et d’autre de l’association.

3.4.2.2.1 Cas des clés étrangères simples [cardinalité (0,1) ou (1,1)]

) - # 5 1 )1 W - X

; <) < = : - 4 ) ! -) 1 )1 -

) ! - 7 ) # -

)- ) # - )4

( ,& % = - , ) - - < ! <

-) )) 10 )

- - /

4 ) $ = -- ./- .0 # * 1

! 7 ) # )) :- ) 4

; ( ?

; ( &

, $ ) % 0) 0) % & ) %

) /

produit

idprod

commande

idcom

contenir

1,n

5 /& > /

(32)

&

) - W X! A

<xsd:keyref>4

: keyref - ) )) 5 ) : 3

.) 4

)) 10 - ) *"+$ #

:- )) 10 4

)) [: N2 / e -) ) 2 /

# /)4

) -) ) - )) 10 4

-) A Q )-

0 4

3.4.2.2.2 Cas des clés étrangères complexes [cardinalité (0,n) ou (1,n)]

* - # ) ! - - # )1 ) 4

: - ! 1 ! - ) )

# # 1 B N

; ( ?

; ( &

( ,& % # - :- ) ) -)) )

/- - : -) W (3 X - -

-)- ) - 3 - ) -

: )4 + ) W (3 X

- 1 : : ) 4 * : - ! . ; #

- Q - - - # 1

# - Q - -- - ) - ) -- # 4

<

<xxssdd::eelleemmeenntt nnaammee==""ccoommmmaannddee"" ttyyppee==""ttaabblleeCCoommmmaannddee"" mmiinnOOccccuurrss==""00"" mmaaxxOOccccuurrss==""uunnbboouunnddeedd"">>

<xsd:key name="IDCommande">

<xsd:selector xpath=".//commande" />

<xsd:field xpath="./@idCom" />

</xsd:key>

<xsd:keyref name="IDREFCommande" refer="IDCommande">

<xsd:selector xpath=".//produit"/>

<xsd:field xpath="./@idCom"/>

</xsd:keyref>

</xsd:element>

(33)

&'

4 ) $ 0 ! contenir commande

produit -) ) - &0 4

* /- - : <xsd:complexType name="tableContenir"> -)

)1 W (3 X! )) 10 ) - N

) -) ) - )) 10

- 4

-) A Q ) :

-

K J ) :)) <xsd:field> )-

- ) : 4 . ) )

) 10 4 9=* ; -0 CONTENIR [#idCom, #idProd,

quantite] 0 1 ) 4

= ) ) /- - : - !

1 -. 1 )1 ) :- ) 7 )

) 4

+: : - 1 4 * !

- - ! -- - -

0 L ! / - 2- - ) 1 )!

- 3 ) ! / )A5 - !

) 4

<

<xxssdd::eelleemmeenntt nnaammee==""ccoonntteenniirr"" ttyyppee==""ttaabblleeCCoonntteenniirr"" mmiinnOOccccuurrss==""00"" mmaaxxOOccccuurrss==""uunnbboouunnddeedd"">>

<xsd:key name="IDContenir">

<xsd:selector xpath=".//contenir"/>

<xsd:field xpath="./@idCom"/>

<xsd:field xpath="./@idProd"/>

</xsd:key>

c o m m a n d e p r o d u it

c o n te n ir q u a n tité

5 8& > )" /

(34)

&&

3.4.2.3 Contrainte induite par les contraintes d’intégrité de cohérence de valeurs (triggers programmés par le DBA)

11 - - 5 - ) -

- .) 1 / # 4

) ) 11 /- - : -)

-4

G # ) - ) - 4

+ * 1 ! 11 )VerifProd

produit ) . O O 5 A - 4

) O - 1 )- A # # 4

K 11 VerifProd =D<* 1 4

create or replace function VerifProd() returns opaque as ' begin

if NEW.libelle is null then

raise exception \'Libellé produit doit être renseigné !\';

end if;

end;

'language 'plpgsql';

create trigger VerifProd

before insert or update on produit

for each row execute procedure VerifProd();

K J 11 ) - )

1 ! /- OPAQUE /- ) )4 ! 11 -- 5

) .)4

3.4.2.3.1 Définition du type trigger

( *& %* - - ! # ) /- 11 /-

=U -) /- 9=*4 # /-

N

<xsd:complexType name="triggerType" >

<xsd:sequence>

<xsd:element name="event" type="xsd:string" minOccurs="1" maxOccurs="1" />

<xsd:element name="statement" type="xsd:string" minOccurs="1" maxOccurs="3"/>

<xsd:element name="action" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

(35)

&

) 4!0) 11 ) triggerType

) - : /- - ) 2) 4

:) )#) N # ! -0! )#) ! -))

# - # N BEFORE | AFTER | INSTEAD4

) )#) N 5 ) . 11 !

! 5 A ! -- INSERT | UPDATE | DELETE

action 1) ) - -- ) - 11 1

- :) 4

) # /- .0 9=* - -)

=U 4 .0 : 1 1 9=* 3 - )

3 ) # /- ) .) 9 4

3.4.2.3.2 Utilisation du type trigger

( *& % ,-0 - # /- . -) 9=*

<*! : / . ) 11 ! /- 4

4 ) $

3.4.2.3.3 Référencement du type trigger dans un type complexe

( *& % + /- 11 ) ))

) -) - 9=* -

<* - 11 4

<xsd:element name="VerifProd" type="triggerType">

<xsd:sequence>

<event>before</event>

<statement>insert</statement>

<statement>update</statement>

<action>if NEW.libelle is null then

raise exception \'Libelle produit doit être renseigné !\';

end if;

</action>

</xsd:sequence>

</xsd:element>

<xsd:complexType name="tableProduit">

<xsd:sequence>

<xsd:element name="libelle" type="xsd:string"/>

<xsd:element ref="VerifProd" type="triggerType"/>

</xsd:sequence>

<xsd:attribute name="idProd" type="xsd:positiveInteger" use="required"/>

</xsd:complexType>

(36)

&F

)) ref - )) ) /- 11 5 :) /-

- : 11 4

, ! 11 - )1 - : <* .)

) ) 5 - : - -4

3.4.3 Traduction de la partie dynamique de traitements 3.4.3.1 Les procédures stockées

( 7% : - 0 ) - 11

) /- ! /- / - )) /-

- : 4 5 :) ) - /-

- : 9=* - ) - 0 - 4 + -

# - - 7 # . Z )

5 ) - ) 4

- ) 2) :- 8 - 1) <*4

4 ) $

: - # -) : - ) 2) - 1

/ 0 4 D - ) -- - -

idProd 4

. - ) 2) ) - ) 4!0) 4 /-

procType 3 - - - 01 -) ) 4

proname - ) 5 : - 1 / 0 4

/- string . - ) # 4

)) 0 - - ) - ) 2) !

<body> ) - ; 3 4

<xsd:complexType name="del_Prod" type="procType">

<xsd:sequence>

<proname>nb_produit</proname>

<proarg>1</proarg>

<body>create or replace function del_prod(int) returns int as '

delete from produit where idProd = $1; ' language 'sql';

</body>

</xsd:sequence>

</xsd:complexType>

(37)

&B 3.4.3.2 Les vues

( /% # -) : -

) - # 5 - - # - 4

-) ! - - ) 2) ! 5 :)

) /- - : 9=* -) -4

4 ) $

: - # :- ). : - -) - <*4

Q # : ) ) 5 4

# ) <*4

# <* 3 - ) 2) ! -

) /- - : - /- viewType4

# <* - 3 =U ! -

. 9=*! # ) -) 0 - - - 4 +

- - # # ) )) 9=* )

-) 4 - 0 - select! :- )

<xsd:element name="select" type="xsd:string" minOccurs="1" maxOccurs="unbounded"/>

- - from4

- - ) )) 9=*where4

3.5 Récapitulatif

,-0 # ) 01 .) )

.) 9 ! # ! ) 0 4

<xsd:complexType name="verif_Commande" type="viewType">

<xsd:sequence>

<select>contenir.idCom</select>

<from>contenir</from>

<where>contenir.quantite<100</where>

</xsd:sequence>

</xsd:complexType>

(38)

&C

R

ègglleess ddee ttrraannssffoorrmmaattiioonn

E

Exxeemmppllee réssuullttaattss ddee llaa ttrraannssffoorrmmaattiioonn E Elémmeennttss X XMMLL ScSchheemmaa

AAttttrriibbuuttss d deess é élémmeennttss XXMMLL SScchheemmaa

T

Trraadduuccttiioonn dede lala paparrttieie s

sttaattiiqquuee ! ! " #

!

" #

$%

#!

! # & "# $%

$ !

! " #

$ % &

'

$ '( $! !

! " #

'

' (

% !

" "

" "

) * "

* "

+

* "

,

%!-

" "

. (

" "

/ ) / )

/ /

/ /

/ 0 % 1

234 5 " ! 6237

7 /

,

TTrr

aadd

uucc

ttii

oonn

dd

ee

llaa

pp

aarr

ttii

ee

ddyy

nnaa

mm

iiqq

uuee

ddee

ss

ccoo

nntt

rraa

iinn

ttee

ss

dd’’

iinn

ttéé

ggrr

iitt

éé

%''

%&$ ! !

" "

/

/ **

' #

)

8 (

/ 8 /

/ " / "

/

8 9 :

3

; ( < 7 3

" " 3 , 37 /

,

TTrr

aadd

uucc

ttii

oonn

dd

ee

llaa

pp

aarr

ttii

ee

ddyy

nnaa

mm

iiqq

uuee

dd

ee

ttrr

aaii

ttee

mm

eenn

ttss

( *

) 8

) ;

/ /

/ /

/; , / = = / ; ,

(39)

&

? * N, . - ! # - /) -) : xsd # . ))

.) 9 4 -) : . - # : )

# - ) ! )) xsd:schema! 5 )) )

/ : .) 4

K . 9=* WgestCommande.xsd » -) * 1

# 1 B 1 01 -) ) 4

<?xml version="1.0" encoding=”UTF-8” ?>

<!-- edited with XMLSPY v5 rel. 4 (http://www.xmlspy.com) by iut (linc) -->

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<xsd:annotation>

<xsd:documentation>

databaseName: db_gestCommande databaseType: Relational

Other informations </xsd:documentation>

</xsd:annotation>

<!-- définition of constraint (restriction of type) -->

<xsd:simpleType name="lib">

<xsd:restriction base="xsd:string">

<xsd:minLength value="32"/>

</xsd:restriction>

</xsd:simpleType>

<!--definition of procedure -->

<xsd:complexType name="del_Prod" type="procType">>

<xsd:sequence>

<proname>nb_produit</proname>

<proarg>1<proarg>

<body>create or replace function del_prod(int) returns int as ' delete from produit where idProd = $1; '

language 'sql';

</body>

</xsd:sequence>

</xsd:complexType>

<!--definition of view -->

<xsd:complexType name="verify_commande" type="viewType">>

<xsd:sequence>

<select>contenir.idCom</select>

<from>contenir<from>

<where>contenir.quantite<100</where>

</xsd:sequence>

</xsd:complexType>

<!--definition of trigger -->

<xsd:element name="VerifProd" type="triggerVerifProd">

<xsd:sequence>

<event>before</event>

<statement>insert</statement>

<statement>update</statement>

<action>if NEW.libelle is null then

raise exception \'Libelle produit doit être renseigné !\';

end if;

</action>

</xsd:sequence>

</xsd:element>

(40)

&%

" gestCommande.xsd)

<!-- complexType of commande -->

<xsd:complexType name="tableCommande">

<xsd:sequence>

<xsd:element name="date" type="xsd:date"/>

</xsd:sequence>

<xsd:attribute name="idCom" type="xsd:positiveInteger" use="required"/>

</xsd:complexType>

<!-- complexType of produit -->

<xsd:complexType name="tableProduit">

<xsd:sequence>

<xsd:element name="libelle" type="xsd:string" minOccurs="0"/>

<xsd:element ref="VerifProd" type="triggerVerifProd"/>

</xsd:sequence>

<xsd:attribute name="idProd" type="xsd:positiveInteger" use="required"/>

</xsd:complexType>

<!-- complexType of contenir -->

<xsd:complexType name="tableContenir">

<xsd:sequence>

<xsd:element name="quantite" type="xsd:double" minOccurs="0"/>

</xsd:sequence>

<xsd:attribute name="idCom" type="xsd:positiveInteger" use="required"/>

<xsd:attribute name="idProd" type="xsd:positiveInteger" use="required"/>

</xsd:complexType>

<!-- complexType of database -->

<xsd:element name="gestion" type="dbGestion"/>

<xsd:complexType name="dbGestion">

<xsd:sequence>

<xsd:element name="commande" type="tableCommande" minOccurs="0" maxOccurs="unbounded">

<xsd:key name="IDCommande">

<xsd:selector xpath=".//commande"/>

<xsd:field xpath="./@idCom"/>

</xsd:key>

<xsd:keyref name="IDFREFCommande" refer="IDCommande">

<xsd:selector xpath=".//contenir"/>

<xsd:field xpath="./@idCom"/>

</xsd:keyref>

</xsd:element>

<xsd:element name="contenir" type="tableContenir" maxOccurs="unbounded">

<xsd:key name="IDContenir">

<xsd:selector xpath=".//contenir"/>

<xsd:field xpath="./@idCom"/>

<xsd:field xpath="./@idProd"/>

</xsd:key>

</xsd:element>

<xsd:element name="produit" type="tableProduit" minOccurs="0" maxOccurs="unbounded">

<xsd:key name="IDProduit">

<xsd:selector xpath=".//Produit"/>

<xsd:field xpath="./@idProd"/>

</xsd:key>

<xsd:keyref name="IDFREFProduit" refer="IDProduit">

<xsd:selector xpath=".//Contenir"/>

<xsd:field xpath="./@idProd"/>

</xsd:keyref>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:schema>

5 9& " & ' @ /

(41)

1 # -) - 1 -. # 9 =-/

/- - : dbGestion 4

3.6 Conclusion

, . - ! # - ! . 1) ) -

-- . 4 # A ))1 . : 9

-) .) 9 - ) ) .)

) ! 01 . # - 4 *

- . . - ! -) ) : ) 01

G # R# 4

5 $1& ? ) )" * 0) ) 4 dbGestion.

(42)

( (

,&$

,&' ( 3 () 2

,&+ @ -

,&, (

,&* # (

(43)

' 4.1 Introduction

* -) ) . - ! # :- ) 01 - :

) .) ) 4 ) 5

-) - /- 4 -) )1 G #

- 0 ) -. ! # ) :

- / 0 4

4.2 Modélisation UML de l’extracteur

- - ) : ! 1 4 ,

- 0 # ! -) ) - -

1 9 4

D 6 5 * 5 ). ! - # : !

# )1 - ) 2) 4 /-

1 /- =D<* 1) ! ) 1) ) )

. 4

* 3 ! ) ! # - ) 2) 5

)- V - 0 * # 1 )1 4

= # ! 1

N -- 5 ! ) -

) ) 10 ! .) 11 ) 5 4

! ) ) N !

11 4

: 1) ) ! ) ) /4

-) : 1 ! )- - - 4 +

- 0 3 1 1 =U ). - #

:) 4 ) :# ) )

) -) ) 3 - 3 4

1 ) )

1 4

(44)

&

uses_result

associated

< belongs

+typeConstraint : String Constraint

+extractTables() +extractViews() +extractProcedures() +dbName : String +dbmsType : String

#owner : String

#localization : String Database

+extractAttributes() +extractConsraints() +tableName : String +attributesNumber : Integer +tupleNumber : Long

Table +viewName : String

+definition : String View

+main() +name : String

Application

+generateQuery() +body : String

Query

+triggerName : String +typeEvenement : String +body : String

Trigger

+attributeName : String +typeAttribute : String

Attribute 1

*

1

* 1

* 1

*

1 0..1 +procName : String

+body : String Procedure

1..*

1 1

*

5 $$& # ' 4 /

(45)

4.3 Mise en œuvre

)# -- -- R# 1 1 . - - ) -

- ) 1 / 0 ) =D<*! 1 5

3 =U - ) .) 9 - 5 0 4

1 . - -. N

1 =D<* .)) 10 4

") -) ) 4

) .) 9 4

4.3.1 Interrogation des SGBD hétérogènes

) =D<* / 0 1 - -- 5

- 1 / 0 # 1 4 1

) ) 4 * !

3 =U 1) ) - # 1 - /-

) 4 -. .) ) . #

. - &4' 4

4.3.2 Récupération des résultats

) ) -)) -. -) ) 1 =D<* .)) 10

-) ) 9=*4 " --

: ) - ) ! ;5;

! /- ! - ) 2) !

# 11 4 - 0 . 1

) 5 =D<* 5 4 , : -

1 / 0 =D<* 1 0 E 4 -

) -) - /- ! # : 7

# . . ! - ) 3 =D<*4

4.3.3 Construction du métaschéma XML

,-0 # : 5 - .) ) !

5 . - . 9=*4 5

.0 R# ! , *E -

9 .) . ) ) ! : - , R#

- - 5 .) 9=* 4 , ) - A

R,9 ! ) - / 9 4 + !

A 01 ) 0 . - #

&4' 4

# ) : -

A - - ) .) 9 /- - : - 5

) 4

Références

Documents relatifs

 Des traces de contrôle sécurisées et incontestables doivent être générées et maintenues pour toutes les activités de base de données qui ont un impact sur la sécurité,

Si l’on considère une base de données dédiées aux séquences nucléotides spécifiquement comme GenBank par exemple, il faut considérer qu’une séquence appartient à une

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des

La dimension sémantique des entités des schémas XML (concepts, relations, propriétés) est enrichie alors par l’apport de métaconnaissances lors d’une étude plus

est devenu une plate-forme de fouille de données à part entière, qui incorpore une riche collection d’algorithmes pour l’extraction de motifs (fréquents, fermés, générateurs,

The fact that several different hypotheses lead asymptotically to synchro- nization raises the question whether this is a general property of the sur- face reaction models. In

Afin d’encoder les relations d’adjacence entre les parties cycliques et acycliques d’une molécule, nous proposons de définir une représentation moléculaire basée sur le graphe

L’outil de reconstruction de modèles utilisé permet de reconstruire des graphes sous contraintes de distance et/ou de nombre de connexions, à partir des résultats de la