Integration Donnees - These Bonnet - Mediation
Integration Donnees - These Bonnet - Mediation
Integration Donnees - These Bonnet - Mediation
présentée par
Philippe BONNET
pour obtenir le grade de
Docteur de l'Université de Savoie
Spécialité Informatique
Thèse préparée au sein de l'INRIA Rhône Alpes (action Médiation du GIE Dyade)
1
1 Introduction 7
1.1 Origine de l'étude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3 Plan du Manuscrit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
6 Évaluation 109
6.1 Cadre Expérimental . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
6.1.1 Modèle Analytique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
6.1.2 Environnement de simulation . . . . . . . . . . . . . . . . . . . . . . 111
6.1.3 Charge de Travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
6.2 Traitement incrémental des requêtes . . . . . . . . . . . . . . . . . . . . . . . 115
6.2.1 Temps de traitement . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
6.2.2 Nombre de soumissions pour obtenir la réponse complète . . . . . . . 120
6.3 Optimisation sous contrainte . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
6.3.1 Présentation des requêtes parachutes . . . . . . . . . . . . . . . . . . 128
6.3.2 Résultats de l'optimisation sous contrainte . . . . . . . . . . . . . . . 129
6.3.3 Comparaison des politiques de matérialisation . . . . . . . . . . . . . 130
6.3.4 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
6 Table des matières
6.4 Disponibilité des sources dans l'application Redoc . . . . . . . . . . . . . . . 134
6.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
7 Conclusion 139
7.1 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
7.2 Perspectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
A Glossaire 153
7
Chapitre 1
Introduction
1.1 Origine de l'étude
La plupart des systèmes d'information peuvent aujourd'hui être décomposés en sous-
systèmes autonomes. Chaque sous-système peut ainsi fournir à un groupe d'utilisateurs les
moyens informatiques les plus adaptés à ses besoins. Les fusions ou les regroupement d'entre-
prises conduisent naturellement à un tel morcellement du système d'information. De manière
générale, le système d'information ne peut plus être considéré comme un bloc monolithique.
Dans un hôpital par exemple, chaque service gère de manière autonome un ensemble de
logiciels : le service de chirurgie, le service de radiologie, ou le service administratif disposent
de logiciels diérents pour la gestion des actes médicaux et le suivi des patients.
Une autre facteur important pour l'évolution des systèmes d'informations est le dévelop-
pement du World Wide Web (WWW). De nombreuses sources d'informations sont désormais
accessibles à l'extérieur des organisations. Il est ainsi possible d'échanger des informations
avec des partenaires ou d'intégrer dans les processus de décisions des informations fournies
par des concurrents.
Ces évolutions des systèmes d'information conduisent à la constitution d'îlots d'informa-
tion autonomes et cependant interconnectés. Un réseau Intranet permet en eet de relier
toutes les composantes du système d'information d'une organisation. L'Internet et le WWW
permettent d'accéder des sources de données externes.
Ce grand volume d'information, qui est désormais accessible, doit pouvoir être utilisé
pour faire face au besoin qu'ont les organisations de contrôler leur activité ou de réagir
rapidement aux événements (internes ou externes). Dans un hôpital, le système d'informa-
tion doit permettre aux docteurs d'améliorer leur suivi des patients et aux gestionnaires de
contrôler les dépenses.
Dans ce contexte, un problème essentiel est de gérer l'hétérogénéité et la répartition des
diérentes sources de données. Une source fournit un service d'accès aux données qu'elle
gère sous forme de bases de données, de chiers ou de documents. Des sources de données
8 Introduction
diérentes ont en général des caractéristiques diérentes. Un serveur Notes-Domino qui ren-
voie des pages HTML sur le World Wide Web, un système de gestion de chiers structurés
AS/400 accessibles via ftp et une base relationnelle Oracle accessible via SQL*Net ont des
protocoles d'accès, des langages d'interrogation et des représentations des données très dié-
rentes. Accéder à un ensemble de sources d'informations sans outil particulier demande donc
à l'utilisateur beaucoup de compétences et de temps.
L'intégration de sources de données nécessite des outils qui prennent en charge ces pro-
blèmes de répartition et d'hétérogénéité et qui fournissent un accès ecace à un ensemble de
sources de données. Faciliter l'intégration des sources de données est l'objectif des systèmes
de médiation tels que Disco, un prototype au développement duquel nous avons participé
dans le contexte de l'action Médiation du GIE Dyade [101, 100].
Un système de médiation permet à une application d'obtenir des données provenant de
diérentes sources de données en formulant une requête. Lorsqu'une requête est soumise au
système de médiation, elle est optimisée et ensuite exécutée. Lors de l'exécution, le système
de médiation envoie des sous-requêtes vers les sources de données. Chacune d'elles renvoie
une réponse. Le système de médiation combine les données qu'il obtient pour retourner la
réponse à la requête qui lui a été posée. Dans le domaine hospitalier, par exemple, un système
de médiation peut fournir une vue uniforme sur toutes les données concernant les patients
(ces données étant gérées par les diérents services de manière autonome).
Tous les systèmes de médiation existants font l'hypothèse qu'ils peuvent accéder à toutes
les sources de données impliquées dans une requête pour fournir leur réponse. Or, selon les
caractéristiques de ces sources de données et les caractéristiques du réseau auquel elles sont
connectées, il est probable qu'une ou plusieurs d'entre elles soient indisponibles lorsqu'elles
sont contactées. Une source de données est temporairement indisponible si aucune connexion
ne peut être établie avec elle, ou si elle ne transmet pas la réponse attendue, ou encore si le
temps nécessaire pour transmettre cette réponse dépasse un délai xé.
En fait, un réseau Intranet ou Internet n'ore aucune garantie au système de médiation
que les sources de données peuvent être contactées ou qu'elles vont transmettre leur réponse
dans des délais raisonnables. Les sources de données, étant elles autonomes, n'orent pas non
plus la garantie de répondre correctement à la requête qui leur est envoyée. Le déploiement
d'un système de médiation nécessite donc la prise en compte des sources de données
indisponibles 1.
Le problème des sources indisponibles se pose dans diérents contextes. Par exemple,
dans le contexte hospitalier, une source de données est indisponible lorsque le responsable
informatique du service dans lequel elle est située décide d'eectuer une opération de main-
tenance ou en cas de congestion du réseau qui relie les diérents services. De même dans le
contexte d'une application nancière, les congestions sur l'Internet peuvent rendre indispo-
nibles les sources de données des établissements bancaires ou des places boursières qui sont
intégrées.
1. Dans la suite du document, nous considérons qu'une source est indisponible si elle ne fournit pas
la réponse à la sous-requête qui lui est envoyée dans un délai raisonnable. Une source indisponible reste
accessible : le système de médiation peut la recontacter ultérieurement.
Objectifs 9
1.2 Objectifs
L'objectif de cette thèse est d'étudier les mécanismes permettant à un système de mé-
diation de fonctionner de manière satisfaisante pour l'application qui l'utilise dans le cas où
une ou plusieurs sources de données sont temporairement indisponibles.
Le problème des sources de données indisponibles a été mentionné dans le contexte de
l'intégration de données [22, 71]. Cependant, aucune solution n'a été proposée pour prendre
en compte le problème dans son ensemble. Les systèmes existants génèrent simplement une
erreur interne lorsqu'ils détectent qu'une source de données est indisponible et l'exécution
est interrompue. L'application peut soumettre à nouveau la requête si elle souhaite obtenir la
réponse. Ainsi, une application n'obtient des données du système de médiation que si toutes
les sources de données impliquées dans sa requête sont disponibles simultanément.
Les problèmes de réseau ou de panne d'un site ont par contre été traités dans le cadre
des bases de données réparties. Les solutions proposées mettent en oeuvre des techniques
de réplication [92]. Ces techniques ne sont pas applicables aux systèmes de médiation car
elles nécessitent une collaboration étroite entre les diérentes composantes du système. Un
système de médiation qui intègre des sources de données autonomes ne dispose pas, dans
le cas général, des services qui lui permettrait de répliquer les données. De plus, certaines
sources de données s'opposent à une approche basée sur la réplication pour des raisons
techniques, politiques ou légales.
Le comportement des systèmes de médiation existant lorsqu'il sont confrontés au pro-
blème des sources indisponibles présente deux inconvénients majeurs. Premièrement, des
traitements, éventuellement coûteux, sont répétés plusieurs fois pour obtenir la réponse com-
plète. Deuxièmement, ces systèmes ne permettent pas l'extraction d'informations partielles
dont l'utilisateur pourrait se satisfaire, plutôt que d'être bloqué en attendant la réponse
complète.
Dans le cas où l'application veut absolument la réponse à sa requête, le système de
médiation doit la lui fournir ecacement. En présence de sources indisponibles, le système
ne peut pas retourner la réponse lors de la première soumission de la requête ; celle-ci doit
être soumise plusieurs fois, jusqu'à ce que le système de médiation soit capable d'obtenir
et de retourner la réponse. Lors des exécutions successives de la même requête, un système
existant refait éventuellement les mêmes opérations plusieurs fois. Lorsqu'il traite la requête
consistant à obtenir les identiants des patients qui attendent d'être opérés et pour chacun
d'entre eux sélectionne son âge, le système va commencer par obtenir les données du site
de chirurgie avant de contacter le site administratif. Si le site administratif est indisponible,
le traitement de la requête est interrompu et les données qui ont déjà été obtenues sont
ignorées : le site de chirurgie a été contacté pour rien, le temps qui a été nécessaire pour
obtenir les données de cette source est perdu.
Dans certains cas, l'utilisateur peut se contenter d'informations partielles. Lorsqu'un doc-
teur consulte tous les épisodes thérapeutiques subis par un de ses patients, il peut éventuel-
lement se contenter des données se rapportant aux interventions chirurgicales pour prendre
10 Introduction
une décision. Le système de médiation doit alors être capable d'indiquer à une application
les réponses partielles qu'il peut lui fournir et de les retourner de manière ecace.
Ces exigences nous ont conduit à aborder ce travail selon les deux axes suivants :
le traitement incrémental des requêtes Plutôt que d'attendre que toutes les sources de
données soient disponibles simultanément, le système de médiation peut construire la
réponse à la requête de manière incrémentale, en tirant parti des sources disponibles
lors des exécutions successives. Le premier objectif de cette thèse est (1) de décrire les
mécanismes qui permettent à un système de médiation de construire la réponse à une
requête de manière incrémentale et (2) de démontrer l'ecacité de cette approche.
l'extraction d'informations partielles Le deuxième objectif de cette thèse est d'étudier
comment un système de médiation peut faciliter l'extraction d'informations partielles
par une application.
Ces deux axes sont complémentaires : lorsqu'une réponse est construite de manière in-
crémentale, des informations partielles peuvent être extraites des états intermédiaires du
traitement.
Nous nous sommes attachés à ce que nos résultats puissent être intégrés dans des systèmes
de médiation existants. Nous décrivons dans ce document une architecture pour les systèmes
de médiation étendus pour le traitement incrémental des requêtes et l'extraction d'informa-
tions partielles. Nous avons déni cette architecture en intégrant de nouveaux composants
dans l'architecture classique d'un système de médiation. Nous présentons un algorithme pour
chacun de ces nouveaux composants et nous étudions les performances des systèmes étendus
de cette manière.
Chapitre 2 Ce chapitre présente un état de l'art sur les systèmes de médiation. Nous
décrivons tout d'abord plusieurs applications qui intègrent des sources de données réparties
sur un Intranet/Internet. Nous discutons ensuite des diérentes architectures possibles pour
ces applications, et notamment celle basée sur un système de médiation. Nous décrivons les
caractéristiques de plusieurs systèmes de médiation existants (des prototypes de recherche
Plan du Manuscrit 11
et des systèmes commerciaux) et nous donnons une vue globale des problèmes soulevés par
ces systèmes.
Chapitre 6 Ce chapitre est consacré à l'évaluation des algorithmes proposés dans les deux
chapitres précédents. Nous utilisons pour cela un modèle analytique et un simulateur. Ceux-
ci nous permettent d'étudier deux aspects du temps de réponse d'un système incrémental : le
nombre de soumissions nécessaires pour obtenir la réponse complète et le temps de traitement
lors de chaque soumission. Nous constatons (i) que le traitement incrémental des requêtes
permet de réduire le nombre de soumissions nécessaires pour obtenir la réponse complète
et (ii) que le traitement incrémental permet de réduire le temps de traitement en évitant la
répétition d'opérations coûteuses. Nous discutons également la capacité d'un système incré-
mental à répondre aux requêtes parachutes. Nous montrons que l'algorithme d'optimisation
décrit dans le chapitre 5 fournit un plan optimal dans la plupart des cas ; nous montrons
également, par simulation, que la politique de matérialisation des sous-requêtes partagées
permet d'améliorer les capacités du système à répondre aux requêtes parachutes.
Chapitre 2
Les systèmes de médiation
2.1 Introduction
Les systèmes de médiation ont pour objectif de favoriser l'intégration de sources de don-
nées hétérogènes et réparties. Ils fournissent à l'application un point d'entrée unique et une
vue uniforme sur un ensemble de sources de données. Celle-ci peut donc formuler des re-
quêtes impliquant des informations exportées par un sous-ensemble de sources de données
sans avoir à gérer de multiples connexions ou les particularités de chaque interface d'accès.
Nous donnons, en section 2.2, plusieurs exemples d'applications qui nécessitent l'inté-
gration de diérentes sources de données. Nous dénissons un ensemble de critères qui per-
mettent de caractériser ces applications.
Nous décrivons, en section 2.3, trois approches qui permettent de réaliser l'intégration
de sources de données : une approche naïve où l'application contacte elle même les sources
de données, une approche basée sur un entrepôt de données, et une approche basée sur
un système de médiation Nous comparons ces diérentes approches en les confrontant aux
critères dénis dans la section précédente.
Nous nous concentrons ensuite sur les systèmes de médiation. Nous présentons plusieurs
prototypes de recherche et systèmes commerciaux et nous discutons un ensemble de pro-
blèmes soulevés par de tels systèmes.
2.3 Architecture
Nous avons, dans la section précédente, présenté des applications nécessitant l'intégration
de plusieurs sources de données. Trois architectures permettent de mettre en ÷uvre de telles
applications :
l'architecture naïve, où l'intégration des sources de données est eectuée par l'applica-
tion elle même; l'application contacte chaque source pour en extraire les données.
1. star query dénote les graphes de requêtes en forme d'étoile, et chain query dénote les graphes de requêtes
en forme de chaîne.
18 Les systèmes de médiation
Utilisateur
Application
l'architecture basée sur un entrepôt de données (data warehouse) : les données que
l'application utilise, sont extraites des sources de données et stockées dans une base
de données dédiée, appelée un entrepôt de données. L'application soumet des requêtes
déclaratives à l'entrepôt de données pour en extraire les données qui l'intéressent ;
l'architecture basée sur un système de médiation. L'application soumet des requêtes
déclaratives que le système de médiation évalue en contactant directement les sources
de données.
Nous détaillons ces trois architectures ci-dessous.
Application
Entrepot
de
donnees
Extraction
médiateur.
22 Les systèmes de médiation
Utilisateur
Application
A A A
2.3.4 Bilan
De manière à comparer les trois architectures présentées dans cette section, nous repre-
nons les critères établis dans la section précédente concernant les applications. Pour chaque
critère nous discutons dans quelle mesure l'architecture naïve, l'architecture basée sur l'en-
trepôt de données ou l'architecture basée sur un système de médiation sont adaptées.
Le tableau 2.2 décrit pour chaque critère l'adéquation des trois architectures. Lorsque
l'approche entrepôt de données est possible (i.e. la fréquences des mises à jour est faible et les
sources de données permettent toutes les extractions nécessaires), elle permet un traitement
ecace de tous types de requêtes indépendamment des caractéristiques du réseau ; elle peut
Architecture 23
Caractéristiques architecture architecture basée architecture basée
des applications naïve sur un entrepôt de données sur un système
de médiation
Nombre de sources faible indiérent indiérent
Type de sources peu hétérogènes extraction possible indiérent
Fréquence indiérente faible indiérente
des mises à jour
Type de réseau inue sur indiérent inue sur
les performances les performances
Exigence de cohérence impossible possible impossible
Requêtes ad-hoc non oui oui
Type de requête prédénies toutes union de requêtes
conjonctives
Nombre de relations faible indiérent faible pour les
par requête requêtes conjonctives
Agrégats non oui non
Tab. 2.2 Adéquation des diérentes architectures aux caractéristiques des applications.
également permettre de vérier des contraintes d'intégrité entre des relations situées sur
diérents sites [113]. L'approche naïve est, elle, dicile à mettre en oeuvre (il est préférable
que les sources à intégrer soient peu nombreuses et peu hétérogènes) et ne permet que le
traitement de requêtes prédénies.
Une application basée sur un système de médiation peut être mise en oeuvre quelles
que soient les sources de données à intégrer. Elle est cependant sensible aux caractéristiques
du réseau connectant les composants du système de médiation et les sources de données.
Il est préférable que l'application ne soumette que des requêtes conjonctives ou des unions
de requêtes conjonctives, et évite les opérations telles que les agrégats qui demandent de
manipuler les collections de données dans leur ensemble.
L'architecture de médiation est la mieux adaptée aux applications que nous avons présenté
dans l'introduction. En ce qui concerne les hôpitaux basques, la fréquence des mises à jour
et des problèmes d'administration empêchent la création et la maintenance d'un entrepôt
de données. Ils ont donc choisi de remplacer leur architecture naïve par une architecture
basée sur un système de médiation. Dans le cas des catalogues documentaires (ainsi que
pour les applications nancières ou pour le guide d'achat), certaines sources ne permettent
pas l'extraction de leur contenu. Il est donc impossible d'envisager un entrepôt de données
intégrant ces sources de données.
Il est à noter que la mise en oeuvre d'une infrastructure de médiation (comme celle d'un
entrepôt de données) nécessite que les administrateurs des sources de données acceptent que
leurs données soient intégrées par le médiateur et qu'ils acceptent la charge de travail ainsi
générée. Une forme de contrat doit donc être conclue entre le système de médiation et les
sources de données qu'il intègre.
Nous discutons dans la section suivante les systèmes de médiation existants sous forme
de prototypes de recherche et de systèmes commerciaux.
24 Les systèmes de médiation
2.4 Systèmes de médiation existants
Wiederhold a introduit la notion de système de médiation [109] entre les applications
et les sources de données. Il cite Multibase comme exemple de système de médiation déjà
existant [90, 34]. Ce système permet d'intégrer diérentes bases de données autonomes.
L'émergence de l'Internet et des Intranet a permis d'envisager des systèmes de médiation
intégrant un grand nombre de sources de données relationnelles ou non, éventuellement
réparties sur un réseau à grande distance.
Nous distinguons deux catégories de systèmes de médiation : d'un côté les systèmes fédérés
dont l'objectif est l'intégration forte (permettant de formuler des requêtes et des mises à jours
sur un schéma unié) d'un petit nombre de bases de données peu hétérogènes, et d'un autre
côté, les systèmes à grande échelle dont l'objectif est de fournir un accès uniforme à un
grand nombre de sources de données fortement hétérogènes réparties sur un Intranet ou sur
l'Internet.
Pour ces deux catégories, nous présentons un ensemble de prototypes de recherche. Nous
présentons en particulier le prototype Disco que nous avons construit au sein de l'action
médiation du GIE Dyade. Nous faisons ensuite un point sur les systèmes de médiation
commerciaux disponibles sur le marché.
2.4.1.1 Multibase
Multibase [90, 68, 34] a été développé par la division Advanced Information Technology de
Computer Corporation of America 4. L'objectif du projet était de permettre l'interrogation de
bases de données existantes, réparties et hétérogènes, via un schéma global unié et un seul
langage de requête. Multibase a été utilisé dans une application de conception et production
assistée par ordinateur et dans une application de soutien logistique [98].
Le système a été déni avec les objectifs de conception suivants: (1) être général et
indépendant d'une application particulière, (2) être facilement étendu, et (3) ne pas nécessiter
de modications sur les bases de données existantes pour être mis en oeuvre. Le modèle de
données choisi est le modèle fonctionnel, et le langage de requêtes est DAPLEX.
L'architecture de Multibase correspond exactement à l'architecture des systèmes de mé-
diation, telle que Wiederhold l'a dénie. Un gestionnaire de requête global est chargé de
l'intégration des données et du traitement des requêtes (c'est le rôle du médiateur), et des
interfaces d'accès aux sources sont chargées des transformations requises pour l'intégration
d'une source particulière. L'interface entre ces deux types de composants est xée : le ges-
tionnaire de requête global envoie des sous-requêtes vers les interfaces d'accès aux sources
exprimées en DAPLEX, les données correspondantes lui sont retournées dans un format
commun à toutes les interfaces d'accès aux sources.
Les deux points essentiels dans Multibase sont l'intégration de schémas et le traitement
des requêtes. Trois niveaux de schémas sont dénis. Aux schémas locaux exprimés dans
des modèles de données diérents sont associés des schémas d'intégration exprimés, eux,
dans le modèle fonctionnel. Le schéma global fournit une vue uniée des diérents schémas
d'intégration. Des mises en correspondances ont été dénies entre le modèle fonctionnel et les
modèles relationnels, CODASYL et chier structuré pour permettre le passage des schémas
locaux au schéma d'intégration. La dénition du schéma global nécessite que soient fusionnés
les diérents schémas d'intégration. Cette fusion est implanté par un mécanisme de vues.
Les inconsistances éventuelles entre schémas d'intégration sont résolues grâce à un schéma
auxiliaire (qui dénit des données stockées par le gestionnaire de requête global).
Le traitement des requêtes pose des problèmes d'optimisation au niveau des deux types
de composants du système. Au niveau des interfaces d'accès aux sources, les sous-requêtes
exprimées en DAPLEX doivent être transformées en des requêtes vers les bases de données
locales. Pour être ecaces ces requêtes doivent prendre en compte les structures d'accès
fournies par les sources de données (CODASYL notamment). Au niveau du gestionnaire de
requête global, le problème est (1) de n'envoyer aux interfaces d'accès aux sources que des
sous-requêtes qu'elles puissent traiter et (2) de gérer les diérentes possibilités de transfert
4. Depuis rachetée par Xerox [98]
26 Les systèmes de médiation
de données entre les interfaces d'accès aux sources et le gestionnaire de requêtes global.
Un langage est fourni à l'administrateur du système pour décrire les capacités de traite-
ment des diérentes sources de données (par exemple le cas où les opérations arithmétiques
ne sont pas supportées). Chaque sous-requête destinée à une source de données est ensuite
réécrite pour garantir que seules toutes les sous-requêtes qui sont envoyées peuvent être trai-
tées. Les traitements qui ne peuvent pas être eectués par la source sont pris en charge par
le gestionnaire de requête global.
Les stratégies de transfert de données prennent en compte le coût des opérations sur
les diérents sites, et les capacités de ces sites (y compris les sources de données) à créer
des relations temporaires pour matérialiser les données extraites des sources de données et
eectuer des traitements sur ces données.
Multibase était initialement destiné à intégrer des bases de données relationnelles, des
bases de données CODASYL, et des chiers structurés. Des interfaces d'accès aux sources
locales ont été construites pour plusieurs bases de données locales dont ORACLE et Focus.
L'architecture de Multibase permet d'intégrer d'autres sources de données. Des composants
ont d'ailleurs été dénis pour faciliter la construction de nouvelles interfaces d'accès aux
sources locales.
La mise en oeuvre de Multibase a montré les limitations du modèle fonctionnel pour
l'intégration des bases de données locales. Des outils pour l'administration du schéma intégré
sont apparus nécessaires.
2.4.1.2 IRO-DB
Le système IRO-DB [47, 43] a été développé dans le cadre du projet Européen ESPRIT-
P8929. L'objectif du projet était de construire un système fédéré permettant de formuler
requêtes et mises à jour sur des bases de données relationnelles et orientées objet. Le système
a notamment permis d'intégrer des bases INGRES et ONTOS dans le cadre d'une application
de production assistée par ordinateur (Computer Integrated Manufacturing) [85].
La caractéristique principale du système IRO-DB est qu'il met en oeuvre le standard
ODMG'93 [27]. Le schéma fédéré ainsi que les schémas locaux exportés sont exprimés dans le
modèle de données objet de l'ODMG. Les données exportées par les bases de données locales
sont considérées par le système comme des objets. Le langage OML permet de manipuler
ces objets ; les requêtes sont exprimées en OQL.
L'architecture d'IRO-DB est décomposée en trois couches. La couche locale (local layer)
adapte les bases de données relationnelles ou orientées objet, appelées bases locales, au
standard ODMG. La couche de communication (communication layer) transfère les sous-
requêtes OQL destinées aux bases locales et les réponses que celles-ci fournissent. La couche
d'interopérabilité (interoperable layer) permet l'intégration de données, le traitement des
requêtes et la gestion des transactions globales.
Un des problèmes principaux de la couche interopérable est de permettre à l'application
Systèmes de médiation existants 27
de manipuler et de référencer les objets exportés par les diérentes bases de données intégrées.
Des mécanismes de mise en correspondance entre références globales et locales sont donc mis
en oeuvre ainsi que des mécanismes de caches d'objets globaux [43].
L'intégration de données consiste à dénir une vue homogène sur plusieurs schémas au
format ODMG exportés par la couche locale. Un outil graphique, l'Integrator Workbench,
aide l'administrateur du système à identier les parties communes à plusieurs schémas et à
dénir les transformations entre schémas locaux et schémas intégrés.
Le choix du modèle ODMG permettait de surmonter les limitations identiées par Mul-
tibase. Ce choix, eectué en 1993, a cependant entraîné un gros eort de développement
pour la couche interoperable [40]. De plus, ce standard étant supporté par peu de sources de
données, le développement des composants de la couche locale s'est également avéré coûteux.
2.4.2.2 Tsimmis
Tsimmis [46] est un projet de l'université de Stanford. Son objectif principal est d'étudier
les techniques qui permettent d'intégrer rapidement des sources de données structurées ou
semi-structurées 6 .
Un modèle de données semi-structuré a été déni, OEM (Object Exchange Model), pour
l'intégration des données au niveau du médiateur. Ce modèle organise les données en objets,
atomiques ou complexes, formés d'un label, d'une valeur et éventuellement d'un type et d'un
identiant unique [74]. Le modèle OEM est dit semi-structuré car chaque objet contient la
description de son type. Il n'y a donc pas de schéma décrivant les données OEM.
Médiateurs et adaptateurs exportent un ou plusieurs objets racines qui sont composés
de sous-objets. Dans le cadre de l'application des hôpitaux basques, l'adaptateur associé à
la source d'administration exporte un objet racine qui a la forme suivante (chaque paire
label, valeur est encadré par des crochets < >, les ensembles de valeurs sont encadrés par des
accolades { }, les majuscules dénotent des variables et les minuscules des constantes) :
<admin, {<id I><nom N><prenom P><adresse A><sejour S>}>
Les objets OEM sont manipulés par le langage MSL (Mediator Specication Language).
C'est un langage de règles dont la tête et le corps sont composés d'objets OEM.
A chaque source de données est associé un adaptateur. Une architecture commune et
un ensemble de composants réutilisables ont été dénis pour faciliter le développement des
6. Les données semi-structurées sont des données sans schéma xé ou uniforme [103].
30 Les systèmes de médiation
adaptateurs. Le composant principal d'un adaptateur est le converter qui se charge de la
transformation des requêtes du format médiateur au format particulier d'une source. Un
langage, QDTL (Query Description and Transformation Language), permet de congurer
ce composant, i.e. dénir les requêtes qu'accepte un adaptateur et, pour chacune d'elles, un
ensemble d'actions qui permettent de générer les commandes à envoyer à la source. Dans le
cadre de l'application des hôpitaux basques, l'adaptateur associé à la source d'administra-
tion a pour nom admin_source et il accepte toutes les sous-requêtes concernant les objets
OEM de type admin (dénis ci-dessus). En MSL, ces sous-requêtes s'expriment comme suit
(l'astérisque devant la variable dans la tête de la requête indique que tous les sous-objets
sont retournés avec l'objet racine) :
où map dénote un ensemble d'objets OEM stocké sur le médiateur et qui permet de mettre
en correspondance les identiants des diérentes sources de données.
Ajouter une nouvelle source de données nécessite (1) le développement et la conguration
d'un adaptateur et (2) la dénition dans le médiateur d'une nouvelle vue utilisateur ce qui
requiert une phase de compilation du schéma au niveau du médiateur.
L'application exprime des requêtes sur les vues utilisateurs. Dans notre exemple, le nom
des patients qui attendent d'être opérés peut être obtenu avec la requête suivante :
Tsimmis adopte une approche ascendante pour l'intégration de données : les vues expor-
tées par le médiateur sont dénies en fonction des vues exportées par les sources de données.
Systèmes de médiation existants 31
2.4.2.3 Disco
Nous avons développé Disco [101, 100] dans le contexte de l'action Médiation du GIE
Dyade. L'objectif est d'étudier les problèmes de déploiement d'un système à grande échelle.
Disco utilise le modèle relationnel : le médiateur accepte des requêtes conjonctives et
des unions de requêtes conjonctives exprimées en SQL ; chaque adaptateur exporte une vue
relationnelle de la source de données qui lui est associée. Nous avons développé des adapta-
teurs vers JDBC, Lotus Notes, des moteurs de recherche du WWW, les chiers structurés
AS/400. Le modèle relationnel s'est avéré susant dans le cadre des applications que nous
avons développées.
Nous avons déni une architecture commune à tous les adaptateurs, ainsi qu'un ensemble
de composants réutilisables et un atelier de construction d'adaptateurs. Un brevet est en
cours de dépôt concernant l'assemblage et la conguration des composants d'un adaptateur.
Un adaptateur exporte un schéma relationnel ainsi qu'une description de ses capacités
de traitement de requête [62] et des éléments concernant le modèle de coût [80]. Dans le
cadre de l'exemple des hôpitaux basques, le schéma exporté par l'adaptateur associé au site
administratif est le suivant:
CREATE TABLE admin (
id INT,
nom CHAR(30),
prenom CHAR(30),
adresse CHAR(60),
sejour INT
);
Les sous-requêtes envoyées par le médiateur aux adaptateurs sont fournies sous forme d'arbres
d'opérateurs algébriques. Chaque adaptateur transforme cet arbre d'opérateurs algébriques
en des appels vers la source de données à laquelle il est associé.
Pour enregistrer un adaptateur, l'administrateur du médiateur doit envoyer une com-
mande spécique au médiateur à travers l'interface JDBC:
INSERT WRAPPER
VALUES ('disco:adminWrapper');
Cette commande indique au médiateur qu'il doit charger dynamiquement l'adaptateur ad-
minWrapper. Une fois l'adaptateur chargé, le médiateur récupère les informations exportées
par l'adaptateur concernant le schéma, les capacités de traitement de requêtes et le modèle
de coût.
L'application peut exprimer des requêtes, via une interface JDBC, sur (a) les tables
exportées par les adaptateurs, ou (b) sur des tables crées sur le médiateur ou (c) sur des
32 Les systèmes de médiation
vues qui peuvent être dénies en fonctions des tables et des vues déjà existantes. Dans notre
exemple, le nom des patients qui attendent d'être opérés peut être obtenu avec la requête
suivante (map est une table maintenue par le médiateur):
SELECT nom
FROM admin, map, chirur
WHERE admin.id = map.aid
AND chiru.id = map.cid
AND chiru.statut = 'attente';
Nous avons mis en oeuvre Disco dans le cadre de l'application de catalogue documentaire
Redoc (décrite en section 2.2.2).
2.5 Conclusion
Nous avons déni un ensemble de critères qui permettent de caractériser une application
décisionnelle intégrant plusieurs sources de données hétérogènes réparties sur un Intranet
ou Internet. Nous avons présenté trois architectures pour de telles applications : (1) une
architecture naïve, où l'application intègre directement les sources de données, (2) une ar-
chitecture reposant sur un entrepôt de données, où les données sont extraites du système
opérationnel et stockée dans l'entrepôt de données de manière à ce que l'application puisse
y accéder et (3) une architecture basée sur un système de médiation qui accède directement
40 Les systèmes de médiation
aux sources de données et en fournit à l'application une vue uniforme. Nous avons comparé
ces diérentes architectures en fonction des caractéristiques des applications. Il apparaît que
les systèmes de médiation sont bien adaptés aux cas où les applications posent des requêtes
simples (i.e. des unions de requêtes conjonctives), où les exigences de performances ne sont
pas draconniennes et où les sources de données sont prêtes à accepter la charge de données
générées par le système de médiation.
Nous avons présenté les systèmes de médiation existants en distinguant les systèmes
fédérés (qui permettent une intégration forte d'un faible nombre de sources de données
faiblement hétérogènes) des systèmes à grande échelle (qui permettent l'accès à des sources
de données dont les capacités de traitement sont très diérentes et éventuellement réparties
sur un réseau à grande distance). Nous avons également abordé les problèmes posés par de
tels systèmes et les solutions qui ont été proposées.
Il existe aujourd'hui peu d'applications reposant sur des systèmes de médiation. On
peut trouver plusieurs raisons à cet état de fait. Premièrement, les applications d'aide à la
décision de type OLAP (On-Line Analytical Processing) nécessitent des requêtes complexes
ou des techniques d'analyse de données qui ne peuvent s'appliquer que sur des entrepôts de
données. De telles manipulations ne peuvent s'eectuer directement sur les sources de données
opérationnelles. Les systèmes de médiation ne peuvent donc pas être utilisés pour implanter
de telles applications. Une contribution de ce chapitre est de dénir les caractéristiques des
applications pour lesquelles un système de médiation est bien adapté.
Deuxièmement, un certain nombre d'applications intègre de manière ad-hoc un ensemble
de sources de données. Ces applications ont été développées parce que les sources de données
ne pouvaient pas être prises en compte par les systèmes de médiation existants. Les travaux
sur les adaptateurs et la prise en compte de sources de données disparates donnent aux
systèmes de médiations un argument convaincant sur ce point.
Troisièmement, l'intégration des sources de données par un système de médiation pose
des problèmes de performances. Les travaux sur les caches sémantiques proposent un premier
élément de réponse. De manière plus générale, le temps de réponse d'un système de médiation
est nécessairement supérieur au temps de réponse d'un système intégré. Il est donc important
que le système permette à l'utilisateur de suivre le déroulement du traitement d'un requête
et lui indique constamment l'état dans lequel il se trouve, les réponses qu'il a obtenue des
sources de données, le débit avec lequel il obtient ces réponses ou encore les opérations qu'il
exécute. La validité de cette approche a été démontrée dans le cas du calcul d'agrégats [55].
Enn, dans un système de médiation se pose le problème de la disponibilité des sources
de données lorsqu'elles sont contactées pendant le traitement d'une requête. Ce problème ne
se pose pas dans les entrepôts de données puisque les données sont rapatriées des sources
de données de manière régulière. Ce problème est un frein au déploiement des systèmes
de médiation. Cette thèse étudie ce problème et propose des solutions pour permettre un
fonctionnement satisfaisant des systèmes de médiation en présence de sources de données
indisponibles.
41
Chapitre 3
Systèmes de médiation et sources de
données indisponibles
Ce chapitre est consacré au problème que nous étudions dans cette thèse : le fonctionne-
ment d'un système de médiation en présence de sources de données indisponibles.
Nous précisons tout d'abord les causes d'indisponibilité des sources de données. Nous
discutons ensuite les services qu'un système de médiation doit fournir, en mode dégradé,
pour permettre aux applications d'interagir avec les utilisateurs de manière satisfaisante.
Nous résumons l'impact de ces services sur le système de médiation.
Nous discutons ensuite les limitations des systèmes de médiation existants et l'insusance
de plusieurs approches proposées pour traiter le problème des sites indisponibles ou des
données manquantes dans un système de bases de données.
Nous faisons apparaître en conclusion les deux fonctions principales que doit fournir un
système de médiation pour gérer l'indisponibité d'une ou plusieurs sources de données de
manière satisfaisante. Ces deux fonctions sont détaillées dans les chapitres suivants.
Lors de l'exécution d'une requête, le système de médiation n'a aucune garantie que les
sources de données qu'il contacte sont disponibles. En eet, l'autonomie des sites et les
caractéristiques des réseaux ne permettent pas de garantir la disponibilité des sources de
données.
42 Systèmes de médiation et sources de données indisponibles
Chaque source de données contactée par un système de médiation est autonome. Si une
panne survient sur une source de données ou si une opération de maintenance est eectuée,
le système de médiation n'en est pas informé et cette source ne fournit pas la réponse à
la requête qui lui est envoyée. Gray et Reuter [50] ont identié les principales raisons pour
lesquelles un serveur est hors-service. Ils distinguent les interruptions dues à l'environnement
(panne de courant, intempéries, etc.), les interruptions dues à l'administration, à la main-
tenance ou à la réparation du système, et les interruptions dues à une erreur matérielle ou
logicielle. Par ailleurs, la source étant autonome, elle gère la charge de travail qu'elle accepte
du système de médiation. En cas de charge excessive, la source de données peut refuser des
connexions ou bien renvoyer un message explicite indiquant son indisponibilité (en utilisant
le code de retour 405 pour un serveur HTTP par exemple). Enn, la source de données peut
modier le format dans lequel elle exporte ses données. Tant que l'adaptateur qui lui est
associé n'est pas modié, le médiateur ne peut pas obtenir la réponse et considère que la
source de données est indisponible.
Les réseaux qui permettent au système de médiation de contacter les sources de don-
nées n'orent pas de garantie sur la disponibilité des sources de données : il se peut que la
connexion vers une source de données ne puisse pas être établie ou soit rompue. Un problème
matériel sur le réseau ou une congestion de celui-ci peuvent empêcher qu'une connexion soit
établie entre le système de médiation et une source de données même s'ils sont tous deux en
service. Une fois la connexion établie, il se peut qu'elle soit rompue si elle ne peut pas être
eectuée dans un temps déterminé. Un protocole de transport tel que TCP, utilise un timer
pour contrôler l'établissement d'une connexion. Si la connexion ne peut pas être établie au
bout de 75 secondes, alors la demande de connexion échoue [111]. Une ou plusieurs autres
demandes doivent être formulées pour que la connexion soit établie. TCP retransmet 13 fois
un message avant de rompre la connexion. Le temps entre chaque retransmission est calculé
dynamiquement; il est compris entre 1 et 64 secondes [111].
Nous avons de manière générale peu de résultats quantitatifs concernant la disponibilité
des sources de données dans les applications basées sur des systèmes de médiation. Ceci est
dû au petit nombre d'applications basées sur une infrastructure de médiateur et à la diculté
d'obtenir des informations sur la disponibilité des sources de données dans ces applications.
Nous présentons en section 6.4 une étude de la disponibilité des sources dans le cadre de
l'application Redoc. De manière plus générale, l'étude [106] fournit quelques éléments concer-
nant les connexions aux sources de données réparties sur l'Internet. Cette étude concerne
la disponibilité et la latence des serveurs WWW; nous considérons que ceux-ci constituent
l'essentiel des sources de données dans le contexte de l'Internet. Les expériences relatées
dans cette étude consistent à contacter, à plusieurs moments de la journée, 540 serveurs
WWW situés en Europe et aux États Unis à partir de l'Université de Virginie (connexion
à 1.5 mbit/sec vers l'Internet). Plusieurs aspects ressortent de cette étude. Premièrement,
il apparaît qu'au moins 90% des connexions vers les serveurs WWW peuvent être établies.
Deuxièmement, il apparaît qu'en aucun cas 100% des connexions peuvent être établies. Troi-
sièmement, une grande variation apparaît dans la disponibilité des serveurs WWW : 80%
des serveurs nord-américains étaient disponibles pour 95% des connexions alors que 5% des
serveurs étaient disponibles pour moins de 80% des connexions. Enn, il apparaît que 97%
Problèmes dues aux sources de données indisponibles 43
des connexions réussies sont établies en moins de 10 sec : il semble donc raisonnable, dans
ce contexte, de xer un temps limite pour létablissement de la connexion ou l'absence de
transfert (une limite inférieure à celle imposée par le protocole de transport).
Ordre sur les réponses approchées Les diérents travaux dénissent un ordre partiel
sur les relations approchées pour dénir qu'une approximation est plus informative qu'une
autre. Dans APPROXIMATE ainsi que dans Buneman et al., l'ensemble des réponses ap-
prochées munies de cet ordre partiel constitue un treillis avec un élément minimal, l'élément
le moins informatif, et d'un élément maximal, la réponse exacte.
Application aux sources indisponibles Ces techniques sont avant tout adaptées aux
données manquantes ou aux inconsistances entre relations. Elles peuvent cependant être
appliquées aux cas où des sources de données sont indisponibles et où donc des relations
entières sont manquantes. APPROXIMATE requiert des informations sémantiques sur les
diérentes relations impliquées dans une requête. Sans ces informations sur les domaines
des diérents attributs le système ne peut pas établir l'approximation initiale d'une relation
indisponible et il échoue. MULTIPLEX, lui, fournit une approximation uniquement dans
le cas où une vue matérialisée (ou une source alternative) couvre partiellement la relation
indisponible. Ces deux systèmes nécessitent donc des conditions particulières pour prendre
en compte les relations indisponibles.
Les techniques proposées par Buneman et al. [23] permettent, elles, de prendre en compte
des relations indisponibles. Considérons l'exemple de la règle datalog suivante
3.3.4 Bilan
Les trois approches que nous avons présentées sont insusantes pour fournir une solu-
tion correcte au problème posé. Premièrement, les techniques de réplication ne peuvent en
général pas être appliquées avec des sources de données dont les capacités de traitement des
requêtes sont limitées. Deuxièmement, les techniques de traitement de requêtes sont lourdes
à mettre en oeuvre puisqu'elles requièrent la dénition d'un moteur d'exécution et donc d'un
optimiseur spécique. Troisièmement, les caches sémantiques ne sont pas mis en oeuvre dans
les systèmes de médiation existants et leur utilisation lorsque des sources sont indisponibles
pose un certain nombre de problèmes.
Ces approches orent cependant des aspects intéressants. Les techniques de traitement
approché des requêtes fournissent un cadre concernant les informations partielles. Elles xent
notamment les relations entre les réponses partielles qui sont fournies et la réponse exacte qui
ne peut pas être calculée. L'utilisation des caches sémantiques montre l'intérêt d'utiliser des
données matérialisées sur le médiateur. Ces données pourraient être utilisées pour obtenir
la réponse complète de manière incrémentale ou fournir à l'application des informations
partielles.
3.4 Conclusion
Le déploiement des systèmes de médiation fait apparaître le problème des sources de
données indisponibles lors du traitement d'une requête. Ce problème est particulièrement
1. Cet algorithme est utilisé dans Information Manifold. Dans ce système cependant les vues ne sont pas
matérialisées mais dénissent les données exportées par les adaptateurs.
Conclusion 51
aigu dans des environnements où un grand nombre de sources de données sont intégrées via
un réseau à grande distance tel qu'Internet.
Face à ce problème, les systèmes existants génèrent une erreur interne. Ils imposent, par
conséquent, que toutes les sources de données soient disponibles simultanément pour fournir
la réponse à une requête. De plus, ils ne produisent aucune information partielle concernant
la requête avant que la réponse complète ne soit fournie.
Les approches du problème des sites indisponibles ou des données manquantes ne sont
pas satisfaisantes dans le contexte de notre étude. C'est le cas de la réplication, qui permet
d'améliorer la disponibilité dans les systèmes distribués, et du traitement incrémental des
requêtes, qui permet de gérer les données manquantes ou inconsistantes dans une base de
données. La réplication d'une source de données ne peut dans le cas général pas être mise
en oeuvre. Le traitement approché des requêtes est lourd à mettre en oeuvre et n'est pas
adapté au cas où des relations entières sont indisponibles. D'autre part, l'utilisation d'un
cache sémantique pour fournir des informations partielles lorsqu'une ou plusieurs sources de
données pose plusieurs problèmes non résolus.
Nous avons fait apparaître deux aspects complémentaires concernant le traitement des
requêtes en présence de sources de données indisponibles qui nous permettent de dénir une
nouvelle approche :
le système doit produire ecacement la réponse complète. Plutôt que de reprendre le
traitement d'une requête dans sa totalité lorsqu'une source de données est indisponible,
le système pourrait proter des sources disponibles et ainsi obtenir la réponse complète
incrémentalement;
dans certains cas, l'utilisateur veut accéder des informations partielles concernant sa
requête avant que la réponse complète ne soit produite. Le système pourrait proter
des informations accumulées pendant le traitement de la requête en présence de sources
indisponibles pour aider l'utilisateur à extraire des informations partielles pertinentes.
Les deux chapitres suivants seront consacrés aux deux aspects mentionnés ci-dessus: le
traitement incrémental des requêtes et l'extraction d'informations partielles.
52 Systèmes de médiation et sources de données indisponibles
53
Chapitre 4
Traitement incrémental des requêtes
4.1 Introduction
Un système de médiation contacte un ensemble de sources de données lors de l'exécution
d'une requête. Il envoie une sous-requête à chacune d'elles et récupère le résultat qu'elles
fournissent ; il peut ainsi construire la réponse et la renvoyer à l'application. Or rien ne
garantit au système que toutes les sources de données peuvent lui renvoyer un résultat
lorsqu'il les contacte. En eet les congestions du réseau ou la surcharge des serveurs peuvent
rendre certaines sources temporairement indisponibles 1.
Si une ou plusieurs sources de donnés sont indisponibles lorsque le système les contacte,
ce dernier ne peut pas construire la réponse à la requête qui lui a été soumise. En eet le
système a besoin des résultats de toutes les sources de données qu'il contacte pour fournir
une réponse complète à l'application.
Les systèmes existants ne fonctionnent correctement que dans le cas où toutes les sources
de données sont disponibles. Lorsqu'une source de données est indisponible, le système consi-
dère qu'il s'agit d'une erreur interne. L'évaluation de la requête est interrompue et un message
d'erreur est retourné à l'application. Celle-ci doit soumettre la requête à nouveau, éventuel-
lement plusieurs fois, pour obtenir la réponse complète. A chaque fois, le système contacte
le même ensemble de sources de données, commence à combiner les réponses obtenues des
sources disponibles et arrête l'exécution si une des sources s'avère être indisponible. Un sys-
tème existant présente donc les limitations suivantes lorsqu'il doit traiter plusieurs fois la
même requête :
le travail qui est eectué avec les sources disponibles est perdu si une source est indis-
ponible ; il n'est pas réutilisé lors des exécutions successives ;
1. Nous avons listé les principales causes d'indisponibilité des sources de données dans la section 3.1.1. Il
est à noter que ces observations sont valables même si un cache sémantique (Cf section 3.3.3) est utilisé par
le système de médiation. En eet, la requête résiduelle (qui complète les données du cache dans la réécriture
de la requête initiale) concerne un ensemble de sources de données.
54 Traitement incrémental des requêtes
toutes les sources de données doivent être disponibles simultanément pour que le sys-
tème retourne une réponse.
Notre objectif est de proposer une extension des systèmes de médiation existants de
manière à dépasser ces limitations et améliorer le temps de réponse lorsqu'une même requête
doit être soumise plusieurs fois pour obtenir la réponse complète.
Exemple Considérons le traitement d'une requête ad-hoc dans le cadre de l'applica-
tion du complexe hospitalier (voir section 2.2.1) : trouver les informations personnelles et
radiologiques des patients dont le séjour dépasse 10 jours et qui attendent d'être opérés
Les relations PATIENT, SURGERY et RADIOLOGY sont situées sur trois sources de données
diérentes, i.e. respectivement la source du service d'administration, la source du service de
chirurgie et la source du service de radiologie. La relation MAP met en correspondance les
identiants des patients dans les diérentes relations. C'est une relation auxiliaire dénie
pour l'intégration de schéma ; elle est stockée par le système de médiation.
Considérons maintenant que la source du service de radiologie n'est pas disponible lorsque
le système exécute cette requête.
Un système existant commence l'exécution de la requête, il contacte les sources de don-
nées en fonction du plan d'exécution qui a été choisi, il obtient éventuellement des données
des sources disponibles. Lorsqu'il contacte la source de radiologie un problème survient. Le
traitement de la requête est arrêté. Les données déjà obtenues des sources disponibles sont
ignorées et un message d'erreur est retourné à l'application. L'application soumet ultérieu-
rement la même requête. Le système génère le même plan d'exécution pour la requête, il
commence donc par contacter les sources qu'il avait déjà contactées lors de l'exécution pré-
cédente. Il ne retourne une réponse que si toutes les sources de données sont disponibles
simultanément. En particulier, si une source de données (par exemple celle du service d'ad-
ministration) qui était disponible lors de la première exécution est maintenant indisponible,
le système ne peut pas construire la réponse : il n'a pas conservé les données qu'il a déjà
obtenu de cette source. 2
Notre approche est basée sur l'observation que le système de médiation peut tirer parti des
sources disponibles lors des exécutions successives d'une même requête. Plutôt que d'arrêter
le traitement d'une requête lorsqu'une source de données est indisponible et d'ignorer les
résultats déjà obtenus des sources disponibles, un système de médiation peut s'assurer qu'il
récupère les résultats fournis par les sources disponibles, qu'il les conserve et qu'il les réutilise
lors des exécutions successives.
Architecture d un système incrémental 55
Nous proposons donc une approche incrémentale du traitement des requêtes. Les
problèmes pour mettre en ÷uvre un traitement incrémental des requêtes sont les suivants:
4.2.1 Composants
Les composants spéciques au système incrémental correspondent à de nouvelles étapes
dans le traitement des requêtes.
Détection des sources indisponibles Après que l'optimiseur ait généré un plan d'exé-
cution, le système incrémental procède à une phase de détection des sources indisponibles.
2. Par abus de langage, nous nommons système incrémental un système de médiation qui met en ÷uvre
un traitement incrémental des requêtes.
56 Traitement incrémental des requêtes
Requete
Optimiseur
Construct
Reponse Requete
incrementale
Nous décrivons, en section 4.3, l'algorithme sense qui identie un ensemble de sources in-
disponibles et détermine les portions du plan d'exécution qui peuvent être évaluées avec les
sources (a priori) disponibles et les portions du plan d'exécution qui ne peuvent pas être
évaluées à cause des sources indisponibles.
On peut se poser la question suivante : pourquoi introduire une phase de détection des
sources disponibles et ne pas attendre qu'un problème survienne durant l'exécution de la
requête? La réponse est la suivante : en procédant à une première identication des sources
indisponibles, le système obtient des informations qu'il peut utiliser pour décider d'une stra-
tégie d'évaluation diérente de celle imposée par le moteur d'exécution. C'est important,
notamment dans le cas où le moteur d'exécution arrête l'évaluation dès qu'un problème
survient en contactant une source.
Inversement, on peut se demander : pourquoi ne pas détecter les sources indisponibles
avant la phase d'optimisation? Pour pouvoir utiliser les informations concernant la disponi-
bilité des sources, le système doit être capable d'associer des portions de la requête courante
aux diérentes sources de données. C'est précisément la phase d'optimisation qui permet de
dénir quelles sous-requêtes sont destinées aux diérentes sources de données. Pour mettre
en ÷uvre un traitement incrémental des requêtes il n'est donc pas utile de détecter les sources
indisponibles avant la phase d'optimisation.
Notre algorithme considère qu'une source est disponible si le système peut récupérer
le résultat qu'elle envoie. Des sources qui sont ainsi détectées disponibles peuvent se révéler
indisponibles. C'est le cas lorsque le résultat fourni ne peut pas être acheminé vers le système
Architecture d un système incrémental 57
de médiation dans un délai raisonnable. Dans ce cas, l'exécution est interrompue et les
portions du plan d'exécution qui peuvent être évaluées sont redénies.
Lorsque l'ensemble du plan d'éxécution peut être évalué (i.e. toutes les sources sont dé-
tectées disponibles), le moteur d'exécution est invoqué pour construire la réponse complète.
Lorsque seules certaines portions du plan d'exécution sont évaluables (i.e. une ou plusieurs
sources de données sont indisponibles), le système incrémental procède a une phase de ma-
térialisation.
4.2.2 Fonctionnement
Dans un système existant, lorsqu'une requête est soumise, l'optimiseur génère un plan
d'exécution qui est ensuite évalué. Si toutes les sources de données sont disponibles, la réponse
est construite et retournée à l'application. Au cas où un problème survient lorsqu'une source
de données est contactée , une erreur interne est générée. Les résultats intermédiaires produits
par le moteur d'exécution sont supprimés. Un message d'erreur est retourné à l'application.
Dans un système incrémental, lorsqu'une requête q est soumise, le système l'optimise
et procède à la détection des sources indisponibles. Si toutes les sources sont disponibles,
Architecture d un système incrémental 59
la réponse est construite de manière classique. Si une ou plusieurs sources de données sont
indisponibles, le système procède à la phase de matérialisation : les données des sites dispo-
nibles sont obtenues et stockées dans des relations temporaires. Une requête incrémentale
est construite en utilisant ces relations temporaires. Une fois que la requête incrémentale est
construite, une notication est retournée à l'utilisateur.
Le modèle d'interaction d'un système incrémental est : <q; n1; qi1; n2; : : : ; qik ; a>, où ni
est une notication retournée à l'application, qii est une requête incrémentale, et a est la
réponse complète. Une requête incrémentale diérente est, en général, utilisée à diérentes
étapes de la séquence puisque le système progresse partiellement vers la réponse complète a
en fonction des sources disponibles.
Exemple Considérons à nouveau la requête présentée dans l'exemple précédent. Cette
requête est soumise à un système de médiation incrémental. La source du service de radiologie
n'est pas disponible lorsque le système exécute la requête.
Un système incrémental détecte d'abord que cette source de données est indisponible et
matérialise ensuite les données obtenues à partir des sources de chirurgie et d'administration
qui sont, elles, disponibles. Dans notre exemple, une relation temporaire V1 est crée pour
stocker le résultat de la jointure entre les relations PATIENT, MAP et SURGERY. V1 résulte de
l'expression suivante :
INSERT INTO V1
SELECT *
FROM PATIENT, MAP, SURGERY
WHERE PATIENT.ID = MAP.PID AND PATIENT.STAY > 10
AND MAP.SID = SURGERY.ID AND SURGERY.STATUS = 'WAITING';
Une notication est retournée à l'application. Cette notication lui permet d'accéder à la
requête incrémentale que le système a construit. L'application décide de la soumettre au sys-
tème de manière à obtenir la réponse complète. Dans notre exemple la requête incrémentale
générée est la suivante :
4.2.3 Implantation
L'implantation des nouveaux composants mentionnés ci-dessus concerne essentiellement
le médiateur. L'optimiseur classique n'est pas aecté. Des informations particulières doivent
60 Traitement incrémental des requêtes
être obtenues concernant les opérateurs algébriques ; il est possible, pour gérer ces infor-
mations de modier les opérateurs ou de manipuler une structure de données annexe. Les
adaptateurs sont eux impactés : ils doivent être capables de détecter les sources indisponibles.
La notication que le système retourne à l'application quand il ne peut pas construire
de réponse à la requête qui lui a été soumise peut être implantée sans modier une inter-
face standard telle que JDBC. Elle peut être dénie comme un type particulier d'exception
retourné par le système de médiation.
Tous les algorithmes que nous décrivons dans les sections suivantes prennent en entrée
un plan d'exécution. Les feuilles de ce plan sont des sous-requêtes soumises aux sources de
données. Les noeuds intérieurs sont des opérateurs algébriques classiques, des jointures par
exemple. La gure 4.2 décrit un plan d'exécution possible pour la requête présentée dans
les exemples précédents. Les lignes pleines relient les opérateurs exécutés sur le médiateur.
Les lignes pointillés relient les opérateurs exécutés sur les sources de données. L'opérateur
submit, toujours situé sur le médiateur, marque l'envoi d'une sous-requête vers une source
de données (via un adaptateur).
Nous utilisons ce plan d'exécution dans le reste du chapitre pour illustrer le fonctionne-
ment des diérents algorithmes.
Π
submit
RADIOLOGY submit
σ σ
PATIENT SURGERY
Fig. 4.2 Plan d'exécution pour la requête trouver les patients dont le séjour dépasse 10
jours et qui attendent d' être opérés
renvoie un message explicite indiquant son indisponibilité, ou encore parce que le format des
données retournées par la source a été modié), et (2) de décider que le temps de réponse
d'une source de données n'est pas raisonnable. Nous considérons encore que les adaptateurs
implantent un mécanisme spécique pour détecter qu'une connexion ne peut pas être établie
ou doit être rompue : si la connexion ne peut pas être établie dans un délai inférieur à un délai
donné (i.e. un paramètre du système) alors la source est considérée comme indisponible ; de
même, si aucune donnée n'a été reçue après un délai donné la source est considérée comme
indisponible.
L'algorithme sense est détaillé dans la gure 4.3. Cet algorithme descend récursivement,
et en parallèle, les diérentes branches du plan d'exécution. Quand une sous requête desti-
née à une source de données est rencontrée, l'algorithme teste si cette source de données est
disponible en demandant à l'adaptateur qui lui est associé si une réponse peut être obtenue.
Si c'est le cas, la source est considérée comme disponible, sinon elle est indisponible. L'algo-
rithme sense examine toutes les sources de données en parallèle, superposant ainsi les délais
d'accés aux sources. Une fois les sources de données contactées, le plan d'exécution est par-
couru récursivement des feuilles vers la racine. Chaque noeud dont tous les enfants sont tous
disponibles est marqué disponible (i.e. évaluable); les autres sont marqués indisponibles. Une
fois que le plan est parcouru entièrement, la racine est marquée disponible ou indisponible.
Les sous-plans marqués disponibles peuvent être évalués avec les sources de données qui sont
en état de fournir des réponses.
Une source de données qui est détectée disponible dans un premier temps peut s'avérer
être indisponible lors de l'exécution (dans le cas où elle fournit sa réponse trop lentement).
Dans ce cas, l'exécution est suspendue et l'algorithme sense est appliqué à nouveau. Les
portions du plan d'exécution qui sont évaluables sont ainsi redénies.
62 Traitement incrémental des requêtes
I
Π
I D
submit
D D
RADIOLOGY
MAP
D D
submit submit
σ σ
PATIENT SURGERY
Exemple Nous reprenons notre exemple et nous considérons que la source du service
radiologie est indisponible. La gure 4.4 représente le plan d'exécution annoté obtenu en
exécutant l'algorithme de détection des sources. Le plan d'exécution est parcouru récur-
sivement. La connexion avec la source du service radiologie ne peut pas être établie. Par
conséquent l'opérateur qui contacte cette source est marqué indisponible (représenté par un
I sur la gure). Les opérateurs qui contactent les autres sources sont marqués disponibles
(et annotés avec un D sur la gure). Les opérateurs dont tous les ls sont disponibles sont
marqués disponibles. Le sous-arbre qui comprend la jointure des relations MAP, PATIENT et
SURGERY est donc marqué disponible. La racine du plan d'exécution est elle marquée indis-
ponible puisqu'un de ses ls est indisponible. 2
I V1
submit materialize
RADIOLOGY D
D D
MAP
D D
submit submit
σ σ
PATIENT SURGERY
Fig. 4.6 Plan d'exécution annoté après l'introduction des opérateurs de matérialisation.
construire tmp sont détruites. Si durant la matérialisation, l'espace eectivement utilisé est
supérieur à l'espace restant disponible, alors la relation temporaire courante est détruite.
Autrement, l'espace qui a été eectivement utilisé pour matérialiser le sous-plan est soustrait
de l'espace restant pour les matérialisations.
Nous étudions les caractéristiques de cet algorithme dans la section 6.2.2.
Exemple Reprenons notre exemple, et considérons que la politique max est appliquée
lors de la phase de matérialisation et que l'espace de stockage est susant. La gure 4.6
illustre le plan d'exécution qui est obtenu en introduisant l'opérateur de matérialisation
(materialize) à la racine du sous-plan (map ./ (patient ./ surgery). La relation temporaire
V1 est créée pour stocker le résultat produit par ce sous-plan. 2
En résumé, l'algorithme de matérialisation contacte un sous-ensemble des sources de don-
nés disponibles et créé des relations temporaires pour stocker les données qu'elles fournissent
en fonction de l'espace de stockage dont il dispose. Le fonctionnement de l'algorithme est
illustré lors de l'évaluation en section 6.2.2.
Fig. 4.7 Construction de la requête incrémentale. La fontion map remplace les occurences
des variables en fonction d'un mapping donné.
68 Traitement incrémental des requêtes
associe à chacune des variables ainsi dénies l'ensemble des variables de renommage de la
requête initiale à laquelle elle correspond. Dans le cas où la variable est générée à partir d'un
opérateur matérialisé, cette variable est associée à toutes les relations couvertes par ce sous-
arbre. Dans notre exemple, le tableau de mise en correspondance contient les associations
suivantes: {(r1, {map, patient, surgery}), (r2, radiology)}. La liste de projection est obtenue
à partir de l'opérateur project à la racine du plan d'exécution. Cette liste de projection
est transformée en utilisant le tableau de mise en correspondance de manière à ce que les
variables de renommage référencées dans la liste de relations soient utilisées dans la liste
de projection: {r1.name, r1.room, r2.id, r2.comment}. La liste de conditions est obtenue
récursivement à partir des opérateurs de sélections et de jointures (uniquement à partir
d'un opérateur de jointure dans notre exemple). Ici aussi les conditions sont transformées
en utilisant la table de mise en correspondance: {r1.rid = r2.id}. La requête incrémentale
construite à partir de ce 4-uplet est la suivante:
SELECT r1.NAME, r1.ROOM, r2.ID, r2.COMMENT
FROM V1 r1, RADIOLOGY r2
WHERE r1.RID = r2.ID;
Choix des vues à matérialiser Le problème de matérialiser une partie d'un plan d'exé-
cution étant donné un espace de stockage limité a été abordé dans diérents contextes. Des
techniques de sélection de vues (view selection) ont été développées pour choisir quelles vues
Conclusions et perspectives 69
matérialiser dans un plan d'exécution étant donnés les coûts de mise à jour et un espace de
stockage limité dans un entrepôt de données [52] [67]. Ces techniques ne correspondent pas
au cadre de notre étude. Premièrement, elles considèrent les coûts de mise à jour que nous
ne considérons pas. Deuxièmement, l'objectif de ces techniques est de fournir une solution
optimale. Cet objectif n'est pas raisonnable dans notre contexte, d'une part, parce que les
estimations de taille des sous-requêtes qui doivent être utilisées pour la sélection de vues ne
sont pas ables, et d'autre part, parce que le problème de l'espace de stockage limité est
relativement marginal dans notre étude (l'espace de stockage n'est pas cher); nous sommes
donc intéressés par une solution simple qui garantisse l'exécution des requêtes avec l'espace
de stockage alloué.
Chapitre 5
Extraction d'informations partielles
5.1 Introduction
Un utilisateur peut parfois se contenter d'une réponse partielle 1 à la requête qu'il a
posée. Notamment dans le cas où une ou plusieurs sources de données sont temporairement
indisponibles, un système de médiation ne peut pas construire la réponse complète à une
requête les concernant ; il peut par contre fournir des informations partielles. Si l'on considère
la requête ad-hoc issue de l'application du complexe hospitalier permettant de trouver les
informations administratives et les informations radiologiques des patients dont le séjour
dépasse 10 jours et qui attendent d'être opérés, le nom des personnes qui attendent d'être
opéré peut représenter, du moins dans un premier temps, une réponse partielle satisfaisante.
Dans le cas de l'application Redoc, l'utilisateur peut en général se contenter d'un sous-
ensemble de la réponse complète.
Quelles sont les informations partielles que le système est capable de fournir?
Comment l'application interagit-elle avec le système pour extraire des informations
partielles? Comment l'application communique-t-elle à l'utilisateur la signication de
ces informations partielles?
Comment l'utilisateur communique-t-il à l'application les informations partielles qui
l'intéressent ou non?
1. Nous avons dans [11]et [14] utilisé le terme réponse partielle pour désigner la notication retournée à
l'utilisateur. Nous utilisons dans ce document une dénition plus intuitive de ce terme (cf. le glossaire de
l'annexe A).
74 Extraction d informations partielles
Nous sommes dans un scénario où l'application a soumis une requête et le système ne peut
pas construire de réponse exacte car une ou plusieurs sources de données sont indisponibles.
Nous considérons que le système de médiation met en oeuvre le traitement incrémental des
requêtes décrit dans le chapitre précédent.
Le premier problème est de dénir quelles sont les informations partielles que le système
peut fournir. Nous distinguons trois cas de gure : (i) les données partielles peuvent être
obtenues en contactant des sources de données alternatives dont le contenu correspond , au
moins partiellement, à celui des sources de données indisponibles ; (ii) les données partielles
peuvent être obtenues d'un cache sémantique, i.e. de réponses à des requêtes déjà exécutées ;
(iii) dans le cadre d'un système incrémental, les données partielles peuvent être extraites des
relations temporaires où sont stockées les données obtenues des sources disponibles. Nous
nous concentrons dans ce chapitre sur ce dernier aspect : les données partielles que le
système peut fournir ont été obtenues des sources disponibles lors de l'exécution
de la requête initiale.
Le deuxième problème concerne l'interaction entre l'application et le système pour l'ex-
traction d'informations partielles. Cette extraction peut être implicite : si le système ne peut
pas construire la réponse exacte à la requête qui lui est posée, alors il renvoie des informations
partielles. C'est l'approche choisie par les techniques de traitement approché des requêtes
(voir section 3.3.2), ou par Information Manifold (voir section 2.4.2.1). La relation entre
la réponse partielle et la réponse exacte est dénie une fois pour toutes, c'est par exemple
la relation d'inclusion dans Information Manifold. L'application ne connaît cependant pas
la signication exacte des informations partielles qu'elle obtient. Une alternative est que
l'extraction des informations partielles soit explicite. L'application indique au système de
médiation les informations partielles qu'elle souhaite extraire. Le moyen naturel pour une
application de spécier les données qu'elle souhaite extraire est de formuler une requête.
Denition 5 (Requête parachute) Nous appelons requête parachute une requête qui
permet d'obtenir de l'information partielle au cas où la requête initiale ne peut pas être
évaluée.
Nous nous intéressons dans le reste du chapitre à l'approche explicite et à l'utilisation de
requêtes parachutes.
Exemple Dans l'exemple de requête ad-hoc issu de l'application hospitalière permettant
de trouver les informations administratives et les informations radiologiques des patients dont
le séjour dépasse 10 jours et qui attendent d'être opérés, une requête parachute permettant
à l'utilisateur d'accéder à des données partielles pourrait être : trouver le nom et le numéro
de chambre des patients qui attendent d'être opérés
SELECT PATIENT.NAME, PATIENT.ROOM
FROM PATIENT, MAP, SURGERY
WHERE PATIENT.ID = MAP.PID
AND MAP.SID = SURGERY.ID
AND SURGERY.STATUS = 'WAITING';
Introduction 75
2
L'utilisation des requêtes parachutes pose deux problèmes essentiels : comment l'appli-
cation peut-elle formuler des requêtes parachutes et comment le système peut-il évaluer ces
requêtes parachutes?
comment le système décide-t-il quelles sont les informations partielles qu'il permet
d'extraire?
comment l'application peut- elle prendre en compte ces indications pour générer des
requêtes parachutes?
comment l'application peut- elle communiquer avec l'utilisateur pour lui permettre de
sélectionner les requêtes parachutes qui l'intéressent?
Dans ce scénario les requêtes parachutes sont générées après que la requête initiale (ou
la requête incrémentale) ait été évaluée. Un exemple de séquence d'interaction est donc
<q; n1; 1; 1 ; qi1; : : : ; nk ; qik ; a>, où q désigne la requête initiale, i une requête parachute, i
la réponse à une requête parachute, i.e. une réponse partielle, qi1 une requête incrémentale, ni
une notication renvoyée par le système lorsque la réponse complète ne peut pas être fournie
et a désigne la réponse complète. Il est bien sûr possible que l'utilisateur se contente de la
réponse à une requête parachute et ne demande pas la réponse complète à sa requête initiale.
Les requêtes parachutes et les requêtes incrémentales peuvent être mélangées librement. Nous
appelons ce modèle d'interaction un modèle sans contrainte car l'optimisation de q n'est pas
contrainte par la connaissance de i.
Dans le deuxième scénario, l'application permet à l'utilisateur, lorsqu'il formule une re-
quête, d'indiquer les informations partielles qu'il peut gérer. On peut par exemple considé-
rer que l'interface utilisateur des hôpitaux basques permet, lorsqu'une requête ad-hoc est
formulée, d'indiquer quels attributs sont indispensables pour que le résultat soit intéres-
sant et quels attributs ou quelles relations peuvent être omis de la réponse. Ainsi, dans
ce scénario, l'application peut générer un ensemble de requêtes parachutes associées à la
requête initiale. Le problème dans ce cas pour le système de médiation est de tirer parti
de la connaissance a priori des requêtes parachutes qui intéressent l'utilisateur pour aug-
menter ses chances d'y apporter une réponse dans le cas où une ou plusieurs sources de
76 Extraction d informations partielles
données sont indisponibles. Nous dénissons le modèle sous contrainte où le système de mé-
diation optimise simultanément la requête initiale et les requêtes parachutes pour assurer
que les informations nécessaires à l'évaluation de ces dernières se trouveront dans l'état du
médiateur (sous réserve que les sources de données concernées par les requêtes parachutes
soient disponibles). Un exemple de séquence d'interaction dans un système sous contrainte
est <(q; 1; 2 ); (n1; 1; 2); (i1 ; 3); : : : ; a>. Les requêtes parachutes sont soumises avec la
requête initiale. La réponse aux requêtes parachutes peut être obtenue une fois que la noti-
cation est retournée à l'utilisateur.
Generation de requetes
Q PQ
parachutes
Informations systeme
le système et des indications fournies par l'utilisateur? (4) Comment présenter à l'utilisateur
la ou les requêtes parachutes générées? Nous discutons chacun de ces points ci-dessous.
Indications fournies par les système Nous nous concentrons dans ce chapitre sur les
informations partielles obtenues à partir des états intermédiaires d'un traitement incrémen-
tal des requêtes. Les informations partielles sont donc extraites des relations temporaires
qui stocke les résultats des sous-requêtes disponibles matérialisées par le système incrémen-
tal (la phase de matérialisation dans un système incrémental est décrite dans le chapitre
précédent). Le système indique à l'application les informations partielles qu'il permet d'ex-
traire en donnant une liste de vues matérialisées, i.e. la liste des sous-requêtes qui ont été
matérialisées.
1111
0000
0000
1111
0000
1111
0000
1111
0000
1111
0000
1111
0000
1111
0000
1111
0000
1111
0000
1111
0000
1111
0000
1111
0000
1111
0000
1111
0000
1111
0000
1111
(e)
Fig. 5.2 Relation entre réponse complète et réponse partielle (en grisé) : (a) la réponse
partielle est en (a) un sous-ensemble, en (b) un sur-ensemble, en (c) un sous-ensemble
généralisé, en (d) un sur-ensemble généralisé de la requête initiale. (e) représente le cas où
la réponse complète et la réponse partielle ont une intersection non vide mais où la relation
entre les deux ensembles ne peut pas être établie.
utilisateur plus complexe (qui donne les moyens à l'utilisateur de spécier la relation entre
la requête initiale et la requête parachute) et d'implanter un algorithme de génération de
requêtes parachutes.
La gure 5.2 représente les diérentes relations qui peuvent exister entre une réponse
partielle et la réponse complète. Nous nous intéressons dans la suite du chapitre uniquement
aux cas où tous les attributs d'une réponse partielle apparaissent dans la réponse complète.
Cette hypothèse est restrictive, car elle empêche une réponse partielle de contenir des attri-
buts n'apparaissant pas dans la requête initiale. Cette hypothèse est cependant raisonnable ;
elle signie que l'utilisateur peut se passer de certains attributs qui sont projetés dans la
requête initiale.
De manière informelle un réponse partielle peut :
(a) être un sous-ensemble de la réponse complète, elle contient les mêmes attributs et
moins de tuples ;
(b) être un sur-ensemble de la réponse complète, elle contient les mêmes attributs et
plus de tuples (tous les tuples de la réponse complète apparaissent dans la réponse
partielle) ;
(c) être un sous-ensemble généralisé de la réponse complète, elle contient moins d'at-
tributs et moins de tuples (ou éventuellement autant) que la réponse complète ;
Génération de requêtes parachutes 79
(d) être un sur-ensemble généralisé de la réponse complète, elle contient moins d'attri-
buts et plus de tuples (ou éventuellement autant) que la réponse complète ;
(e) avoir une intersection non nulle avec la réponse complète sans qu'aucune des re-
lations ci-dessus ne soit vériée. La réponse partielle contient moins d'attributs (ou
éventuellement autant) que la réponse complète. Elle contient des tuples qui n'appa-
raissent pas dans la réponse complète et il existe des tuples de la réponse complète qui
n'apparaissent pas dans la réponse partielle.
Ces relations entre les réponses partielles qui sont intéressantes pour l'utilisateur et la
réponse complète sont traduites en des relations entre les requêtes parachutes et la requête
initiale. Les dénitions des relations de sous-ensemble, sur-ensemble, sous-ensemble généralisé
et sur-ensemble généralisé concernant les requêtes sont dénies comme suit.
Les ordres de Hoare et de Smyth sont dénis en section 3.3.2. Il est à noter que lorsque
Q1 est un sous-ensemble généralisé de Q2 alors Q2 n'est pas un sur-ensemble généralisé de
Q1 .
Indiquer une relation acceptable entre une réponse partielle et la réponse complète est
un moyen pour l'utilisateur de spécier les réponses partielles qui l'intéressent. L'utilisateur
peut interagir avec l'application de manière plus précise et spécier les attributs qu'il veut
absolument voir apparaître dans la réponse partielle et ceux qui peuvent en être absents. Il
peut éventuellement indiquer les conditions qui peuvent être relâchées ou renforcées.
80 Extraction d informations partielles
Exemple En pratique l'interaction entre l'application et l'utilisateur peut être assez
simple. Dans le cas de l'application du complexe hospitalier, il est possible d'étendre l'inter-
face graphique pour permettre à l'utilisateur de spécier les attributs et les relations dont il
a absolument besoin et ceux dont il peut se passer. 2
Exemple Dans le cas de Redoc, l'interface utilisateur permet une recherche par mots-
clés sur un ensemble de sources. La requête initiale générée par l'application est une union
sur les relations exportées par les diérentes sources de données. Lorsqu'une ou plusieurs
sources de données sont indisponibles, les données obtenues des sources disponibles forment
un sous-ensemble de la réponse complète. Il n'est donc pas nécessaire au niveau de l'interface
utilisateur de demander quelle relation peut exister entre la réponse partielle et la réponse
complète. Il sut de demander à l'utilisateur s'il est intéressé par un sous-ensemble de la
réponse complète. 2
Communication des informations partielles Une fois les requêtes parachutes générées,
l'application doit les présenter à l'utilisateur pour que celui-ci choisisse les réponses partielles
qu'il souhaite obtenir ou simplement pour qu'il prenne connaissance de la signication précise
des réponses partielles qu'il obtient.
Une possibilité pour l'application est de présenter explicitement la requête parachute, par
exemple, en achant le code SQL de la requête. Il est beaucoup plus facile à un utilisateur de
comprendre du code SQL que d'en écrire 2. Si la requête a été formulée de manière graphique,
avec une interface QBE par exemple, la requête parachute peut être présentée comme un
formulaire QBE pré-rempli. Une formulation de la requête en langage naturel peut permettre
une meilleure acceptation par l'utilisateur nal.
Une autre possibilité est de présenter les éléments de la requête qui permettent à l'utili-
sateur de comprendre précisément le sens des réponses partielles qu'il reçoit. Dans le cadre
de l'application Redoc par exemple, il sut de présenter la liste des sources disponibles pour
que la réponse partielle soit parfaitement identiée.
5.2.2 Algorithme
5.2.2.1 Exemple et Problèmes
Pour illustrer les problèmes liées à la génération de requêtes parachutes, nous prenons un
exemple plus complexe que celui du complexe hospitalier, nous reviendrons sur cet exemple
2. C'est du moins ce que défend A.Motro.
Génération de requêtes parachutes 81
à la n de cette section.
Exemple Un concessionnaire de voitures utilise une application qui repose sur un système
de médiation. Ce dernier intègre quatre sources de données : la première de ces source décrit
les constructeurs et les modèles de voitures allemandes, la deuxième source donne le prix des
voitures allemandes, la troisièmes source décrit les constructeurs et les modèles de voitures
italiennes, la quatrième source donne le prix des voitures italiennes, et la cinquième source
donne la couleur des modèles de voitures européennes. Le concessionnaire pose la requête
suivante : trouver les modèles et le prix de voitures italiennes et allemandes disponibles en
rouge. L'application génère donc la requête suivante qu'elle soumet au système de médiation :
SELECT ITALIAN_CAR.MANUF, ITALIAN_CAR.MODEL, ITALIAN_PRICE.PRICE,
CAR_COLOR.COLOR
FROM ITALIAN_CAR, ITALIAN_PRICE, CAR_COLOR
WHERE ITALIAN_CAR.MODEL = CAR_COLOR.MODEL
AND ITALIAN_CAR.MODEL = ITALIAN_PRICE.MODEL
AND CAR_COLOR.COLOR = 'RED'
UNION
SELECT GERMAN_CAR.MANUF, GERMAN_CAR.MODEL, GERMAN_PRICE.PRICE,
CAR_COLOR.COLOR
FROM GERMAN_CAR, GERMAN_PRICE, CAR_COLOR
WHERE GERMAN_CAR.MODEL = CAR_COLOR.MODEL
AND GERMAN_CAR.MODEL = GERMAN_PRICE.MODEL
AND CAR_COLOR.COLOR = 'RED' ;
submit submit
Π submit submit
Π submit submit
Π σ Π σ
ITALIAN_PRICE GERMAN_PRICE
ITALIAN_CAR Π GERMAN_CAR Π
CAR_COLOR CAR_COLOR
Fig. 5.3 Plan d'exécution pour la requête trouver les modèles et le prix de voitures italiennes
et allemandes disponibles en rouge .
Considérons maintenant le cas où la sources de données décrivant les couleurs et la
source de données donnant le prix des voitures allemandes sont indisponibles. Le système
de médiation incrémental détecte l'indisponibilité de ces sources et procède à une phase de
matérialisation (le plan d' exécution choisi est présenté sur la gure 5.3). La politique de
82 Extraction d informations partielles
matérialisation des feuilles est utilisée. L'espace de stockage nécessaire étant disponible, trois
relations temporaires sont créées :
V1 contient tous les modèles de voitures italiennes
SELECT MANUF, MODEL FROM ITALIAN_CAR ;
La gure 5.4 représente le contenu de ces trois relations temporaires par rapport à la réponse
complète.
Si l'utilisateur n'impose pas de relations entre la requête initiale et les requêtes parachutes,
il doit pouvoir obtenir les modèles, les constructeurs et les prix des voitures italiennes, les
modèles et constructeurs de voitures allemandes ainsi que les modèles et constructeurs de
voitures allemandes et italiennes. 2
V1
V2
MANUF MODEL PRICE COLOR
V3
Fig. 5.4 Position des relations temporaires stockées sur le médiateur (V1, V2, V3) par
rapport à la réponse complète (représentée par une table possédant deux colonnes - de gauche
à droite le constructeur, le modèle de voiture, le prix et la couleur).
Le problème de la génération des requêtes parachutes est de grouper les vues exportées
par le système de manière à obtenir une information partielle la plus informative et la plus
complète possible.
Génération de requêtes parachutes 83
5.2.2.2 Algorithme gen-n-pq
Pour répondre à ce problème nous avons déni l'algorithme gen-n-pq. Cet algorithme
génère un ensemble de requêtes parachutes étant donnés :
Dans un premier temps, l'algorithme gen-n-pq associe à chacune des requêtes conjonc-
tives Qi, l'ensemble des vues qui correspondent à ses sous-requêtes. On obtient ainsi une
association entre chaque Qi et un ensemble de vues. La deuxième étape de l'algorithme
consiste à combiner certaines des sous-requêtes associées à Qi en respectant les conditions
de sélection et de jointure de celle-ci. La troisième étape consiste à établir les unions pos-
sibles entre les requêtes parachutes générées dans l'étape 2. Les requêtes obtenues lors de la
deuxième et de la troisième étape sont des requêtes parachutes potentielles. Dans un dernier
temps, la relation qui existe entre la requête initiale et ces requêtes parachutes potentielles
est établie. Seules sont conservées les requêtes parachutes dont la relation avec la requête
initiale correspond à la relation R requise par l'utilisateur.
Notre algorithme tire parti du fait que les vues Vi sont des sous-requêtes des Qi (où Qi
est une requête conjonctive). Nous faisons les observations suivantes :
Etape 2 Etant donné une requête conjonctive Qi et un ensemble de vues V1, : : :, Vk (qui
sont ses sous-requêtes), le problème est de trouver les sous-ensembles maximum de vues qui
peuvent être joints en respectant les conditions exprimées dans Qi . L'objectif est d'obtenir
des requêtes parachutes qui se rapprochent le plus possible des blocs, Qi, de la requête
initiale.
Notre algorithme supprime de Qi tous les éléments qui n'apparaissent pas dans les Vi.
On peut se représenter qu'à partir du graphe de requête de Qi , on enlève toutes les relations
n'apparaissant pas dans les vues ainsi que les conditions qui leurs sont associées. On remplace
les éléments du graphe (relations et conditions) correspondant aux vues par les Vi. Le fait
que les Vi soient des sous-requêtes de Qi nous assure que ce remplacement peut s'eectuer
sans perte d'information. On obtient donc des sous-graphes connectés qui dénissent des
jointures entre les diérentes vues Vi. La représentation déclarative de chacun de ces sous-
graphes connecté est une requête parachute.
Plus précisément l'algorithme est subdivisé en cinq parties :
PQ1 V2
MANUF MODEL PRICE COLOR
V2
PQ2
Exemple Une requête parachute, PQ1, est obtenue en joignant les vues V1 et V2 sur le
modèle de voiture. On obtient la requête parachute suivante, illustrée sur la gure 5.5:
SELECT MANUF, MODEL, PRICE
FROM V1, V2
WHERE V1.MODEL = V2.MODEL ;
86 Extraction d informations partielles
Une autre requête parachute, PQ2, est obtenue en sélectionnant les attributs MANUF et
MODEL de la vue V3 (qui ne peut être jointe avec aucune autre vue) :
PQ3 PQ1
PQ2
Fig. 5.7 Représentation de la réponse à la requête parachute PQ3 par rapport à la ré-
ponse complète (représentée par une table possédant deux colonnes - de gauche à droite le
constructeur, le modèle de voiture, le prix et la couleur). Intuitivement, la réponse parachute
couvre les colonnes constructeur, et modèle de voiture, i.e. la portion de la réponse à PQ1
se rapportant à ces attributs et la réponse à PQ2 dans son intégralité.
Exemple La gure 5.7 représente la requête parachute générée dans cette troisième
étape. Elle concerne les attributs MANUF et MODEL ; c'est l'union entre les modèles de voitures
italiennes et allemandes :
2
88 Extraction d informations partielles
Etape 4 L'objectif de cette étape est de dénir la relation qui existe entre les requêtes
parachutes qui ont été générées dans les deux étapes précédentes et la requête initiale. Les
informations obtenues lors des étapes précédentes permettent de dénir la relation entre une
requête parachute et la requête initiale en eectuant des tests simples.
A chaque bloc d'une requête parachute est associé un bloc Qi de la requête initiale. Cette
information permet d'établir la relation entre la requête parachute et la requête initiale :
si chaque bloc de la requête parachute PQi contient dans sa clause select toutes les
tables qui apparaissent dans le bloc de la requête initiale auquel il est associé, alors
PQi est un sous-ensemble de Q. En eet, les requêtes parachutes construites lors de
l'étape 2 sont obtenues en enlevant d'un bloc Qi de la requête initiale les relations qui
n'apparaissent pas dans les vues exportées par le système. Si toutes les relations de Qi
apparaissent dans les Vi alors la requête parachute qui est générée dans l'étape 2 est
équivalente à Qi. L'union de plusieurs requêtes parachutes équivalente à des Qi est un
sous-ensemble de la requête initiale ;
si les blocs de la requête parachute PQi sont associés à tous les blocs Qi de la requête
initiale, alors PQi est un sur-ensemble généralisé de Q. En eet, lors de l'étape 2 chaque
requête parachute est obtenue en supprimant des attributs de la liste de projection et
des conditions par rapport au bloc de la requête initiale auquel il est associé. Chacun
des blocs de PQ est donc un sur-ensemble généralisé d'un bloc de Q. Pour que l'union
des blocs PQi soit un sur-ensemble généralisé de Q, il est donc susant de garantir
que ces blocs PQi sont associés à tous les blocs de Q ;
dans tous les autres cas, l'algorithme garantit seulement que l'intersection entre PQ et
Q est non vide.
L'algorithme retourne les requêtes parachutes dont la relation à la requête initiale est
conforme à la relation R souhaitée par l'utilisateur.
Exemple PQ3 est un sur-ensemble généralisé de la requête initiale. Les requêtes para-
chutes PQ1 et PQ2 ne sont ni des sous-ensembles, ni des sur-ensembles généralisés de la
requête initiale.
L'utilisateur n'ayant pas imposé de relation entre la requête initiale et la requête para-
chute l'algorithme retourne trois requêtes parachutes : PQ1 qui dénote les modèles de voitures
allemandes, PQ2 qui dénote le modèle et le prix des voitures italiennes, et PQ3 qui dénote
les modèles de voitures allemandes et italiennes. 2
Exemple Le cas de l'application du complexe hospitalier est beaucoup plus simple.
La requête posée est toujours trouver les informations administratives et les informations
radiologiques des patients dont le séjour dépasse 10 jours et qui attendent d'être opérés:
SELECT PATIENT.NAME, PATIENT.ROOM, RADIOLOGY.ID, RADIOLOGY.COMMENT
FROM PATIENT, MAP, SURGERY, RADIOLOGY
WHERE PATIENT.ID = MAP.PID AND PATIENT.STAY > 10
Génération de requêtes parachutes 89
AND MAP.SID = SURGERY.ID AND SURGERY.STATUS = 'WAITING'
AND MAP.RID = RADIOLOGY.ID;
L'utilisateur indique de son côté qu'il accepte toutes les requêtes parachutes qui peuvent
être générées.
La première étape de l'algorithme est triviale : la requête initiale étant une requête
conjonctive, la vue exportée par le système lui est naturellement associée. La deuxième étape
est également très simple, puisqu'une seule vue est exportée : V1. La requête parachute PQ1
est générée
SELECT NAME, ROOM
FROM V1
V3 matérialise la sous-requête
SELECT RADIOLOGY.ID, RADIOLOGY.COMMENT
FROM RADIOLOGY
90 Extraction d informations partielles
L'utilisateur indique encore qu'il accepte toutes les requêtes parachutes qui peuvent être
générées.
La requête initiale étant conjonctive, les deux vues V2 et V3 lui sont associées lors de la
première étape. La deuxième étape permet d'obtenir deux sous-graphes connectés à partir
de la requête initiale. Les requêtes parachutes qui sont générées sont :
PQ2 :
SELECT NAME, ROOM
FROM V2
PQ3 :
SELECT ID, COMMENT
FROM V3
Ces requêtes parachutes sont des sur-ensemble généralisés de la requête initiale. Comme
précédemment, la troisième étape ne produit rien et l'algorithme gen-n-pq génère les requêtes
parachutes PQ2 et PQ3. 2
5.2.3 Discussion
Les requêtes parachutes générées par gen-n-pq, référencent uniquement les relations tem-
poraires stockées par le système de médiation incrémental . Elles extraient donc les données
sans nécessiter de mécanisme particulier pour leur évaluation. Le travail de réécriture en
fonction des relations matérialisées est eectué par gen-n-pq.
Un problème pour implanter cet algorithme est de déterminer dans quelle mesure un
système peut fournir un ensemble de vues à l'algorithme gen-n-pq tout en respectant une
interface standard telle que JDBC. L'accès aux dénitions des vues est une fonctionnalité
classique pour l'administrateur d'une base de données. Elle est notamment prévue dans
JDBC. Il est possible de spécier qu'une relation du catalogue correspond à une vue et
d'associer au nom de la table une chaîne de caractère qui peut notamment décrire la sous-
requête qui est matérialisée. la mise en oeuvre de gen-n-pq n'impacte donc pas l'interface
d'un système de médiation tel que Disco qui supporte l'interface JDBC.
Nous avons, dans [12], dénit l'algorithme gen-1-pq. Cet algorithme permet de générer
une requête parachute lorsque la requête initiale est conjonctive. Cet algorithme a plusieurs
limitations. Premièrement, il garantit que des produits cartésiens ne sont pas introduits
dans la requête parachute. Il existe donc des cas de gures où aucune requête parachute
n'est générée alors que des données ont été obtenues des sites disponibles, par exemple dans
tous les cas où le graphe de requête initiale a une forme de chaîne et une des relations du
milieu de la chaîne est indisponible. Deuxièmement, cet algorithme ne permet pas de prendre
Optimisation sous contrainte 91
en compte les unions de requêtes conjonctives. L'algorithme gen-n-pq permet de surmonter
ces limitations.
L'algorithme gen-n-pq s'applique au cas où les vues exportées par le système sont des
sous-requêtes de la requête initiale. Est il possible de généraliser cet algorithme pour prendre
en compte les vues stockées dans un cache sémantique? Le principe des quatre étapes de notre
algorithme est applicable au cas général où les vues sont quelconques : il s'agit toujours (1)
d'identier les vues se rapportant aux blocs de la requête initiale, (2) d'eectuer les jointures
entre ces vues tout en respectant les conditions de la requête initiale, on obtient ainsi un
premier lot de requêtes parachutes, (3) d'eectuer les unions possibles entre les requêtes
parachutes ainsi générées et (4) d'établir la relation entre les requêtes parachutes et la requête
initiale. La mise en oeuvre de chacune de ces étapes est cependant plus complexe dans le cas
général, car aucune simplication ne peut a priori être appliquée. Il semble ainsi nécessaire
d'utiliser un algorithme de réécriture utilisant les vues (i) dans l'étape 1 pour reconnaître les
vues associées à un bloc de la requête initiale, (ii) dans l'étape 2 pour introduire les vues dans
le graphe de requête initial, (iii) et dans l'étape 4 pour établir la relation entre les requêtes
parachutes et la requête initiale.
Un autre problème est de prendre en compte d'autres informations que le système peut
fournir pour la génération de requêtes parachutes. Il serait par exemple intéressant d'étudier
l'utilisation des dépendances fonctionnelles ou des contraintes d'intégrité stockées dans le
système pour la génération de requêtes parachutes.
5.3.1 Architecture
Nous dénissons un système de médiation incrémental sous contrainte, où l'optimisation
de la requête initiale est contrainte par la connaissance des requêtes parachutes. Ainsi, les
sous-requêtes communes à la requête initiale et aux requêtes parachutes peuvent être identi-
ées. Cette information permet de dénir une politique de matérialisation spécique pour sto-
cker le résultat des sous-requêtes partagées. De cette manière le système sous contrainte ga-
rantit que les requêtes parachutes peuvent être évaluées si les sources de données qu'elles im-
pliquent sont disponibles. Les deux politiques de matérialisation d'un système sans contrainte
n'orent pas cette garantie. La politique de matérialisation des sous-arbres maximums (max)
peut perdre des éléments de réponse à une requête parachute en combinant une sous-requête
92 Extraction d informations partielles
Requete Requetes
initiale parachutes
Optimiseur
sous contrainte
Construct
Reponse Requete
incrementale
intéressante pour les requêtes parachutes avec une autre sous-requête qui ne l'est pas. La
politique de matérialisation des feuilles du plan d'exécution (feuilles) ne garantit pas, si l'es-
pace de stockage est limité, qu'une sous-requête sans intérêt (du point de vue des requêtes
parachutes) ne sera pas matérialisée à la place d'une sous-requête nécessaire à l'évaluation
d'une ou plusieurs requêtes parachutes.
La gure 5.8 présente l'architecture d'un système incrémental sous contrainte. L'optimi-
seur doit être étendu pour identier les sous requêtes partagées entre la requête initiale et les
requêtes parachutes. Une nouvelle politique de matérialisation peut ainsi être mise en oeuvre.
Nous détaillons notre algorithme d'optimisation sous contrainte dans la section suivante.
identier les sous-requêtes partagées entre la requête initiale et les requêtes parachutes ;
construire des plans d'exécution ecaces pour la requête initiale et les requêtes para-
chutes basés sur ces sous-requêtes partagées.
Notre algorithme procède en trois étapes. La première étape construit les sous-requêtes
partagées (SRP) entre la requête initiale et les requêtes parachutes. Une fois ces SRP iden-
tiées, il s'agit de décider comment elles vont être matérialisées. C'est le rôle de la deuxième
étape de proposer des stratégies de découpage des SRP en vue de leur matérialisation. Enn,
dans la troisième étape, un plan d'exécution optimal de la requête initiale est généré pour
chacune de ces stratégies. La stratégie la moins coûteuse est retenue et un plan d'exécution
est construit pour chacune des requêtes parachutes.
E2
E3
Par abus de notation, nous écrivons qu'un ensemble de littéraux est contenu dans une
requête, s'il est contenu dans le corps de cette requête.
Exemple Soient l1 et l2 dénis comme suit :
l1 := { map(PID; SID; RID); surgery(SID;0 WAITING0; _);
radiology(RID; Rcomment; _); patient(PID; Pname; Proom; Stay; _; _); Stay > 10g
et
l2 := { map(PID; SID; _); surgery(SID;0 WAITING0; _);
patient(PID; PName; Proom; Stay; PAddress; _); Stay > 10 }
On a l2 l1 2
Nous utilisons la notion de containment mapping pour dénir l'intersection de deux
requêtes : l'ensemble maximal de littéraux contenu dans les deux requêtes.
PQ1
SRP2
PQ3
SRP1
SRP3 PQ2
SRP4
Fig. 5.10 Représentation de l'ensemble des sous-requêtes partagées entre une requête Q et
trois requêtes parachutes PQ1, PQ2 et PQ3.
La gure 5.10 illustre l'ensemble des sous-requêtes partagées entre une requête Q et trois
requêtes parachutes PQ1, PQ2 et PQ3. Il existe, dans cet exemple, quatre sous-requêtes
partagées.
96 Extraction d informations partielles
5.3.2.2 Etapes de l'algorithme d'optimisation
Nous décrivons maintenant les trois étapes de notre algorithme d'optimisation sous
contrainte.
Etape 1 Le problème est d'identier l'ensemble des sous-requêtes partagées (SRP), étant
donné la requête initiale q et un ensemble de requêtes parachutes 0 n.
La brique de base de cette étape est l'algorithme 2-requêtes-srp qui isole la SRP de deux
requêtes, i.e. l'intersection de deux requêtes. Cet algorithme est détaillé sur la gure 5.11. La
SRP est constituée des littéraux communs aux deux requêtes. Initialement, les littéraux com-
muns les plus généraux sont construits en introduisant de nouvelles variables. Les constantes
et les égalités entre variables de plusieurs littéraux sont par la suite introduites dans la SRP
si elles apparaissent dans les deux requêtes. L'algorithme 2-requêtes-srp utilise la notion de
containment mapping que nous avons déni ci-dessus.
in: deux requêtes conjonctives qi et qj
out: la SRP entre qi et qj
2-requêtes-srp (qi , qj ) {
soit x le corps de qi
eacer tous les littéraux de x dont le prédicat n'apparait pas dans un littéral du corps de qj
remplacer toutes les variables et constantes dans x par des variables
les containment mapping sont construits entre (1) x et qi et entre (2) x et qj
l'intersection de ces deux mappings est appelée b,
i.e. b associe des variables de x à des constantes ou dénit des relations d'égalités entre variables de x
b est appliqué à x pour obtenir la SRP entre qi et qj
}
Fig. 5.11 Construction de la sous-requête partagée (SRP) entre deux requêtes conjonctives.
L'algorithme 2-requêtes-srp est utilisé pour construire l'ensemble des SRP entre la requête
initiale et toutes les requêtes parachutes 0 n. Il sert dans un premier temps à identier les
SRP entre la requête initiale et chacune des requêtes parachutes. Il permet ensuite d'énumérer
toutes les intersections possibles entre plusieurs requêtes parachutes.
L'ensemble des SRP est construit en suivant les sept sous-étapes suivantes :
Sous-étape 1.1 Utiliser l'algorithme 2-requêtes-srp pour construire l'intersection entre
la requête originale q et chacune des requêtes parachutes. L'intersection ainsi obtenue
avec la requête parachute i est notée Ii1 . L'ensemble des intersections de niveau 1, noté
I 1 , correspond aux intersections entre une requête parachute et la requête initiale..
Sous-étape 1.2 Si I 1 ne contient qu'un seul élément ou est vide alors eectuer direc-
tement la sous-étape 1.5, sinon eectuer la sous-étape 1.3. Le niveau d'intersection l est
Optimisation sous contrainte 97
initialisé à 1. L'ensemble des intersections de niveau l correspondent aux intersections
non vides entre la requête initiale et l requêtes parachutes.
Sous-étape 1.3 Pour chaque paire d'éléments dans I l générer leur intersection, en
utilisant l'algorithme 2-requêtes-srp. L'ensemble des intersections ainsi obtenu forme
l'ensemble I l+1
Sous-étape 1.4 l := l+1. Si I l contient un seul élément ou si cet ensemble est vide,
alors eectuer la sous-étape 1.5, sinon eectuer à nouveau la sous-étape 1.3.
Sous-étape 1.5 Dénir le niveau maximum d'intersection : si I l est vide alors lmax :=
l-1, sinon lmax := l. Initialiser l'ensemble des SRP avec l'ensemble des intersections de
niveau maximum : SRP := I lmax .
Sous-étape 1.6 Si lmax == 1 alors retourner SRP ; sinon lmax := lmax - 1.
Sous-étape 1.7 Chaque élément de I lmax est réécrit en fonction des l SRP de SRP
en utilisant un algorithme de type Answering Queries Using Views 5 : Ii max = SRP0 [
[ SRPm [ Rklmax , où Rkllmax est l'ensemble des littéraux qui n'apparaissent pas dans
les SRP déjà dénis. Si Rk n'est pas vide alors SRP = SRP [ {Rk }. lmax :=
max l max
lmax - 1. Répéter la sous-étape 1.6.
L'objectif de ces sous-étapes est d'identier l'ensemble des sous-requêtes partagées (SRP)
entre la requête initiale et les requêtes parachutes. Chaque SRP est de la forme Q \ : : : PQi
\ : : : \ PQj . Si nous prenons l'exemple de la gure 5.10 :
Q \PQ1 \ PQ2 \ PQ3
Q \PQ1 \ PQ2 \ PQ3
Q \PQ1 \ PQ2 \ PQ3
Q \PQ1 \ PQ2 \ PQ3
Q \PQ1 \ PQ2 \ PQ3
Q \PQ1 \ PQ2 \ PQ3
Q \PQ1 \ PQ2 \ PQ3
Dans une première phase, les sous-étapes 1.1 à 1.5 permettent d'obtenir toutes les inter-
sections entre Q et une ou plusieurs requêtes parachutes. La sous-étape 1.1 permet d'obtenir
les intersections entre la requête initiale et chaque requête parachute : Q \PQi . La sous-étape
1.1 permet d'obtenir les intersections entre la requête initiale et chaque requête parachute :
Q \PQi. Ces intersections forment l'ensemble des intersections de niveau 1. Les sous-étapes
1.2 à 1.4 permettent d'obtenir toutes les intersections de niveau l, i.e. l'intersection entre
5. Par abus de language nous décrivons un algorithme de type answering queries using views appliqué à
des ensembles de littéraux. Il sut d'associer, à chaque ensemble de littéraux, une tête, composée d'un nom
de prédicat quelconque et de l'ensemble des variables qu'il contient pour pouvoir appliquer cet algorithme.
Un algorithme de type answering queries using views permet de réécrire une requête en utilisant un ensemble
de vues et un ensemble de littéraux qui n'apparaissent pas dans les vues. Nous notons Iilmax comme l'union
d'ensembles de littéraux.
98 Extraction d informations partielles
l requêtes parachutes et la requête initiale : Q \PQ1 \ : : : \ PQl . Il y a au maximum Cnl
intersections non vides au niveau l 6 . Si n requêtes parachutes sont soumises avec la requête
initiale, il y a au maximum n niveaux d'intersection :
En fait notre algorithme permet d'éliminer au fur et à mesure les intersections vides.
Ainsi, le niveau maximum d'intersection. est atteint lorsque l'ensemble des intersections
contient un seul élément, ou lorsque l'ensemble des intersection de niveau supérieur est vide.
Le niveau maximum d'intersection est donc éventuellement inférieur au nombre de requêtes
parachutes. Les éléments du niveau maximum d'intersection sont par construction disjoints
et le principe décrit ci-dessous pour la deuxième phase peut être appliqué.
Q \PQ1
Q \PQ2
Q \PQ3
Q \PQ1 \ PQ2
Q \PQ1 \ PQ3
Q \PQ2 \ PQ3
Q \PQ1 \ PQ2 \ PQ3
Dans une deuxième phase, les sous-étapes 1.6 et 1.7 permettent d'obtenir l'ensemble des
sous-requêtes partagées en utilisant toutes les intersections déjà calculées. La sous-étape 1.7
repose sur une procédure qui, étant donné un ensemble de littéraux L et un sous-ensemble
de ce dernier L1, calcule l'ensemble de littéraux L2 tel que L = L1 [ L2 . En utilisant cette
procédure avec Q \PQ2 \ PQ3 et Q \PQ1 \ PQ2 \ PQ3 en paramètres, on obtient la sous-
requête partagée Q \PQ1 \ PQ2 \ PQ3. Ainsi, en partant du niveau maximum d'intersection
et de proche en proche, l'algorithme obtient toutes les SRP.
Etape 2 Etant donné l'ensemble des sous-requêtes partagées (SRP) identiées dans
l'étape précédente, le problème est de déterminer comment les SRP participent à la construc-
tion du plan d'exécution.
Notre objectif est double. Nous voulons construire un plan d'exécution ecace tout en
isolant les SRP de manière à pouvoir les identier dans la phase de matérialisation.
Pour cela, nous considérons que la requête initiale est constituée d'un ensemble de blocs
logiques qui sont optimisés indépendamment ; le plan d'exécution est obtenu en composant
(merging) les plans d'exécutions obtenus pour les diérents blocs logiques.
Le problème est donc de réécrire la requête initiale en un ensemble de blocs logiques
correspondant à des portions de SRP. Nous considérons deux stratégies de découpage des
SRP en un ensemble de blocs logiques. Chacun de ces blocs logiques est une règle Datalog
composée d'une tête et d'un corps.
Dans la première stratégie, chaque SRP identiée dans l'etape 1 est considérée comme
un seul bloc : c'est la stratégie maximale. Le corps de chaque bloc logique est formé par une
6. Nombre de combinaisons de l éléments parmi n
Optimisation sous contrainte 99
SRP identiée précédement; leur tête est obtenue avec un nouveau symbole de prédicat et
la liste des variables qui apparaissent dans le corps de la règle et qui sont nécessaires pour
l'évaluation de q et des requêtes parachutes.
Dans la seconde stratégie, chaque littéral apparaissant dans une SRP est considéré comme
un bloc séparé (avec les littéraux built-in qui lui sont associés, si possible) : c'est la stratégie
minimale. Le corps de chaque bloc logique est donc composé d'un littéral (et éventuellement
de littéraux built-in); leur tête est obtenue avec un nouveau symbole de prédicat et la liste
des variables qui apparaissent dans le corps de la vue et sont nécessaires à l'évaluation de q
et des requêtes parachutes.
Pour chaque groupe de blocs logiques, q est réécrite. La requête réécrite q0 est exprimée
en fonction des blocs logiques et des littéraux n'apparaissant pas dans les SRP La réécriture
est eectuée avec un algorithme de type answering queries using views [72].
Etape 3 Pour les deux stratégies, l'optimiseur est appelé pour générer le plan d'exécution
de chaque bloc logique ainsi que de la requête réécrite q0 qui leur est associée.
Le coût total pour une stratégie est la somme des coûts d'exécution des blocs logiques
auquel s'ajoute le coût d'exécution de la requête réécrite q0 associée. La stratégie la moins
coûteuse est retenue. Si les deux stratégies ont le même coût, alors la stratégie maximale est
retenue.
Le plan d'exécution pour q est obtenu en composant (merging) le plan d'exécution pour
0
q et les plans d'exécution des blocs logiques. La racine de chaque bloc logique est annotée
de manière à pouvoir être reconnue par l'algorithme de matérialisation.
Chaque requête parachute est réécrite en utilisant les blocs logiques retenus (selon le
principe de l'étape 2). L'optimiseur est appelé pour générer le plan d'exécution pour chaque
requête parachute.
L'algorithme d'optimisation sous contrainte identie ainsi les sous-requêtes partagées
entre la requête initiale et les requêtes parachutes et génère le plan d'exécution le moins
cher, d'abord pour q puis pour les , en suivant une stratégie maximale ou minimale pour
la matérialisation des SRP.
Exemple Nous considérons comme exemple, la requête ad-hoc de l'application hospi-
talière que nous avons déjà utilisée: trouver les informations personnelles et radiologiques
patients dont le séjour dépasse 10 jours et qui attendent d' être opérés. Cette requête s'écrit
en Datalog comme suit 7 :
q(Pname; Proom; RID; Rcomment)
map(PID; SID; RID)^
surgery(SID;0 WAITING0; _)^
radiology(RID; Rcomment; _)^
patient(PID; Pname; Proom; Stay; _; _) ^ Stay > 10
7. Pour des raisons de simplicité, nous considérons que les relations surgery et radiology sont d'arité 3 et
que la relation patient est d'arité 6.
100 Extraction d informations partielles
L'application associe à cette requête q, la requête parachute suivante : trouver le nom, le
numéro de chambre et l'adresse des patients dont le séjour dépasse 10 jours et qui attendent
d'être opérés. :
pq(PName; Proom; PAddress)
map(PID; SID; _)^
surgery(SID;0 WAITING0; _)^
patient(PID; PName; Proom; Stay; PAddress; _) ^ Stay > 10
Dans notre exemple, étant donné la requête q et la requête parachute pq données ci-dessus,
l'algorithme 2-requêtes-srp est appliqué dans la sous-étape 1.1 et x vaut :
fmap(X 1; X 2; X 3); surgery(X 4; X 5; X 6);
patient(X 7; X 8; X 9; X 10; X 11; X 12); X 13 > X 14g:
Les associations identiées entre x et q sont
bq = fX 2 = X 4; X 1 = X 7; X 5 =0 WAITING0; X 10 = X 13; X 14 = 10g
les associations identiées entre x et pq sont bpq = bq . 8
Nous appliquons bq à x pour obtenir :
I 1 = fmap(X 1; X 2; X 3); surgery(X 2;0 WAITING0; X 6);
patient(X 3; X 8; X 9; X 10; X 11; X 12); X 10 > 10g:
Dans la sous-étape 1.2, l est initialisé à 1. Comme I 1 ne contient qu'un seul élément,
nous eectuons directement la sous-étape 1.5.
Les initialisations suivantes sont réalisées : lmax vaut 1 et SRP contient I 1.
Dans l'étape 1.6, comme lmax est égal à 1, SRP est retourné. L'ensemble des sous requêtes
partagés entre q et pq contient donc un seul élément :
SRP = ffmap(X 1; X 2; X 3); surgery(X 2;0 WAITING0; X 6);
patient(X 3; X 8; X 9; X 10; X 11; X 12); X 10 > 10gg:
Dans l'étape 2, la stratégie maximale identie un bloc logique :
fscsq1(X 1; X 8; X 9; X 11)
map(X 1; X 2; X 3)^
surgery(X 2;0 WAITING0; X 6)^
patient(X 3; X 8; X 9; X 10; X 11; X 12)^
X 10 > 10g
8. Les associations sont les mêmes car, dans notre exemple, les conditions de sélection et de jointures de
la requête parachute apparaissent également dans la requête initiale, alors que les listes de projection sont
diérentes.
Optimisation sous contrainte 101
La stratégie minimale identie les blocs logiques suivants :
fscsq2(X 1; X 2; X 3) map(X 1; X 2; X 3);
scsq3(X 1) surgery(X 1;0 WAITING0; X 2);
scsq4(X 1; X 2; X 3; X 5)
patient(X 1; X 2; X 3; X 4; X 5; X 6) ^ X 4 > 10g
Il est à noter que les listes de variables retenues pour la tête des blocs logiques permet
de satisfaire la requête initiale et la requête parachute.
Dans l'étape 2, avec la stratégie maximale, q est réécrite de la manière suivante :
q0(Pname; Proom; RID; Rcomment)
scsq1 (RID; Pname; Proom; _)^
radiology(RID; Rcomment; _)
Avec la stratégie minimale, q est réécrite de la manière suivante :
q0(Pname; Proom; RID; Rcomment)
scsq2 (PID; SID; RID)^
scsq3 (SID)^
scsq4 (PID; PName; Proom; PAddress)^
radiology(RID; Rcomment; _)
Dans l'étape 3, les plans d'exécutions obtenus avec la stratégie minimale et avec la stra-
tégie maximale ont la même forme (ce plan d'exécution est présenté en gure 4.2 dans la
section 4.2) et le même coût. Le plan d'exécution annoté avec la stratégie maximale est donc
retenu. 2
5.3.4 Discussion
Nous avons implanté l'algorithme d'optimisation sous contrainte. Cela nous a permis de
simuler un système sous contrainte et d'étudier ses performances. Nous avons étudié (1)
dans quelle mesure les requêtes parachutes sont satisfaites, (2) les bénéces de la politique
de matérialisation des SRP par rapport aux deux politiques des systèmes sans contraintes, et
(3) les caractéristiques du plan d'exécution étudié par rapport au plan optimal généré dans
le système sans contrainte. Ces résultats sont présentés en section 6.3.
Nous avons utilisé le langage Prolog pour l'implantation de l'algorithme d'optimisation
sous contrainte. Le principal problème d'implantation concerne la procédure de subsump-
tion qui est à la base de l'algorithme 2-requêtes-srp et de l'algorithme answering queries
using views. Prolog se prête bien à la réalisation de cette procédure grâce au mécanisme de
substitution intégré à l'évaluateur.
Un autre problème pour implanter cet algorithme consiste à déterminer dans quelle me-
sure un système de médiation peut (i) accepter plusieurs requêtes simultanément et (ii)
permettre d'évaluer les requêtes parachutes tout en respectant une interface standard telle
que JDBC. La réponse est double. D'une part, les requêtes sont soumises à l'interface JDBC
sous forme de chaînes de caractère. Il est donc possible de fournir plusieurs requêtes dans une
même chaîne de caractère. D'autre part, la notication qui est retournée à l'utilisateur (une
sous-classe des exceptions prévues par JDBC) peut lui permettre de commander l'exécution
d'une requête parachute et de récupérer la réponse partielle ainsi construite.
L'algorithme d'optimisation sous contrainte que nous présentons est limité aux requêtes
conjonctives. Un problème est de prendre en compte les unions de requêtes conjonctives. Nous
avons, dans [13], proposé un premier algorithme pour construire la SRP de deux requêtes
lorsque celles-ci sont des unions de requêtes conjonctives. Il reste cependant à dénir un
cadre uniforme pour l'optimisation sous contrainte des unions de requêtes conjonctives.
Traitement approché des requêtes Nous avons détaillé, en section 3.3.2, les techniques
de traitement approché des requêtes. Un système qui met en oeuvre un traitement approché
des requêtes retourne une approximation, dans le cas où ils ne peut pas construire la réponse
exacte. Cette approximation est formée de deux ensembles de tuples qui encadrent la réponse
exacte : APPROXIMATE [107] retourne un sous-ensemble et un sur-ensemble de la réponse
exacte, MULTIPLEX [79] retourne un sous-ensemble généralisé et un ensemble de tuple dont
la réponse exacte est un sous-ensemble généralisé, Buneman et al. [23] proposent de retourner
un sous-ensemble généralisé et un sur-ensemble généralisé.
Nous nous sommes inspirés de ces travaux pour dénir les relations qui peuvent exister
entre la requête initiale et les requêtes parachutes. Nous avons d'autre part montré qu'il
est intéressant de proposer à l'application plusieurs ensembles de réponses partielles. Cette
remarque a également été formulée par L.Libkin [75].
Réécriture en utilisant des vues Information Manifold réécrit les requêtes qui lui sont
soumises en fonction des vues exportées par les adaptateurs (voir section 2.4.2.1). Il obtient
104 Extraction d informations partielles
ainsi la requête maximum contenue dans la requête initiale (maximally contained query) et
retourne systématiquement un sous-ensemble de la réponse exacte.
Plusieurs travaux mentionnent la possibilité qu'un cache sémantique (stockant dans des
relations temporaires les réponses aux requêtes déjà exécutées) puisse être utilisé pour fournir
une réponse partielle à la requête qui est posée si une ou plusieurs sources de données sont
indisponibles. Nous avons discuté cette possibilité en section 3.3.3. Le principe est identique
à celui d'Information Manifold : une réécriture maximale est recherchée pour la requête cou-
rante et un sous-ensemble de la réponse est retourné à l'application. Cette idée appararait
dans les travaux sur Hermes [1] et sur Query Folding [84] [48]. Les techniques proposées per-
mettent de tirer partie des vues stockées dans le cache sémantique ainsi que d'informations
sémantiques comme les dépendances fonctionnelles, les dépendances d'inclusion ou des règles
plus générales 9 pour trouver une réécriture maximale de la requête initiale. L'utilisation d'in-
formations sémantiques pour la génération de requêtes parachutes et plus généralement pour
la réécriture de requêtes est une piste de travail prometteuse [17]. Les travaux que nous ve-
nons de mentionner s'intéressent seulement à la possibilité de retourner un sous-ensemble
de la réponse complète. Nous avons montré que des informations partielles autres que des
sous-ensembles de la réponse complète peuvent être intéressantes.
Il est ainsi possible de suggérer à l'utilisateur une requête approchant sa requête initiale et
dont la réponse n'est pas vide. 2
L'objectif de CoBase est de remédier à des imprécisions dans les requêtes posées par
l'utilisateur ; on peut cependant penser à adapter les techniques de généralisation et de
spécialisation dans le contexte des sources indisponibles. L'application de ces techniques est
limitée. D'une part, CoBase ne prend pas du tout en compte les modications des clauses
SELECT et FROM qui sont nécessaires lorsque des relations entières sont indisponibles.
D'autre part, lorsqu'une relation est indisponible aucune des valeurs qu'elle contient ne
peut être obtenue. Ceci implique une généralisation jusqu'au niveau de représentation le
plus abstrait (i.e. la racine de la hiérarchie) pour chacun de leurs attributs. L'intérêt de la
hiérarchie de concepts est donc perdu.
CoBase suggère un ensemble de requêtes à l'application. Le système en fournit une des-
cription en langage naturel ainsi qu'une description des conditions qu'il a modiées. Cette
description peut être présentée à l'utilisateur pour lui communiquer la signication des in-
formations qui lui sont proposées.
Dyreson [38] étudie le problème des données manquantes dans un système représentant
les données sous forme multi-dimensionnelle (data cube). Les requêtes qu'il considère sont des
agrégats sur des ensembles de valeurs. Un algorithme est fourni pour suggérer des requêtes
moins informatives que la requête initiale si celle-ci ne peut pas être évaluée : les requêtes
générées sont des agrégats sur des sous-ensembles des valeurs dénies dans la requête initiale.
Cet algorithme suit un principe de spécialisation (drill down) sur les hiérarchies de dimensions
comparable à celui de CoBase.
106 Extraction d informations partielles
5.4.2 Optimisation d'un ensemble de requêtes
T. Sellis a étudié le problème de l'optimisation d'un ensemble de requêtes [87]. Il formule
le problème comme suit : étant donnés n ensembles de plans d'exécutions locaux, chacun cor-
respondant à une requête diérente, trouver le plan d'exécution global optimal, permettant
de construire les réponses à toutes les requêtes, en mélangeant (merging) n plans d'accès (un
par ensemble).
Le problème principal est d'identier les redondances entre les plans locaux qui parti-
cipent au plan d'exécution global. En eet, l'avantage d'exécuter le plan global par rapport
à exécuter chacun des plans locaux séparément est que les résultats temporaires produits
par les sous-requêtes communes aux diérents plans locaux sont partagés. Nous détaillons
les aspects liés à l'identication des sous-requêtes en section 5.4.2.1.
T. Sellis présente deux classes d'algorithmes [87]. Dans la première classe d'algorithmes,
seuls les plans d'exécutions optimaux sont considérés. Les ensembles de plans locaux se
réduisent donc à un seul élément. L'algorithme IE (Interleaved Execution) identie les sous-
requêtes partagées entre ces plans d'exécutions optimaux pour construire le plan d'exécution
global.
Dans la deuxième classe d'algorithmes, tous les plans d'accès sont considérés (même ceux
qui ne sont pas localement optimum). L'algorithme HA (Heuristic Algorithm) recherche la
combinaison de plans qui permet de construire le plan d'exécution global le moins coûteux.
La recherche est conduite en suivant un algorithme A* qui évite une énumération exhaustive
de toutes les combinaisons possibles.
La diérence principale entre l'algorithme sous contrainte que nous proposons et ces
algorithmes est que notre objectif n'est pas seulement d'optimiser une fonction de coût,
mais avant tout d'identier toutes les sous-requêtes partagées entre la requête initiale et les
requêtes parachutes.
Chapitre 6
Évaluation
Les techniques de traitement incrémental des requêtes (présentées dans le chapitre 4)
et d'optimisation sous contrainte (présentées en section 5.3) ont des objectifs en terme de
performance.
Nous avons utilisé un modèle analytique et un simulateur pour l'évaluation des perfor-
mances. Leurs caractéristiques sont décrites en section 6.1 ainsi que la charge de travail qui
nous a permis de mener nos expériences.
L'objectif du traitement incrémental des requêtes est de permettre d'améliorer le temps
de réponse du système de médiation lorsqu'une même requête doit être soumise plusieurs fois
pour obtenir la réponse complète. Une des composantes principales du temps de réponse est
le temps d'attente entre les soumissions successives. Ce facteur échappe au système puisque
c'est l'application qui décide de soumettre une requête incrémentale (ou bien de soumettre à
nouveau la même requête). Les composantes du temps de réponse qui dépendent du système
sont le temps de traitement et le nombre de soumissions qui sont nécessaires pour obtenir la
réponse complète. Nous étudions ces deux aspects en section 6.2.
L'optimisation sous contrainte a pour objectif d'augmenter la probabilité de répondre aux
requêtes parachutes tout en conservant des performances raisonnables. Nous avons étudié
l'inuence de l'optimisation sous contrainte et de la politique de matérialisation SRP sur (1)
le temps de traitement et (2) les capacité du système a répondre aux requêtes parachutes.
Les résultats sont présentés en section 6.3.
La disponibilité des sources de données est un paramètre important dans notre modèle
analytique et dans certaines expériences menées avec le simulateur. Nous avons réalisé une
expérience pour estimer la disponibilité des sources de données dans l'application Redoc.
Nous présentons les résultats obtenus en section 6.4.
110 Évaluation
6.1 Cadre Expérimental
6.1.1 Modèle Analytique
En présence de sources de données indisponibles, une application a besoin de soumettre
une même requête plusieurs fois pour obtenir la réponse complète. Nous appelons chacune
de ces soumissions, un essai. A chaque essai le système tente de contacter un ensemble de
sources de données. Chaque source de données est soit disponible, soit indisponible. Une
source de données disponible renvoie une réponse à la sous-requête qui lui a été envoyée, une
source indisponible ne renvoie pas de réponse. Nous considérons que chaque essai concernant
une source est un événement aléatoire indépendant où la source de données est disponible
avec la probabilité p et indisponible avec la probabilité 1 , p. Nous dénissons dans cette
section, le modèle analytique d'un système classique et d'un système incrémental.
Un système classique peut être modélisé comme suit. Lorsqu'une requête est soumise à un
système classique, le système contacte les n sources de données pendant t essais. Il retourne
une réponse complète si les sources de données sont toutes disponibles lors d'au moins un des
essais eectués. La gure 6.1 illustre quatre sources de données pendant trois essais. Chaque
essai est représenté de manière horizontale, comme la concaténation de n ronds ou croix. Un
rond représente une source indisponible, et une croix une source disponible. Sur la gure, le
système classique retourne une réponse complète au troisième essai (représentée par la ligne
droite entre les croix): toutes les sources de données sont disponibles simultanément.
Trials Trials
3 3
2 2
1 1
A B C D A B C D
Data Sources Data Sources
6.1.3.1 MQ2
La requête MQ2 permet d'obtenir les coordonnées des fournisseurs de produits d'un
certain type et d'une certaine taille ainsi que la clé et le constructeur du produit. Cette
requête, dont le code SQL est présenté dans la gure 6.3 est une jointure entre 5 relations;
elle implique trois relations situées sur des sources de données (P, PS et S) et deux relations
stockées par le système de médiation (R et N).
SELECT S.ACCTBAL, S.NAME, N.NAME, P.PARTKEY, P.MFGR,
S.ADDRESS, S.PHONE, S.COMMENT
FROM PART P, SUPPLIER S, PARTSUPP PS,
NATION N, REGION R
WHERE N.NATIONKEY = S.NATIONKEY AND R.NAME = 'EUROPE'
AND N.NATIONKEY = R.NATIONKEY AND PS.SUPPKEY = S.SUPPKEY
AND PS.PARTKEY = P.PARTKEY AND P.SIZE = 15
AND P.TYPE LIKE 'BRASS';
submit
1/250 1/5
Π
Fig. 6.4 Graphe de requête pour
submit
σ
MQ2. PS Π N
σ
P
S
R
eectuées en parallèle.
6.1.3.2 MQ8
La requête MQ8 permet d'obtenir la date à laquelle un ordre sur un produit particulier a
été passé par un client européen avec le prix d'achat ainsi que la nationalité du fournisseur.
Cette requête est une jointure entre 7 relations avec des sélections sur les relations produits
(P), ordre (O) et régions (R). La gure 6.6 présente le code SQL de cette requête ; la gure 6.7
décrit son graphe de requête.
La gure 6.8 présente le plan d'exécution pour MQ8 obtenu avec l'optimiseur basé sur
les coûts. Avec une mémoire de 2048 pages, aucun partitionnement n'est nécessaire.
Traitement incrémental des requêtes 115
Π
1/10000
S
S submit submit
submit
1/25
Π Π Π
σ
N2 σ L
σ
9000
8000
7000
6000
temps en sec
plan_partiel
classique
5000
incremental
4000
3000
2000
1000
0
all L-O- P-O- P-L- P-L- P-L- O-C- L-C- L-O- L-O- P-C- P-O- P-O- P-L- P-L- P-L- C-S O-S O-C L-S L-C L-O P-S P-C P-O P-L S C O L P none
C-S C-S C-S O-S O-C S S S C S S C S C O
sources disponibles
Fig. 6.9 MQ8 - Temps de traitement total pour toutes les congurations de sources dispo-
nibles - Trois systèmes: plan_partiel, classique et incrémental.
La gure 6.9 montre les résultats de l'expérience des deux essais avec la requête MQ8.
L'axe des abscisses indique la conguration des sources disponibles dans le premier essai et
l'axe des ordonnées indique le temps de traitement total en seconde (i.e. la somme des temps
de réponse mesurés lors du premier et du second essai). Les lignes entre les points sont juste
une aide qui permet au lecteur de facilement distinguer les diérents systèmes.
Dans le cas où toutes les sources sont disponibles, la réponse complète est retournée lors
du premier essai, en 4330 secondes. Ceci est valable pour les trois systèmes que nous étudions.
L'approche incrémentale n'introduit donc pas de surcoût par rapport à l'approche classique
dans le cas où toutes les sources de données sont disponibles.
Le temps de traitement pour le système plan_partiel est à peu prés constant. Ce système
n'est pas sensible aux congurations de sources disponibles. En eet, l'évaluation interrompue
lors du premier essai (dès qu'une source est détectée indisponible) reprend et termine lors
du deuxième essai (toutes les sources sont alors disponibles). Tous les traitements eectués
4. Le coût de transfert des données est limité dans notre optimiseur aux coûts liées au protocole et aux
coûts d'envoi de message. Un modèle de coût plus ané pourrait conduire l'optimiseur a choisir un plan
d'exécution de forme diérente entre la requête initiale et certaines requêtes incrémentales.
118 Évaluation
lors du premier essai sont donc réutilisés lors du deuxième. Le temps de traitement avec le
système plan réutilisé correspond donc au temps de traitement lorsque la réponse complète
est obtenue en un seul essai.
Le temps de traitement pour le système classique dépend fortement de la conguration
de sources disponibles. Dans toutes les congurations où les relations P et L sont toutes deux
disponibles, le temps de traitement est approximativement de 8500 secondes ; dans toutes
les autres congurations, le temps de traitement n'excède pas 4700 secondes. Lorsque P et
L sont disponibles, la jointure entre ces deux relations est exécutée lors de chaque essai. Par
conséquent, le coût élevé de cette jointure est payé deux fois. Ce double paiement résulte
du principal handicap du système classique : le travail n'est pas réutilisé entre les essais
successifs.
Le temps de traitement dans un système incrémental est également sensible à la congu-
ration des sources disponibles, mais dans une moindre mesure. Dans toutes les congurations
où L est disponible et P ne l'est pas, L est matérialisé. Le coût de la matérialisation de cette
très grosse relation lors du premier essai ajouté au coût de la lecture locale lors du deuxième
essai induit une augmentation du temps de traitement (autour de 5000 secondes) par rapport
aux autres congurations (autour de 4330 secondes). Lorsque P et L sont toutes les deux
disponibles, leur jointure est exécutée (car la politique de matérialisation des sous-arbres
maximaux est utilisée ici), L n'est pas matérialisé et le temps de traitement est moindre.
1200
1000
800
temps en sec
plan_partiel
incremental
600
classique
400
200
0
all PS-S P-S P-PS S PS P none
sources disponibles
Fig. 6.10 MQ2 - Temps de traitement total pour toutes les congurations de sources dis-
ponibles - Trois systèmes: plan_partiel, classique et incrémental.
La gure 6.10 présente les résultats de l'expérience des deux essais avec la requête MQ2.
Ces résultats sont identiques à ceux décrits précédemment avec MQ8. Le cas où le temps
de traitement du système incrémental est supérieur à celui du système classique n'apparait
cependant pas ici. Nous détaillons avec les gures suivantes le temps de traitement lors du
Traitement incrémental des requêtes 119
600
600
500
500
400 400
temps en sec
temps en sec
1er essai 1er essai
300 2eme essai 300 2eme essai
200
200
100
100
0
all PS-S P-S P-PS S PS P none 0
sources disponibles all PS-S P-S P-PS S PS P none
sources disponibles
Fig. 6.11 MQ2 - 2 essais - système Fig. 6.12 MQ2 - 2 essais - système clas-
plan_partiel. sique.
700
600
500
400
temps en sec
1er essai
2eme essai
300
200
100
6.2.1.2 Discussion
L'expérience des deux essais démontre que le système incrémental ne pénalise pas les
performances dans le cas où toutes les sources de données sont disponibles lors du premier
essai. Si une ou plusieurs sources de données sont indisponibles, des relations temporaires
sont créées et ensuite lues localement. Ceci implique une augmentation dans le temps de
traitement total. Si les relations temporaires sont petites, l'impact sur les performances est
faible. Autrement, la dégradation des performances est plus limité que dans un système
classique où des opérations coûteuses sont exécutées plusieurs fois selon la conguration des
sources disponibles.
Le temps de traitement permet de comparer les caractéristiques des diérents systèmes.
Cependant, dans la réalité le temps d'attente domine le temps de réponse. Le nombre de
soumissions nécessaires pour obtenir la réponse complète est un facteur essentiel, puisque
lorsque le nombre de soumissions diminue, le nombre d'intervalles où l'application est forcée
d'attendre diminue.
0.6 0.6
0.4 0.4
0 0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Disponibilite des sources Disponibilite des sources
Fig. 6.14 Probabilité d'obtenir au moins Fig. 6.15 Probabilité d'obtenir au moins
une réponse complète en deux essais pour une réponse complète en deux essais pour
MQ2 MQ8
Les gures 6.14 et 6.15 présentent la probabilité d'obtenir au moins une réponse complète
en deux essais en fonction de la disponibilité des sources de données pour MQ2 (3 sources
de données contactées) et MQ8 (cinq sources de données) respectivement. Les gures 6.16
et 6.17 tracent la même fonction avec un nombre d'essais xé à quatre. L'axe des abscisses
indique la disponibilité des sources de données et l'axe des ordonnées indique la probabilité
d'obtenir au moins une réponse complète.
L'événement correspondant à un système classique retournant une réponse complète en
t essais est inclus dans l'événement correspondant à un système incrémental retournant une
réponse complète en t essais. En eet, si n sources sont disponibles simultanément au moins
une fois en t essais, alors chacune des n sources est disponible au moins une fois en t essais.
Par conséquent, la courbe correspondant à la probabilité d'obtenir au moins une réponse
complète en t essais pour le système incrémental constitue une borne supérieure pour la
courbe du système classique.
5. Un système classique contacte toutes les sources de données impliquées dans la requête pour construire
sa réponse.
122 Évaluation
1 1
0.6 0.6
0.4 0.4
0 0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Disponibilite des sources Disponibilite des sources
Fig. 6.16 Probabilité d'obtenir au moins Fig. 6.17 Probabilité d'obtenir au moins
une réponse complète en quatre essais pour une réponse complète en quatre essais pour
MQ2 MQ8
De manière générale, le système incrémental permet d'obtenir une probabilité non nulle
avec une disponibilité des sources plus faible que le système classique. D'autre part, et c'est
plus intéressant, le système incrémental permet d'atteindre une probabilité d'obtenir une
réponse complète proche de 100% avec une disponibilité des sources plus faible que le système
classique. Par exemple, dans la gure 6.16, le système incrémental permet d'obtenir une
probabilité d'obtenir au moins une réponse à MQ8 en 4 essais dès que la disponibilité des
sources atteint 85% alors qu'une disponibilité des sources de 95% est nécessaire pour atteindre
un résultat similaire avec un système classique.
Lorsque le nombre de sources de données impliqué dans la requête augmente (MQ2
implique trois sources de données, alors que MQ8 en implique cinq), la probabilité d'obtenir
une réponse complète diminue pour une disponibilité des sources particulière. Par exemple,
dans la gure 6.14, la probabilité d'obtenir au moins une réponse à MQ2 en deux essais pour
une disponibilité des sources de 80%, est légèrement inférieure à 80% ; dans la gure 6.15,
cette probabilité pour MQ8 est inférieure à 60%. Comme les valeurs aux bornes ne varient
pas avec le nombre de sources de données (lorsque la disponibilité est nulle la probabilité
d'obtenir une réponse est nulle, et inversement, lorsque toutes les sources de données sont
disponibles la probabilité d'obtenir une réponse est de 100%), la pente des courbes augmente
lorsque le nombre de sources de données impliquées dans la requête augmente.
Lorsque le nombre d'essais permettant d'obtenir la réponse complète augmente, la proba-
bilité d'obtenir une réponse complète augmente. Cette probabilité augmente plus vite dans
le cas d'un système incrémental que d'un système classique. Par exemple, la probabilité d'ob-
tenir une réponse à MQ2 en deux essais lorsque la disponibilité des sources est de 60%, est
de 60% avec un système incrémental et de 40% avec un système classique. Lorsque le nombre
d'essais passe à quatre, la probabilité d'obtenir une réponse avec un système incrémental est
supérieure à 90% alors qu'elle est de 60% avec un système classique.
En reprenant les équations du modèle analytique, il est possible d'exprimer le nombre
d'essais en fonction de la disponibilité des sources, du nombre de sources et de la probabilité
Traitement incrémental des requêtes 123
Fig. 6.18 Nombre d'essais nécessaires pour Fig. 6.19 Nombre d'essais nécessaires pour
obtenir au moins une réponse complète à obtenir au moins une réponse complète à
MQ2 avec une probabilité de 90% MQ8 avec une probabilité de 90%
d'obtenir au moins une réponse. Bien sûr, seules les valeurs entières du nombre d'essais sont
signicatives dans ces nouvelles équations.
Les gures 6.18 et 6.19 représentent le nombre d'essais permettant d'obtenir une réponse
complète avec une probabilité de 90% pour MQ2 et MQ8 respectivement. Les gures 6.20
et 6.21 représentent le nombre d'essais permettant d'obtenir une réponse complète avec une
probabilité de 99% également pour MQ2 et MQ8. L'axe des abscisses indique la disponibilité
des sources, et l'axe des ordonnées indique le nombre d'essais (même si les courbes sont
continues, seules les valeurs entières de t sont signicatives).
Ici, la courbe du système incrémental est une borne inférieure à la courbe du système clas-
sique. Dans les quatre gures, l'écart entre les deux courbes augmente lorsque la disponibilité
des sources diminue.
Lorsque le nombre de sources augmente, la disponibilité des sources nécessaires pour
obtenir au moins une réponse en un nombre d'essais xé augmente fortement pour le système
classique alors qu'elle varie peu pour le système incrémental. Par exemple, pour obtenir une
réponse en cinq essais à MQ2 avec une probabilité de 90%, la disponibilité des sources peut
être légèrement inférieure à 50% pour un système incrémental et légèrement supérieur à 70%
pour un système classique. Dans le cas de MQ8, la disponibilité est légèrement supérieure à
50% pour le système incrémental et doit être supérieure à 80% pour le système classique. De
manière prévisible, le nombre d'essais nécessaires pour obtenir au moins une réponse avec
une probabilité de 99% est supérieur au nombre d'essais nécessaires pour obtenir au moins
une réponse avec une probabilité de 90%.
Fig. 6.20 Nombre d'essais nécessaires pour Fig. 6.21 Nombre d'essais nécessaires pour
obtenir au moins une réponse complète à obtenir au moins une réponse complète à
MQ2 avec une probabilité de 99% MQ8 avec une probabilité de 99%
Nous utilisons le simulateur en réalisant l' expérience suivante (que nous décrivons dans
le détail pour la requête MQ2, nous avons eectué cette expérience avec MQ8 également et
nous discutons les résultats obtenus ci-dessous). Chaque source de données a la probabilité
p d'être disponible : chaque fois qu'une source est contactée, celle-ci détermine de manière
aléatoire si la source est disponible ou non. La requête MQ2 est évaluée avec un espace de
stockage xé. Si, une ou plusieurs sources de données sont détectées indisponibles les résultats
intermédiaires disponibles sont matérialisés selon l'algorithme materialize présenté dans la
section 4.4. Le plan d'exécution choisi pour les requêtes incrémentales est similaire à celui
présenté pour MQ2 dans la section 6.1.1, aucun partitionnement n'est nécessaire. Les requêtes
incrémentales sont construites et soumises jusqu'à ce que la réponse complète soit obtenue.
Nous eectuons plusieurs trains d'expérience en répétant l'expérience 100, 500 et 1000 fois.
Nous calculons pour chaque train d'expériences le nombre moyen d'essais nécessaires pour
obtenir la réponse complète. Nous retenons la moyenne de ces résultats en calculant son
intervalle de conance ; nous utilisons ici un intervalle de conance de 90% (calculé avec la
formule fournie dans [59]).
Etant donné la requête MQ2, il y a huit congurations possibles de sources disponibles
(car cette requête implique trois sources de données). Pour chaque conguration, les sous-
plans candidats à la matérialisation sont connus (en fonction de la politique de matériali-
sation) et le nombre de pages nécessaires à la matérialisation peut être associé à chacun de
ces sous-plans; ils sont présentés dans la table 6.2 pour la politique de matérialisation des
feuilles et dans la table 6.3 pour la politique de matérialisation des sous-arbres maximaux
disponibles. Selon l'algorithme materialize, un sous-plan est matérialisé si l'espace de sto-
ckage est susant. Par exemple, si l'espace de stockage est limité à 10000 pages tous les
sous-plans candidats peuvent être matérialisés. Si l'espace de stockage est limité à 25 pages,
seuls les sous-plans P et S peuvent être matérialisés avec la politique de matérialisation des
sous-arbres maximaux.
Traitement incrémental des requêtes 125
Conguration Sous-plans candidats Estimations Conguration Sous-plans candidats Estimations
aucun aucun aucun aucun
P P 8 P P 8
PS PS 8000 PS PS 8000
S S 100 S S ./ N ./ R 20
P-S P et S 8 + 100 P-S P et S ./ N ./ R 8 + 20
P-PS P et PS 8 + 8000 P-PS P et PS 8 + 8000
PS-S PS et S 8000 + 100 PS-S PS ./ S ./ N ./ R 1600
tous aucun tous aucun
Tab. 6.2 Politique de matérialisation des Tab. 6.3 Politique de matérialisation des
feuilles - Sous-plans candidats et estima- sous-arbres maximaux - Sous-plans candi-
tion de l'espace de stockage nécessaires pour dats et estimation de l'espace de stockage
toutes les congurations de sources concer- nécessaires pour toutes les congurations de
nant la requête MQ2. sources concernant la requête MQ2.
Nous avons choisi 10 nombres de pages diérents pour le traitement de la requête MQ2 6 :
0, 15, 25, 105, 700, 4000, 8005, 8050, 10000. Ces nombres couvrent tous les cas possibles de
matérialisation. Nous avons eectué cette expérience avec des probabilités de disponibilité
des sources diérentes (60% et de 90%).
Figure 6.22 présente le nombre moyen d'essais nécessaires pour obtenir la réponse com-
plète à la requête MQ2 avec deux systèmes incrémentaux lorsque la disponibilité des sources
est de 60%. Le premier système incrémental implante l'algorithme materialize avec la poli-
tique de matérialisation des sous-arbres maximaux, le second utilise la politique de matéria-
lisation des feuilles. L'axe des abscisses indique le nombre de pages alloué pour le traitement
de la requête et l'axe des ordonnées indique le nombre moyen d'essais nécessaires pour obtenir
la réponse complète.
Le résultat est, comme attendu, une courbe en escalier. Pour les deux politiques de
matérialisation quatre marches sont nettement marquées, ce sont les portions de courbes
consécutives pour lesquelles les intervalles de conance ne se chevauchent pas. A chaque
marche, le système a la possibilité de matérialiser les données provenant de nouvelles sources.
Tout d'abord, aucune donnée ne peut être matérialisée car l'espace de stockage n'est pas
susant. La deuxième grande marche correspond aux espaces de stockage permettant de
stocker d'abord P, puis P ou S. Ensuite, il est possible de stocker les relations temporaires
obtenues lorsque à la fois P et S sont disponibles. La marche suivante correspond à la
possibilité de matérialiser les données obtenues soit de PS soit des sources P et S. Enn,
les données obtenues dans toutes les congurations de sources peuvent être matérialisées.
A chaque marche, le nombre moyen d'essais décroit lorsque l'espace alloué pour le trai-
tement de la requête augmente. Le passage de la première marche a la seconde est le plus
signicatif. Le nombre moyen d'essais passe de 4.5 à 3.2 dès que les résultats obtenus de la
source P peuvent être matérialisés. Par conséquent, un système incrémental prote d'un es-
pace de stockage limité (dès qu'il permet de stocker les sous-requêtes obtenues d'une source)
6. l'exécution ne nécessite pas d'espace de stockage donc pour l'algorithme materialize Nexec = 0
126 Évaluation
5
max
max-error
leaves
leaves-error
2
1 10 100 1000 10000 100000
nombre de pages allouees pour le traitement d’une requete
Fig. 6.22 MQ2 - Nombre moyen d'essais nécessaires pour obtenir la réponse complète en
fonction du nombre de pages alloué pour l'espace de stockage - Deux systèmes incrémentaux
implémentant les politiques de matérialisation max et feuilles - La disponibilité des sources
est de 60%.
pour diminuer le nombre de soumissions nécessaires (toujours dans l'hypothèse que les sources
de données ont toutes la même chance d'être disponible).
La longueur de chaque marche dière entre les deux politiques de matérialisation. La
deuxième marche, par exemple, correspond à la situation où les données ne peuvent être
matérialisées que depuis la source P. Selon le tableau 6.2 et le tableau 6.3 cette situation
commence pour les deux politiques lorsque le nombre de pages allouées est de 8 ; elle s'arrête
lorsque le nombre de pages vaut 20 dans la politique max et lorsqu'il vaut 100 dans la politique
feuilles. La deuxième marche est donc plus courte avec la politique max, et par conséquent la
troisième marche démarre avec un nombre de pages plus faible. Ce phénomène est similaire
pour chaque étape. La courbe de la politique max présente une avance de phase sur la courbe
de la politique feuilles. Ceci est dû aux opérations de jointures qui sont eectuées avec la
politique max et qui réduisent la taille des relations temporaires à matérialiser. La politique
max réduit donc le nombre moyen d'essais nécessaires pour obtenir la réponse complète plus
vite que la politique feuilles lorsque l'espace alloué au traitement de la requête augmente.
Figure 6.23 présente le nombre moyen d'essais nécessaires pour obtenir la réponse com-
plète à la requête MQ2 lorsque la disponibilité des sources est de 90%. L'inuence de l'al-
gorithme de matérialisation est peu importante dans cette expérience : les marches ne sont
pas du tout marquées. En eet, lorsque la disponibilité des sources de données est impor-
tante, la réponse complète est très souvent obtenue un seul essai. La probabilité d'obtenir
la réponse complète en un seul essai est la probabilité que toutes les sources de données
soient disponibles simultanément ; c'est donc le produit des disponibilités des sources, dans
notre cas 73% des expériences permettent d'obtenir la réponse complète au premier essai
(0:93 = 0:73). Cette probabilité ne dépend pas de l'algorithme de matérialisation.
Traitement incrémental des requêtes 127
2
max
max-error
leaves
leaves-error
1
1 10 100 1000 10000 100000
nombre de pages allouees pour le traitement d’une requete
Fig. 6.23 MQ2 - Nombre moyen d'essais nécessaires pour obtenir la réponse complète en
fonction du nombre de pages alloué pour l'espace de stockage - Deux systèmes incrémentaux
implémentant les politiques de matérialisation max et feuilles - La disponibilité des sources
est de 90%.
6.2.2.3 Discussion
Les résultats obtenus avec le modèle incrémental et le simulateur montrent que le nombre
de soumissions nécessaires pour obtenir la réponse complète est moins important dans un
système incrémental que dans un système classique. Le système incrémental se comporte
d'autant mieux que la disponibilité des sources diminue ou que l'espace de stockage alloué
au traitement de la requête augmente.
Nous avons utilisé un modèle probabiliste de la disponibilité des sources de données dans
les expériences dont les résultats sont présentés ci-dessus. Ce modèle probabiliste suppose
que lors de chaque essai, chaque source de données a une probabilité p d'être disponible. Une
telle représentation des sources indisponibles pose plusieurs problèmes :
quelles sont les limites de ce modèle? Ce modèle est limité car il ne fait pas de diérence
entre les sources de données et qu'il ne prend pas en compte de composante temporelle
(si une panne survient sur une source de données il faut attendre un certain temps que
cette panne soit réparée pour que la source de donnée soit à nouveau disponible
quelle est la disponibilité des sources de données dans une application concrète? Nous
avons fait une expérience pour nous faire une idée de la disponibilité des sources de don-
nées dans l'application Redoc. Les résultats sont présentés en section 6.4. Ils conrment
les résultats présentés dans l'étude de Viles et French [106] : la disponibilité des sources
de données sur le WWW est de l'ordre de 90%.
128 Évaluation
6.3 Optimisation sous contrainte
L'objectif de l'optimiseur sous contrainte est d'augmenter la probabilité de répondre aux
requêtes parachutes tout en conservant des performances raisonnables. Pour étudier ces deux
aspects, nous avons associé deux requêtes parachutes à la requête MQ2. Nous décrivons
ces requêtes parachutes (en section 6.3.1) et nous étudions le plan d'exécution obtenu en
eectuant l'optimisation de MQ2 sous leur contrainte. La politique de matérialisation des
sous-requêtes partagées (SRP) est ensuite comparée aux politiques max et feuilles du point
de vue du temps de traitement et du point de vue de la probabilité qu'ont les requêtes
parachutes d'être satisfaites.
Il est à noter que MQ2-PQ1 contient, dans sa liste de projection, un attribut qui n'ap-
paraît pas dans la liste de projection de MQ2.
Optimisation sous contrainte 129
6.3.2 Résultats de l'optimisation sous contrainte
L'algorithme d'optimisation sous-contrainte ne garantit pas que le plan qui est générée
est le plan optimal pour la requête initiale. En eet, si dans le plan optimal une sous-requête
doit être envoyé vers une source de données et que seulement une partie de cette sous-requête
est partagée entre la requête initiale et les requêtes parachutes, alors aucun des plans générés
par l'algorithme d'optimisation sous contrainte ne poussera la sous-requête entièrement vers
la source de données : la partie qui est partagée avec les requêtes parachutes sera isolée.
Π Π
SRP
submit submit
SRP SRP
submit submit
Π Π
Π submit Π submit
σ σ
PS Π PS Π
P
N
σ P
N
σ
S S
R R
Fig. 6.26 Plan d' exécution pour Fig. 6.27 Plan d'exécution pour
MQ2 contraint
Π
par MQ2-PQ0. MQ2 contraint par MQ2-PQ1.
SRP
submit
SRP
submit
Π
SRP
Π submit
σ
PS Π
P
N
σ
S
R
La stratégie maximale, qui considère cette SRP comme un bloc indivisible conduit à
introduire la jointure entre les relations P et PS dans le plan d'exécution et donc à un plan
sous-optimal. La stratégie minimale, qui elle considère séparément les littéraux associés à
ces deux relations permet d'obtenir le plan optimal. C'est cette stratégie qui est retenue. Le
plan d'exécution annoté est présenté dans la gure 6.27.
L'optimisation de MQ2 sous la contrainte de MQ2-PQ0 et MQ2-PQ1 isole les deux SRP
présentées précédemment. En eet, les deux requêtes parachutes MQ2-PQ0 et MQ2-PQ1 ne
partagent aucun élément.
La stratégie maximale conduit à un plan d'exécution sous-optimal puisque les relations
P et PS sont considérées comme un bloc indivisible. La stratégie minimale conduit à un
plan optimal puisque les éléments de la requête relatifs à chaque relation sont considérés
séparément. Ce plan d'exécution annoté est présenté dans la gure 6.28.
Intuitivement, le plan idéal annote P et PS séparément et considère S, R et N comme un
bloc indivisible. Ce plan ne peut pas être obtenu avec notre algorithme d'optimisation sous
contrainte. En eet la stratégie de matérialisation qui doit être suivie pour obtenir le plan
idéal est un mélange entre les stratégies minimale et maximale. Considérer deux stratégies
simple ne nous permet pas de couvrir toutes les possibilités, cela nous permet cependant
de considérer un espace de recherche raisonnable et d'obtenir le plan optimal lorsque c'est
possible.
660
640
620
temps en sec
600 max
feuilles
580 SRP
560
540
520
500
all PS-S P-S P-PS S PS P none
sources disponibles
Fig. 6.29 Comparaison des trois politiques de matérialisation : max, feuilles et SRP pour
le traitement de MQ2.
La politique max est plus ecace que les deux autres politiques dans la conguration où
PS et S sont disponibles (la diérence est de l'ordre de 60 secondes). Cette diérence est due
au fait que dans les politiques feuilles et SRP, la relation PS est matérialisée. Or la taille de
132 Évaluation
cette relation est importante et le temps utilisé pour la matérialiser lors du premier essai et
pour lire les données qu'elle contient lors du deuxième essai est signicatif. Avec la politique
max, dans la conguration où PS et S sont toutes les deux disponibles, ces relations sont
jointes avec les relations locales R et N : le prix de la matérialisation et de la lecture de PS
n'est donc pas à payer.
PS-S
P-PS feuilles
Configuration
max
P-S SRP
PS
aucun
PS-S
P-PS feuilles
max
Configuration
P-S SRP
PS
aucun
6.3.4 Discussion
Nous avons constaté que l'optimisation sous contrainte génère dans la plupart des cas le
plan d'exécution optimal. Nous avons également constaté que la politique de matérialisation
des sous-requêtes partagées (qu'elle rend possible) ne pénalise pas le temps de traitement et
augmente la chance de répondre aux requêtes parachutes par rapport aux politiques max et
feuilles.
134 Évaluation
La chance de répondre aux requêtes parachutes, même avec la politique de matérialisation
SRP est faible. En eet, seules quelques congurations de sources disponibles permettent au
système de répondre aux requêtes parachutes posées a priori. C'est un désavantage provenant
du fait que la requête parachute a été posée sans utiliser les informations dont dispose le
système sur la disponibilité des sources. C'est surtout un désavantage de l'approche que nous
avons suivie pour l'évaluation des requêtes parachutes. L'utilisation d'un cache sémantique
ou de sources alternatives devrait permettre d'augmenter les chances qu'a le système de
renvoyer des réponses partielles en réponse à une requête parachute.
La table 6.4 contient les valeurs Wavail pour chaque famille de source ainsi que pour
l'ensemble de sources de Redoc contactées depuis Singapour, Paris et Grenoble.
La disponibilité des sources de Redoc est de 86% lorsqu'elles sont contactées depuis Singa-
pour, de 89% lorsqu'elles sont contactées depuis Paris et de 89% lorsqu'elles sont contactées
depuis Grenoble. La disponibilité est donc légèrement plus faible dans le cas où la connexion
réseau est internationale.
Il apparaît que les disponibilités de chaque famille de sources sont assez disparates. La
famille 1 est beaucoup moins disponibles que les trois autres. La disponibilité des familles 2,
3 et 4 est proche de 100%.
Les gures 6.32, 6.33 et 6.34 concernent Singapour, Paris et Grenoble respectivement.
Ces graphes représentent les valeurs de Savail en fonction des intervalles de temps t. Nous
avons partitionné la semaine en demi-journées : de 6h à 18h (au jour J), et de 18h à 6h (entre
les jours J et J+1).
Ces graphes mettent en évidence un problème survenu sur les sources de la famille 1 lors
des demi-journées 10 à 13. Aucun des trois sites n'a pu accéder aux sources de la famille 1 lors
des demi-journées 11 et 12. Les sources de la famille 1 sont toutes accédées par l'intermédiaire
d'une passerelle qui est, selon toute vraisemblance, restée hors service plus d'une journée.
Le graphe 6.32 montre une baisse de la disponibilité pour toutes les familles de sources
lors de la demi-journée 4 accédées depuis Singapour. Cela traduit un problème de congestion
sur le réseau depuis Singapour, puisque ce problème n'apparait pas sur les graphes de Paris
et de Grenoble.
Le problème survenu pour les sources de la famille 1 inuence beaucoup les résultats
que nous avons obtenu. Un problème est de savoir si de tels problèmes sont fréquents. Des
mesures eectuées sur une période plus longue permettront d'aner nos résultats.
Il est à noter que tous les cas de sources indisponibles sont dus à des connexions qui ne
peuvent pas être établies.
136 Évaluation
1 1
0.9 0.9
0.8 0.8
Savail
0.6 0.6
0.5 0.5
0.4 0.4
0.3 famille 1 0.3 famille 1
famille 2 famille 2
0.2 famille 3 0.2 famille 3
famille 4 famille 4
0.1 0.1
0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
demi-journees demi-journees
Fig. 6.32 Disponilité des sources par demi- Fig. 6.33 Disponilité des sources par demi-
journées depuis Singapour. journées depuis Paris.
1
0.9
0.8
0.7
Savail
0.6
0.5
0.4
0.3 famille 1
famille 2
0.2 famille 3
famille 4
0.1
0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
demi-journees
6.5 Conclusion
L'objectif de notre évaluation des performances était de montrer que (1) le traitement
incrémental des requêtes permet d'améliorer le temps de réponse en présence de sources
indisponibles par rapport à un système classique, et que (2) l'optimisation sous contrainte
permet d'augmenter les chances qu'a le système de répondre aux requêtes parachutes sans
pénaliser le temps de réponse.
Pour réaliser l'évaluation de performance, nous avons utilisé un modèle analytique et
un simulateur. Le modèle analytique nous a permis d'étudier le nombre de soumissions
nécessaires pour obtenir la réponse complète dans un système classique, et dans un système
incrémental, lorsque l'espace de stockage est illimité. Le simulateur nous a permis d'étudier
l'inuence des politiques de matérialisation et de l'espace de stockage limité sur le temps de
Conclusion 137
réponse et le nombre de soumissions.
Nous avons utilisé, pour mener nos expériences, deux requêtes conjonctives dérivées du
benchmark TPC-D. Il serait nécessaire de dénir une nouvelle requête pour étudier le compor-
tement d'un système incrémental lorsqu'il par rapport aux unions de requêtes conjonctives.
Les expériences que nous avons menées ne couvre pas tous les aspects des performances.
Nous n'avons par exemple pas étudié le lien entre stockage limité et temps de traitement. De
même, les requêtes que nous avons utilisées ne couvrent pas tous les cas de gures possibles
dans les expériences. Nous avons cependant mis en évidence les points importants concernant
les performances d'un système incrémental et d'un optimiseur sous contrainte.
Les expériences que nous avons présentées nous ont permis de formuler les observations
suivantes concernant le traitement incrémental des requêtes :
le traitement incrémental des requêtes ne pénalise pas le temps de réponse par rapport
à un système classique lorsque toutes les sources sont disponibles simultanément lors
du premier essai ;
la pénalité, en terme de temps de réponse, inhérente aux systèmes incrémentaux (les
relations temporaires doivent être créées et ensuite lues localement) est moins impor-
tante que la pénalité inhérente aux systèmes classiques (les mêmes opérations sont
eectuées plusieurs fois) ;
un système incrémental permet de diminuer le nombre de soumissions nécessaires pour
obtenir la réponse complète. L'apport du système incrémental est d'autant plus im-
portant que le nombre de sources impliqué dans la requête est important et que les
sources sont peu disponibles ;
le temps mis par le système incrémental pour fournir une notication à l'application
est parfois supérieur au temps nécessaire pour construire la réponse complète si toutes
les sources sont disponibles.
Les expériences concernant l'optimisation sous contrainte nous ont permis de faire les
observations suivantes :
l'optimisation sous contrainte génère le plan d'exécution optimal dans la plupart des
cas ;
la politique de matérialisation des SRP ne pénalise pas le temps de traitement des
requêtes par rapport aux politiques max ou feuilles ;
la politique SRP permet d'augmenter les chances qu'a le système de répondre aux
requêtes parachutes par rapport aux deux autres politiques de matérialisation ;
de manière générale le système a peu de chance de répondre aux requêtes parachutes
en utilisant les données disponibles lors des traitements précédents.
138 Évaluation
Il sera intéressant de voir dans quelle mesure les sources alternatives ou les caches sé-
mantiques permettent de fournir plus d'information partielle que les données matérialisées à
partir des sources disponibles.
Finalement, nous avons eectué une expérience pour nous rendre compte de la disponibi-
lité des sources de données dans une application telle que Redoc. Nos résultats préliminaires
montrent que la disponibilité des sources est importante (supérieure à 90%). Il sera inté-
ressant de continuer les mesures dans le cadre de l'application Redoc et d'eectuer une
expérience similaire dans le cadre de l'application du complexe hospitalier.
139
Chapitre 7
Conclusion
7.1 Contributions
L'indisponibilité des sources de données est une éventualité à laquelle les systèmes de
médiation doivent faire face. En eet, rien ne garantit à un système de médiation que les
sources qu'il doit contacter pour construire une réponse sont disponibles : des pannes, des
congestions ou des changements peuvent survenir aussi bien sur les sites autonomes qui
abritent les sources de données que sur le réseau.
L'objectif de notre travail est d'améliorer le fonctionnement des systèmes de médiation
en présence de sources de données indisponibles.
Dans cette optique , nous avons identié deux axes de travail :
Nous avons déni l'approche incrémentale du traitement des requêtes. Lorsqu'une requête
ne peut pas être complètement évaluée, elle est partiellement évaluée, les résultats intermé-
diaires sont matérialisés, la requête initiale est réécrite en utilisant ces vues temporaires en
une requête incrémentale qui permet d'obtenir la réponse complète ecacement.
Nous avons proposé une architecture et des algorithmes qui permettent d'intégrer le
traitement incrémental des requêtes dans les systèmes de médiation existants. Nous avons
comparé un système de médiation mettant en ÷uvre le traitement incrémental des requêtes
à un système classique en utilisant un modèle analytique et un simulateur. Les résultats
que nous avons obtenu montrent (i) que le traitement incrémental des requêtes permet de
réduire le nombre de soumissions nécessaires pour obtenir la réponse complète et (ii) que
140 Conclusion
le traitement incrémental permet de réduire le temps de traitement en évitant la répétition
d'opérations coûteuses.
Nous avons déni un cadre général pour l'extraction d'informations partielles dans les
systèmes de médiation. Nous avons favorisé une approche explicite, où l'application formule
des requêtes parachutes pour obtenir des informations partielles. Dans notre étude, les in-
formations partielles sont obtenues des états intermédiaires du traitement incrémental de la
requête. Nous avons déni un algorithme qui utilise les informations fournies par le système
et par l'utilisateur pour générer des requêtes parachutes.
Dans le scénario où l'application dénit les requêtes parachutes sans tenir compte des
indications du système (et peut donc soumettre en même temps la requête initiale et les
requêtes parachutes qui lui sont associées), nous avons décrit un algorithme pour améliorer la
capacité du système à répondre aux requêtes parachutes tout en conservant des performances
raisonnables. Cet algorithme d'optimisation isole les sous-requêtes partagées entre la requête
initiale et les requêtes parachutes. Nous avons déni une politique de matérialisation qui
permet de prendre en compte ces informations et de matérialiser en priorité les sous-requêtes
partagées (qui pourront être utilisées pour répondre aux requêtes parachutes). Nous avons
montré que l'algorithme d'optimisation fournit un plan optimal dans la plupart des cas ; nous
avons également montré, par simulation, que la politique de matérialisation des sous-requêtes
partagées permet d'améliorer les capacités du système à répondre aux requêtes parachutes.
7.2 Perspectives
Nous avons implanté le traitement incrémental des requêtes dans la première version de
Disco [100]. Nous avons ainsi démontré la faisabilité de notre approche. Il sera important
de la valider en étudiant comment implanter le traitement incrémental des requêtes dans
d'autres systèmes de médiation. Nous pourrons ainsi vérier dans quelle mesure les systèmes
existants peuvent adapter leur fonctionnement en présence de sources de données indispo-
nibles et quel est l'impact précis de l'architecture et des algorithmes que nous proposons sur
les systèmes existants.
Une nouvelle étape sera de mettre en ÷uvre un système de médiation incrémental dans des
applications telles que l'application du complexe hospitalier ou Redoc. Cela nous permettra :
Bibliographie
[1] S. Adali, K. S. Candan, Y. Papakonstantinou, and V. S. Subrahmanian. Query caching
and optimization in distributed mediator systems. In ACM SIGMOD International
Conference on Management of Data, pages 137148, Montreal, Canada, 1996.
[2] R. Amouroux, Ph. Bonnet, M. Lopez, and D. Smith. The design and construction of
adapters for information mediation. Brevet en preparation, 1997.
[3] L. Amsaleg, Ph. Bonnet, M. J. Franklin, A. Tomasic, and T. Urhan. Improving res-
ponsiveness for wide-area data access. Bulletin of the Technical Committee on Data
Engineering, 20(3):311, 1997.
[4] L. Amsaleg, M. J. Franklin, A. Tomasic, and T. Urhan. Scrambling query plans to
cope with unexpected delays. In International Conference on Parallel and Distribution
Information Systems (PDIS), Miami Beach, Florida, 1996.
[5] C.A. Arens, Y. Knoblock. Retrieving and integrating data from multiple information
sources. In Proceedings of the ACM SIGMOD International Conference on Manage-
ment of Data, 1993.
[6] Control Group at Berkeley. CONTROL home page. http://control.cs.berkeley.edu/.
[7] Garlic Group at IBM Almaden. Garlic project home page.
http://www.almaden.ibm.com/cs/garlic/homepage.html.
[8] COIN Group at MIT Sloan School of Management. MINT home page.
http://context.mit.edu/ coin/demos/.
[9] Hermes Group at University of Maryland College park. Hermes project home page.
http://www.cs.umd.edu/projects/hermes/index.html.
[10] Ph. Bonnet and S. Bressan. Extraction and integration of data from semi-structured
documents into business applications. In Industrial Applications of Prolog (INAP),
Kobe, Japan, 1997.
[11] Ph. Bonnet and A. Tomasic. Partial answers for unavailable data sources. Technical
Report RR-3127, INRIA, 1997.
[12] Ph. Bonnet and A. Tomasic. Parachute queries in the presence of unavailable data
sources. In 14ème Journées Bases de Données Avancées, Hammamet, Tunisie, 1998.
144 Bibliographie
[13] Ph. Bonnet and A. Tomasic. Parachute queries in the presence of unavailable data
sources. Technical Report RR-3429, INRIA, 1998.
[14] Ph. Bonnet and A. Tomasic. Partial answers for unavailable data sources. In Pro-
ceedings of the Conference on Flexible Query Answering Systems, Roskilde, Denmark,
1998.
[15] Ph. Bonnet and A. Tomasic. Unavailable data sources in mediator based applications.
In First International Workshop on Practical Information Mediation and Brokering,
and the Commerce of Information on the Internet (I'MEDIAT'98, Tokyo, Japan, 1998.
[16] L. Bouganim, O. Kapitskaia, and P. Valduriez. Memory-adaptive scheduling for large
query execution. In International Conference on Information and Knowledge Mana-
gement (CIKM), Washington, DC, USA, 1998.
[17] S. Bressan and Ph. Bonnet. Answering queries using views and integrity constraints.
In preparation.
[18] S. Bressan, C.H. Goh, et al. The COntext INterchange mediator prototype. In Procee-
dings of the ACM SIGMOD International Conference on Management of Data, Tucson,
Arizona, 1997.
[19] S. Bressan, T. Lee, S. Madnick, and M. Siegel. A procedure for context mediation
of queries to disparate sources. In International Logic Programming Symposium, New
York, NY, USA, 1997.
[20] S. Bressan and Lee. T. Information brokering on the world wide web. In WebNet world
Conference, 1997.
[21] Information Builders. Description of EDA/SQL.
http://www.ibi.com/products/index.html.
[22] P. Buneman, S. Davidson, and A. Watters. Querying independant databases. Infor-
mation Sciences, nov 1989.
[23] P. Buneman, S. Davidson, and A. Watters. A semantics for complex objects and
approximate answers. Journal of Computer and System Sciences, 43, 1991.
[24] P. Buneman, L. Raschid, and J.D. Ullman. Mediator langauges - a proposal for a
standard. ftp://ftp.umiacs.umd.edu/pub/ONRrept/medmodel96.ps.
[25] M.J. Carey, L. M. Haas, P. M. Schwarz, M. Arya, W. F. Cody, R. Fagin, M. Flickner,
A. Luniewski, W. Niblack, D. Petkovic, J. Thomas, J. H. Williams, and E. L. Wim-
mers. Towards heterogeneous multimedia information systems: The garlic approach.
In RIDE-DOM '95, Fifth Int. Workshop on Research Issues in Data Engineering -
Distributed Object Management, pages 124131, Taipei, Taiwan, 1995.
[26] M.J. Carey, L.M. Haas, J. Kleewein, and B. Reinwald. Data access interoperability in
the ibm database family. Bulletin of the Technical Committee on Data Engineering,
21(3), September 1998.
Bibliographie 145
[27] R. G. G. Cattell. The Object Database Standard: ODMG-93 Release 1.2. Morgan-
Kaufmann, San Mateo, CA, December 1995.
[28] S. Ceri, G. Gottlob, and L. Tanca. Logic Programming and Databases. Springer-Verlag,
1990.
[29] U.S. Chakravarthy, J. Grant, and J. Minker. Logic-based approach to semantic query
optimization. TODS, 15(2), 1990.
[30] C.M. Chen and N. Roussopoulos. The implementation and performance evaluation
of the ADMS query optimizer: Integrating query result caching and matching. In
Proceedings of the 4th International Conference on Extending Database Technology,
1994.
[31] W. Chu, H. Yang, K. Chian, M. Minock, G.. Chow, and C. Larson. Cobase: A scalable
and extensible cooperative information system. Journal of Intelligent Information
Systems, 6(1), 1996.
[32] Transaction Processing Performance Council. Tpc-d benchmark specication.
http://www.tpc.org/dspec.html.
[33] S. Dar, M.J. Franklin, B.T. Jònsson, D. Srivastava, and M. Tan. Semantic data caching
and replacement. In Proceedings of the 22nd International Conference on Very Large
Databases, Bombay, India, 1996.
[34] U. Dayal and H.Y. Hwang. View denition and generalization for database integration
in a multidatabase system. IEEE Transactions on Software Engineering, 10(6):628
645, 1983.
[35] F. de Ferreira Rezende and K. Hergula. The heterogeneity problem and middleware
technology: Experiences with and perfromance of database gateway. In Proceedings of
the 24th International Conference on Very Large Data Bases, New York, NY, USA,
1998.
[36] I. Dorronsoro, I. Portillo, J.M. Munoz, and I. Mokoroa. Hospital application require-
ments denition (d7a.1). MIRO-WEB EP 25208 Deliverable, 1998.
[37] W. Du and M-C. Shan. Query Processing in Pegasus, pages 449468. Prentice Hall,
1995.
[38] C. Dyreson. Information retrieval from an incomplete data cube. In Proceedings of the
22nd International Conference on Very Large Databases, Bombay, India, 1996.
[39] Epistemics. Infomaster. http://www.epistemics.com/infomaster.html.
[40] P. Fankhauser, G. Gardarin, M. Lopez, J. Munoz, and A. Tomasic. Experiences in
federated databases: From iro-db to miro-web. In Proceedings of the 24th International
Conference on Very Large Data Bases (Industrial Sessions), New York, NY, USA, 1998.
146 Bibliographie
[41] M.F. Fernandez, D. Florescu, J. Kang, A.Y. Levy, and D. Suciu. Catching the boat
with strudel: Experiences with a web-site management system. In Proceedings of the
ACM SIGMOD International Conference on Management of Data, Seattle, Washing-
ton, USA, 1998.
[42] M.F. Fernandez, D. Florescu, A.Y. Levy, and D. Suciu. Warehousing and incremental
evaluation for web site management. In 14ème journées Bases de Données Avancées,
Hammamet, Tunisie, 1998.
[43] B. Finance, V. Smahi, and J. Fessy. Query processing in iro-db. In Proceedings
of the Fourth International Conference on Deductive and Object-Oriented Databases
(DOOD95), Singapore, 1995.
[44] M.J. Franklin, B.T. Jònsson, and D. Kossmann. Performance tradeos for client-server
query processing. In Proceedings of the ACM SIGMOD International Conference on
Management of Data, Montréal, Canada, 1996.
[45] T. Gaasterland, P. Godfrey, and J. Minker. An overview of cooperative answering.
Journal of Intelligent Information Systems, 1(2):123157, 1992.
[46] H. Garcia-Molina, J. Hammer, K. Ireland, Y. Papakonstantinou, J.D. Ullman, and
J. Widom. The TSIMMIS project - integration of heterogeneous information sources.
In Proc. of the 100th Anniversary Meeting of Information Processing Society of Japan,
pages 718, Tokyo, Japan, 1994.
[47] G. Gardarin, S. Gannouni, B. Finance, P. Fankhauser, W. Klas, D. Pastre, and R. Le-
go. Iro-db : Making relational and object-oriented database systems interoperable. In
Object-Oriented Multidatabase Systems: A Solution for Advanced Applications, pages
449468. Prentice Hall, 1995.
[48] P. Godfrey and J. Gryz. Answering queries by semantic caches.
http://www.cs.umd.edu/ godfrey, 1998.
[49] J. Gray, P. Helland, P. O'Neil, and D. Shasha. The dangers of replication and a solu-
tion. In ACM SIGMOD International Conference on Management of Data, Montreal,
Canada, 1996.
[50] J. Gray and A. Reuter. Transaction Processing: concepts and techniques. Morgan-
Kaufmann, San Mateo, CA, 1994.
[51] SIMS group at ISI. SIMS project home page. http://www.isi.edu/sims/sims-
homepage.html.
[52] H. Gupta. Selection of views to materialize in a data warehouse. In Proceedings of the
International Conference on Database Theory ICDT'97, Athens, Greece, 1997.
[53] L.M. Haas, D. Kossmann, E.L. Wimmers, and J. Yang. Optimizing queries across
diverse data sources. In VLDB'97, Proc. of 23rd Int. Conf. on Very Large Data Bases,
Athens, Greece, 1997.
Bibliographie 147
[54] J. Hammer, H. Garcia-Molina, J. Widom, W. Labio, and Y. Zhuge. The stanford
data warehousing project. Bulletin of the Technical Committee on Data Engineering,
18(2):4148, 1995.
[55] J. M. Hellerstein, P. J. Haas, and H.J. Wang. Online aggregations. In Proceedings of the
ACM SIGMOD International Conference on Management of Data, Tucson, Arizona,
USA, 1997.
[56] IBM. DB2 DataJoiner case studies. http://www.software.ibm.com/data/datajoiner/casestudy.html.
[57] Data Integration Inc. An introduction to InterViso. http://www.cerfnet.com/ mar-
gie/dii/index.html.
[58] W. Inmon. Building the data bridge - the ten critical success factors of building a data
warehouse. Database Programming & Design, April 1992.
[59] R. Jain. The Art of Computer Systems Performance Analysis. Wiley professional
Computing, 1991.
[60] Junglee. Junglee technology. http://www.junglee.com/tech/index.html.
[61] P. Kanellakis. Elements of relational database theory. In J. van Leeuwen, editor,
Handbook of Theoretical Computer Science, chapter 17. Elsevier Science Publishers
B.V., 1990.
[62] O. Kapitskaia, A. Tomasic, and P. Valduriez. Dealing with discrepencies in wrapper
functionality. In 13ème Journées Bases de Données Avancées, Grenoble, France, 1997.
[63] A. Keller and J. Basu. A predicate-based caching scheme for client-server database
architectures. In Proceedings of the International Conference on parallel and distributed
Information Systems, 1994.
[64] W. Kim. Modern database systems : the object model, interoperability, and beyond.
Addison-Wesley, 1994.
[65] W. Kim, I. Choi, S. Gala, and M. Scheevel. On resolving schematic heterogeneity in
multidatabase systems. In Modern database systems : the object model, interoperability,
and beyond, pages 649663. Addison-Wesley, 1994.
[66] T. Kirk, A. Y. Levy, Y. Sagiv, and D. Srivastava. The information manifold. In AAAI
Spring Symposium on Information Gathering in Distributed Heterogeneous Environ-
ments, Stanford, California, USA, 1995.
[67] W.J. Labio, D. Quass, and B. Adelberg. Physical database design for data warehouses.
In Proceedings of the International Conference on Data Engineering ICDE'97, Orlando,
Florida, 1997.
[68] T. Landers and R.L. Rosenberg. An overview of Multibase. In Distributed Databases,
pages 1533184. North Holland, 1982.
148 Bibliographie
[69] R.M. Lee. Conversational aspects of database interactions. In Proceedings of the Fourth
International Conference on Very Lage Data Bases, West Berlin, Germany, 1978.
[70] T.Y. Lee and S. Bressan. Multimodal integration of disparate information sources with
attribution. In Entity Relationship Workshop on Information Retrieval and Conceptual
Modeling, 1997.
[71] A. Y. Levy, A. Rajaraman, and J. J. Ordille. Querying heterogeneous information
sources using source descriptions. In Proceedings of the 22nd International Conference
on Very Large Databases, Bombay, India, 1996.
[72] A.Y. Levy, A. Mendelzon, Y. Sagiv, and D. Srivastava. Answering queries using views.
In Proceedings of the 14th ACM SIGACT-SIGMOD-SIGART Symposium on Principles
of Database Systems, PODS-95, San Jose, California, USA, 1995.
[73] C. Li, R. Yerneri, J.D. Ullman, and H. Garcia-Molina. Optimizing large join queries
in mediation systems. In Proceedings of the International Conference on Database
Theory, 1999.
[74] C. Li, R. Yerneri, V. Vassalos, H. Garcia-Molina, Y. Papakonstantinou, J.D. Ullman,
and M. Valiveti. Capability based mediation in tsimmis. In Proceedings of the ACM
SIGMOD International Conference on Management of Data, New York, NY, USA.,
1998.
[75] L. Libkin. Approximation in databases. In Proceedings of the International Conference
on Database Theory, 1995.
[76] M. Lopez, J. López, J.M. Muñoz, H. Laude, and G. Gardarin. Product denition
(d2.1.1). MIRO-WEB EP 25208 Deliverable, 1998.
[77] J.J. Lu, G. Moerkotte, J. Schü, and V.S. Subrahmanian. Ecient maintenance of mate-
rialized mediated views. In Proceedings of the ACM SIGMOD International Conference
on Management of Data, San Jose, California, USA, 1995.
[78] A. Motro. Cooperative database systems. In Proceedings of the 1994 Workshop on
Flexible Query-Answering Systems (FQAS '94), pages 116, 1994.
[79] A. Motro. Multiplex: A formal model for multidatabases and its implementation.
Technical Report ISSE-TR-95-103, George Mason University, 1995.
[80] H. Naacke, A. Tomasic, and G. Gardarin. Leveraging mediator cost model with hete-
rogeneous data sources. In Proceedings of the 11th International Conference on Data
Engineering, Orlando, Florida, USA, 1998.
[81] Intelligent Integration of Information (I3). Reference architecture.
http://mole.dc.isx.com/I3/html/briefs/I3brief.html#ref.
[82] Oracle. Oracle open gateways. http://www.oracle.com/products/gateways/.
Bibliographie 149
[83] Y. Papakonstantinou, A. Gupta, H. Garcia-Molina, and J.D. Ullman. A query transla-
tion scheme for rapid implementation of wrappers. In Proceedings of the International
Conference on Deductive and Object Oriented Databases, Singapore, 1995.
[84] X. Qian. Query folding. In Proceedings of the 12th International Conference on Data
Engineering, 1996.
[85] A. Ramfos, J. Fessy, B. Finance, and V. Smahi. Iro-db : A solution for computer inte-
grated manufacturing applications. In Proceedings of the 3rd International Conference
on Cooperative Information Systems (CoopIS95), Vienna, Austria, 1995.
[86] M.T. Roth and P. Schwarz. Don't scrap it, wrap it! a wrapper architecture for le-
gacy data sources. In Proceedings of the 23rd International Conference on Very Large
Databases, Athens, Greece, 1997.
[87] T. Sellis. Multiple-query optimization. ACM Transactions on Database Systems,
13(1):2352, March 1988.
[88] M-C. Shan, R. Ahmen, J. Davis, W. Du, and W. Kent. Modern Database Systems:
The Object Model, Interoperability, and Beyond, chapter Pegasus: A Heterogeneous
Information Management System, pages 664682. ACM Press, 1995.
[89] A.P. Sheth and J.A. Larson. Federated database systems for managing distributed, he-
terogeneous, and autonomous databases. ACM Computing Surveys, 22(3), September
1990.
[90] J.M. Smith, P. Bernstein, U. Dayal, N. Goodman, T. Landers, K.W.T. Lin, and
E. Wong. MULTIBASE - integrating heterogeneous distributed database systems.
In Proc. AFIPS NCC, pages 487499, 1981.
[91] D. Srivastava, S. Dar, Jagadish H.V., and A.Y. Levy. Answering queries with aggrega-
tion using views. In Proceedings of the 22nd International Conference on Very Large
Databases, Bombay, India, 1996.
[92] D. Stacey. Replication: Db2, oracle, or sybase. Sigmod Record, 21(4), December 1995.
[93] R. Stout. Eda/sql. In Modern database systems : the object model interoperability, and
beyond, pages 649663. Addison-Wesley, 1994.
[94] D. Suciu. Workshop on management of semistructured data.
http://www.research.att.com/ suciu/workshop-papers.html, 1997.
[95] The COIN team. Démonstration coin. http://context.mit.edu/ coin/demos/.
[96] The Tsimmis team. Démonstration tsimmis. http://www-
db.stanford.edu/tsimmis/tsimmis.html.
[97] M. Templeton, H. Henley, E. Maros, and D. Van Buer. InterViso : Dealing with the
complexity of federated database access. VLDB Journal, 4(2), 1995.
150 Bibliographie
[98] G. Thomas, G.R. Thompson, C.W. Chung, E. Barkmeyer, F. Carter, M. Templeton,
S. Fox, and B. Hartman. Heterogeneous distributed database systems for production
use. In Modern database systems : the object model, interoperability, and beyond, pages
237266. Addison-Wesley, 1994.
[99] J.C. Thomas. Psychological issues in data base management. In Proceedings of the
Third International Conference on Very Lage Data Bases, Tokyo, Japan, 1977.
[100] A. Tomasic, R. Amouroux, Ph. Bonnet, O. Kapitskaia, H. Naacke, and L. Raschid.
The distributed information search component (disco) and the world-wide web. In
Proceedings of the ACM SIGMOD International Conference on Management of Data,
Tucson, Arizona, USA, 1997.
[101] A. Tomasic, L. Raschid, and P. Valduriez. Scaling heterogeneous database and the
design of Disco. In Proceedings of the 16th International Conference on Distributed
Computing Systems (ICDCS-16), pages 449457, Hong Kong, May 1996. IEEE Com-
puter Society Press.
[102] J. D. Ullman. Principals of Database and Knowledge-Base Systems, volume 2. Com-
puter Science Press, 1989.
[103] J.D. Ullman. Information integration using logical views. In Proceedings of the Inter-
national Conference on Database Theory, 1997.
[104] T. Urhan, M. J. Franklin, and L. Amsaleg. Cost based query scrambling. In Procee-
dings of the ACM SIGMOD International Conference on Management of Data, Seattle,
Washington, USA, 1998.
[105] S. Venkataram and T. Zhang. Heterogeneous database query optimization in db2
universal datajoiner. In Proceedings of the 24th International Conference on Very
Large Data Bases (Industrial Sessions), New York, NY, USA, 1998.
[106] C.L. Viles and J.C. French. Availability and latency of world wide web information
servers. The USENIX Association, Computing Systems, 8(1), 1995.
[107] S. V. Vrbsky and J. W. S. Liu. APPROXIMATE: A query processor that produces
monotonically improving approximate answers. Transactions on Knowledge and Data
Engineering, 5(6):10561068, December 1993.
[108] G. Wiederhold. I3 glossary. http://www-db.stanford.edu/pub/gio/1996/glossat.ps.
[109] G. Wiederhold. Mediators in the architecture of future information systems. IEEE
Computer, March 1992.
[110] G. Wiederhold. Intelligent integration of information. In Proceedings of the 1993
ACM SIGMOD International Conference on Management of Data, pages 434437,
Washington, D.C., USA, 1993.
[111] G.R. Wright and W.R. Stevens. TCP/IP Illustrated: The Implementation, volume 2.
Addison-Wesley, 1995.
Bibliographie 151
[112] Y. Zhuge, H. Garcia-Molina, J. Hammer, and J. Widom. View maintenance in a ware-
housing environment. In Proceedings of the ACM SIGMOD International Conference
on Management of Data, San Jose, California, USA, 1995.
[113] Y. Zhuge, H. Garcia-Molina, and J.L. Wiener. Consistency algorithms for multi-source
warehouse view maintenance. Distributed and Parallel Databases, 6(1):740, 1998.
152 Bibliographie
153
Annexe A
Glossaire
conguration de sources Un ensemble de sources disponibles et indisponibles.
construct L'algorithme de construction de la requête incrémentale à partir de l'état du
médiateur.
containment mapping Un ensemble de littéraux L est contenu dans une requête conjonc-
tive Q, noté L Q si et seulement si il existe une fonction des variables de L vers
les variables de Q, appelée containment mapping, telle que tous les littéraux de L
correspondent à un littéral dans le corps de Q.
disponible une source est disponible si elle renvoie complètement la réponse à la sous-
requête qui lui est envoyée.
données semi-structurées les données semi-structurées sont des données sans schéma xé
ou uniforme [103].
évaluation classique Un modèle d'évaluation où la requête initiale est soumise jusqu'à ce
qu'elle soit évaluée.
évaluation incrémentale Un modèle d'évaluation oú une requête incrémentale est géné-
rée lorsqu'une ou plusieurs sources de données sont indisponibles et oú les requêtes
parachutes permettent d'extraire de l'information de l'état du médiateur.
évaluation sous contraintes Un modèle d'évaluation oú une requête et ses requêtes pa-
rachutes sont soumises simultanément au médiateur.
feuilles Les feuilles du plan d'exécution par rapport au médiateur (les sous-requêtes en-
voyées aux sources de données sont des feuilles d'après notre dénition).
materialize L'algorithme de matérialisation des sous-requêtes disponibles en fonction d'une
politique de matérialisation et d'un espace de stockage limité.
médiateur Le système de traitement des requêtes intégrant diérentes sources de données.
154 Glossaire
politique de matérialisation Le principe qui dénit quelles sous-requêtes sont candidates
à la matérialisation dans l'algorithme materialize. Nous considérons les politiques
suivantes: sous arbres maximaux disponibles, feuilles, et sous-requêtes partagées.
réécriture de requête en fonction de vues Un algorithme qui accepte comme arguments
une requête et un ensemble de vues et réécrit la requête en utilisant les vues, si possible.
relation matérialisée Une relation dans l'état du médiateur qui contient la réponse à une
sous-requête.
réponse complète La réponse à une requête initiale.
réponse incrémentale La réponse à une requête incrémentale. Cette réponse, lorsqu'elle
est obtenue, est équivalente à la réponse complète à condition qu'aucune mise à jour
concernant la requête ne soit eectuée sur les sources de données.
réponse partielle Ensemble d'informations partielles se rapportant à la requête initiale ;
la réponse à une requête parachute.
requête une requête conjonctive (requête relationnelle composée uniquement de sélections,
projections et jointures) ou une union de requêtes conjonctives.
requête incrémentale Une réécriture de la requête initiale qui utilise l'état du médiateur.
requête parachute Une requête utilisée pour extraire de l'information partielle de l'état
du médiateur.
source de données Une source de données autonome.
sous-arbre maximal disponible La sous-requête qui correspond à un sous-arbre maximal
du plan d'exécution dont les feuilles sont toutes disponibles dans une conguration
donnée.
sous-réponse La réponse à une sous-requête.
sous-requête Une partie de la requête qui résulte de sa décomposition. Des sous-requêtes
sont envoyées aux sources de données qui renvoient des sous-réponses. Des sous-requêtes
sont également matérialisées dans l'état du médiateur. Chaque sous-arbre du plan
d'exécution possède une sous-requête associée. Il est à noter que la notion de sous-
requêtes ainsi dénie n'est pas celle utilisée par Ullman [102] qui appelle sous-requête
une expression de type select-from-where utilisée dans la clause where d'une requête.
sous-requête partagée (SRP) La sous-requête la plus spécique dont le corps contient
un ensemble de requêtes parachutes et la requête initiale (au sens du containment
mapping).
temps de traitement Temps de traitement de la requête lors des évaluations successives.
Le temps de réponse est composé du temps de traitement et du temps d'attente entre
les soumissions des requêtes incrémentales.
155
variable range restricted Une variable qui apparait dans un prédicat correspondant à une
relation, dans le corps d'une règle datalog.