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 :
-- 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)
-- 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.
Solution
Import des données dans une nouvelle BD (extraction, transformation, chargement) : les données sont modifiées.
Intégration logique (vue logique sur les données) : les données ne sont pas modifiées, problème de performance
Déporter l'intégration sur les applications finales (au niveau applicatif dans le code) : problème de maintenance