Intégration

[20 minutes]

Soit un contexte dans lequel les volumes de données sont très importants, et les données très diverses. Dans un tel contexte il est fréquent de se trouver face à un problème d'hétérogénéité des données.

On trouve, pour des données renvoyant aux mêmes informations :

  • De l'hétérogénéité dans les formats de données : BD, bureautique, tableurs, etc.

  • De l'hétérogénéité dans les structures de données : modèles différents pour gérer les mêmes données.

  • De l'hétérogénéité dans les terminologies : des noms différents pour les mêmes données.

Ces hétérogénéités posent un problème d'intégration pour pouvoir disposer d'un système d'information global dans l'entreprise.

Soit un exemple simplifié du problème : Imaginons une entreprise de vente par correspondance disposant de deux bases de données Oracle :

  • Une base de données relationnelle gérant les commandes

  • Une base de données relationnelle-objet gérant les fichiers clients

Soit les schémas logiques correspondant à ces deux bases :

CTRL+C pour copier, CTRL+V pour coller
1
-- BD Commande --
2
Produit (NumProduit:entier, Type:chaîne, Prix:réel)
3
Commande (NumFacture:entier, Produit=>Produit, Acheteur=>Personne, Quantité:entier)
4
Personne (NumPersonne:entier, Nom:chaîne, Coordonnées:chaîne)
-- BD Commande --
Produit (NumProduit:entier, Type:chaîne, Prix:réel)
Commande (NumFacture:entier, Produit=>Produit, Acheteur=>Personne, Quantité:entier)
Personne (NumPersonne:entier, Nom:chaîne, Coordonnées:chaîne)
CTRL+C pour copier, CTRL+V pour coller
1
-- BD Client --
2
Type Client : <Nom:chaîne, Prenom:chaîne, Adresse:Adresse, ChiffreAffaire:entier>
3
Type Adresse : <Numero:entier, Rue:chaîne, Ville:Ville>
4
Type Ville : <codePostal:chaîne, nom:chaîne, pays =>o pays>
5
Type Pays <Nom:chaîne>
6
tClient de Client
7
tPays de Pays
-- BD Client --
Type Client : <Nom:chaîne, Prenom:chaîne, Adresse:Adresse, ChiffreAffaire:entier>
Type Adresse : <Numero:entier, Rue:chaîne, Ville:Ville>
Type Ville : <codePostal:chaîne, nom:chaîne, pays =>o pays>
Type Pays <Nom:chaîne>
tClient de Client
tPays de Pays

Question

Proposez trois solutions différentes, pour résoudre le  problème d'intégration qui se pose dans ce cas et que vous aurez préalablement rappelé.

Expliquez les avantages et inconvénients de chaque solution.

N'hésitez pas à utiliser l'exemple pour illustrer vos propositions et éventuellement à illustrer vos propos avec des extraits de code (SQL, PL/SQL, PHP, etc.) et/ou des schémas d'architecture.