A propos de requêtes possibilistes adressées à des bases de
Transcription
A propos de requêtes possibilistes adressées à des bases de
A propos de requêtes possibilistes adressées à des bases de données possibilistes Laurence Duval* Olivier Pivert** *IRISA/ENSAI Campus de Ker Lann BP 37203 35170 Bruz Cedex France [email protected] **IRISA/ENSSAT Technopole Anticipa BP 447 22305 Lannion Cedex, France [email protected] L'interrogation de bases de données contenant des informations imprécises soulève différents problèmes, dont celui de la complexité. Dans ce papier, nous considérons un nouveau type de requêtes, appelées requêtes possibilistes, de la forme : "dans quelle mesure est-il possible que le n-uplet t appartienne à la réponse à la requête Q", où Q est une requête usuelle pouvant faire intervenir des opérations de sélection et de jointure. Le cadre choisi pour modéliser les données est celui des bases de données possibilistes, où une valeur d'attribut mal connue est représentée par une distribution de possibilité. Nous décrivons une méthode permettant d'évaluer de telles requêtes sans avoir à expliciter les mondes possibles associés à la base considérée, le but étant d'éviter l'explosion combinatoire induite par l'approche d'évaluation canonique. RÉSUMÉ. . Querying databases containing imprecise data raises different problems among which that of complexity. In this paper, a new type of query is considered. These queries, called possibilistic queries, are of the form: "to what extent is it possible that tuple t belongs to the answer to query Q", where Q denotes a usual query that may involve selection and join operations. The model used is the relational possibilistic database framework, where an illknown attribute value is represented as a possibility distribution. We describe a method allowing to process such queries without making explicit the different worlds associated with the database. The main objective of this approach is to avoid the combinatorial growth induced by the canonical evaluation method. ABSTRACT : théorie des possibilités, données mal connues, requêtes possibilistes, interprétation en mondes. KEYWORDS : possibility theory, ill-known values, possibilistic queries, world-based interpretation. MOTS-CLÉS 1. Introduction Dans différents domaines, on note un besoin croissant de systèmes d'information capables de traiter des données mal connues. C'est notamment le cas des entrepôts de données (data warehouses) pour lesquels la fusion d'informations provenant de différentes sources peut induire de l'imprécision (notons qu'à l'heure actuelle, cette dernière est traitée par des méthodes usuelles de nettoyage de données). La théorie des possibilités [ZAD 78] propose un modèle ordinal de l'incertain dans lequel l'imprécision est représentée au moyen d'une relation de préférence définissant un ordre total sur les situations possibles. Cette approche est fortement liée aux ensembles flous [ZAD 65] puisque l’idée est de contraindre les valeurs que peut prendre une variable par un ensemble flou normalisé (i.e., où au moins un élément appartient complètement à l’ensemble). Une distribution de possibilité est une application π d’un domaine donné dans l’intervalle unité [0, 1] et π(a) donne le degré de possibilité associé au fait que la valeur effective de la variable est a. La condition de normalisation impose qu’au moins une valeur (a 0 ) soit complètement possible, i.e., π (a 0 ) = 1. Ce formalisme est particulièrement adapté à l’expression d’incertitudes subjectives décrites au moyen de termes linguistiques tels que grand, jeune, plutôt petit, etc. Quand le domaine est fini, une distribution de possibilité est notée : {π1 /a1 + … + πn /an } où ai est une valeur candidate et πi son degré de possibilité. Dans le cadre des bases de données relationnelles, le modèle possibiliste offre un cadre unifié pour représenter les valeurs précises et les valeurs imprécises telles que les intervalles usuels ou flous et les valeurs nulles (voir [BOS 97] pour plus de détails). Au delà de la représentation, un aspect important concerne la manipulation de ce type de données, et des travaux fondateurs ont, dans les années 80, posé quelques bases, particulièrement pour les requêtes contenant seulement des opérations simples, à savoir la sélection et la projection [PRA 84]. Ainsi, une requête de sélection retourne une relation dans laquelle chaque n-uplet est affecté d'une paire de degrés exprimant respectivement la possibilité et la nécessité d'appartenance du n-uplet à la relation résultat. Il est clair toutefois qu'un langage de requêtes restreint à la sélection et à la projection n'est guère satisfaisant dans la mesure où il ne permet de manipuler qu'une relation à la fois et n'a donc qu'un pouvoir d'expression très limité. La prise en compte d'autres opérateurs pose de sérieux problèmes et il a été montré [IMI 84] qu'il n'existait pas de modèle "simple" constituant un système de représentation fort pour l'ensemble des opérateurs relationnels. En particulier, le modèle possibiliste (tout comme le modèle OR-sets [LIP 81]) ne constitue pas un tel système de représentation et le résultat d'une requête consiste donc en général en un ensemble de mondes qu'il est impossible de représenter à l'aide d'une relation unique du modèle. Cet état de fait a deux conséquences fâcheuses : d'une part, il est difficile à un utilisateur d'interpréter une réponse composée d'un très grand nombre de tables, d'autre part, le coût de l'évaluation est généralement prohibitif puisque la requête doit être évaluée sur chacun des (très nombreux) mondes associés à la base de donnée considérée. Dans [BOS 01], un langage d'interrogation relationnel comportant des opérateurs de sélection, projection et une jointure spécifique est proposé. L'intérêt de ce cadre est qu'il se fonde sur des procédures d'évaluation où les mondes ne sont pas explicitement manipulés et, par conséquent, on peut espérer atteindre une complexité raisonnable. Dans le même esprit de faisabilité, l'idée développée dans ce papier consiste à considérer des requêtes spécifiques, appelées "requêtes possibilistes" − concept inspiré des propositions d'Abiteboul et al. [ABI 91] et introduit, dans un cadre possibiliste, dans [BOS 02] −, pour lesquelles il n'est pas non plus nécessaire d'expliciter les mondes. Une requête possibiliste diffère d'une requête classique en ceci qu'elle fait référence à un n-uplet particulier. Plus précisément, sa formulation générale est : "dans quelle mesure est-il possible que le n-uplet t appartienne au résultat de la requête Q", où Q désigne une requête relationnelle usuelle. Dans ce travail, nous nous restreignons aux requêtes Q contenant seulement des sélections, des jointures et une projection finale. Nous supposerons également qu'une relation n'est utilisée qu'une seule fois dans une requête et que les distributions de possibilité utilisées sont finies. L'étude des requêtes possibilistes constitue un travail original puisqu'à notre connaissance aucun travail de recherche similaire n'a encore été entrepris. Le papier est structuré de la façon suivante. En section 2, les requêtes possibilistes sont présentées et des exemples illustrent l'explosion combinatoire induite par la méthode d'évaluation "naïve" (i.e., la méthode canonique fondée sur l'explicitation des mondes). Différents principes permettant d'améliorer cette méthode sont donnés en section 3. Dans la section 4, une méthode d'évaluation reposant sur un principe différent (appelée méthode "compacte") est présentée. Cette nouvelle stratégie, qui ne nécessite pas de calculer explicitement les différents mondes tire avantage des principes décrits dans la section précédente. Les opérations impliquées dans le calcul compact (sélection, jointure et calcul du degré final) sont détaillées en section 5 et illustrées dans l'exemple traité en section 6 . La section 7, quant à elle, est consacrée aux conclusions ainsi qu'à la mise en évidence de directions pour des travaux futurs. 2. Introduction aux requêtes possibilistes Nous donnons tout d'abord le vocabulaire que nous utilisons dans ce papier, puis nous illustrons à travers un exemple la relation entre une base de données possibiliste et les mondes qui lui sont associés. 2.1. Vocabulaire et notations Dans les prochaines sections, les notations suivantes sont utilisées. B représente un base de données relationnelle usuelle et B, une base de données relationnelle possibiliste. Rep(B) dénote l'ensemble des mondes (bases de données usuelles) associés à B. Les opérations de projection sur une relation possibiliste, de sélection sur une relation possibiliste et de jointure de relations possibilistes sont notées respectivement πp , σp et ><p . Enfin, Qp désigne une requête possibiliste incluant la requête usuelle Q. Une relation possibiliste a la même structure qu'une relation usuelle. Elle diffère uniquement d'une relation usuelle en ceci que la valeur d'un attribut peut être une distribution de possibilité (i.e., un ensemble disjonctif de valeurs candidates pondérées). Dans cet article, le fait de considérer des distributions de possibilité finies se traduit par le caractère fini de l'ensemble des mondes associés à une base de données possibiliste, chacun d'eux étant une base de données relationnelle usuelle à laquelle est associé un degré de possibilité. 2.2. Exemple introductif Exemple 1. Considérons une base de données militaire décrivant des images d'avions prises par satellite. Cette base de données contient deux relations : Img(#i, t_a, date, lieu) et Avn(t_a, lg, vt). La première décrit des images identifiées par un numéro (#i), un type d'avion éventuellement mal connu (t_a) ainsi que le lieu et la date où la photo a été prise. La seconde, quant à elle, contient les caractéristiques des avions considérés : type (t_a), longueur (lg) et vitesse maximale (vt), informations supposées ici précises. Considérons l'extension suivante de cette base de données possibiliste B : Img #i i1 i3 t_a a1 1/a3 + 0.3/a4 date 1/d3 + 0.7/d1 d1 lieu l1 l2 Avn t_a a1 a2 a3 a4 lg 20 25 18 20 vt 1000 1200 800 1200 Dans ce contexte, un exemple de requête possibiliste est : "dans quelle mesure est-il possible que le n-uplet <d1, 20> appartienne au résultat de la requête Q donnant les paires (d, l) telles qu'il existe (au moins) une image prise à la date d et représentant un avion de longueur l". La sémantique naturelle d'une telle requête peut être exprimée en se référant aux mondes (plus ou moins possibles) associés à la base B. A l'extension précédente de B correspondent quatre mondes M1, M2, M3, M4, chacun d'eux contenant la relation Avn et l'une des relations suivantes : Img1 #i Π = 1 i1 i3 t_a a1 a3 date d3 d1 lieu l1 l1 Img2 #i Π = 0.7 i1 i3 t_a a1 a3 date d1 d1 lieu l1 l1 Img3 #i Π = 0.3 i1 i3 t_a a1 a4 date d1 d1 lieu l1 l1 Img4 #i Π = 0.3 i1 i3 t_a a1 a4 date d3 d1 lieu l1 l1 où Π indique le degré de possibilité du monde considéré. On voit que seuls les mondes M2 , M3 et M4 permettent de "générer" le n-uplet t et on en conclut qu'il est possible au degré 0.7 que le n-uplet <d1, 20> appartienne au résultat de la requête Q♦ Dans le but d'illustrer la complexité liée à l'évaluation des requêtes possibilistes en passant par les mondes, nous considérerons dans la suite la base de données possibiliste B' composée de la relation Avn précédente et de la relation possibiliste Img' suivante : Img' #i i1 i2 i3 i4 t_a 1/a2 + 0.5/a1 1/a3 + 0.8/a2 + 0.5/a4 + 0.2/a1 1/a3 + 0.3/a4 1/a4 + 0.2/a1 date 1/d3 + 0.7/d1 1/d2 + 0.2/ d 3 d1 1/d1 + 0.2/ d 3 lieu 1/l1 + 0.8/l2 1/l3 + 0.7/l4 l1 l2 Cette base de données contenant seulement 8 n-uplets, a exactement 1024 interprétations, ce qui illustre la nature combinatoire du problème et montre qu'il est irréaliste d'évaluer une requête possibiliste Qp en appliquant la requête Q sur chacun des mondes associés à la base considérée. Il est donc impératif de mettre en évidence des méthodes d'évaluation efficaces. Toutefois, si l'approche qui consiste à passer par les mondes n'est pas satisfaisante du point de vue des calculs, elle reste la référence du point de vue sémantique, i.e., elle permet de fonder la démonstration de la validité de toute autre approche. 3. Principe de l'évaluation des requêtes possibilistes Dans cette section, nous décrivons l'approche canonique d'évaluation consistant à expliciter les mondes associés à la base de données possibiliste initiale B, et nous exhibons quelques améliorations permettant de limiter le nombre des mondes intervenant dans le calcul. Ces améliorations seront reprises en section 4 dans la stratégie d'évaluation compacte que nous proposons. 3.1. Stratégie initiale naïve Comme nous l'avons illustré dans la section précédente, une stratégie d'évaluation naïve (et inefficace) consiste à : i) calculer tous les mondes possibles de rep(B), ii) évaluer Q sur chacun de ces mondes, iii) rechercher le monde de possibilité la plus élevée contenant le n-uplet t. L'algorithme d'évaluation correspondant est le suivant : µ ← 0; pour tout B dans rep(B) faire Res ← Q(B); si σt (Res) ≠ ∅ alors µ ← max(Π(B), µ) fin si fin pour où Π(B) représente le degré de possibilité associé au monde B. La condition de sélection σt vise à sélectionner le n-uplet t et est définie de la façon suivante : σt = {A 1 = t.A 1 et A 2 = t.A 2 … et A n = t.A n } où A 1 , ..., A n désignent les attributs apparaissant dans t. Comme nous l'avons illustré auparavant (voir le dernier exemple de la section 2.2), cette procédure n'est pas viable en général, à cause de l'explosion combinatoire du nombre de mondes. Pour en améliorer l'efficacité, on peut chercher à réduire le nombre de mondes à considérer. Cette approche, illustrée dans les deux soussections suivantes, a toutefois ses limites et nous verrons plus loin qu'il est nécessaire d'envisager une philosophie d'évaluation différente si l'on veut pouvoir obtenir des performances réalistes. 3.2. Suppression des attributs inutiles La première amélioration consiste à supprimer de la base de données possibiliste les attributs qui n'apparaissent pas dans Q, ce qui est d'autant plus intéressant que ceux-ci prennent des valeurs imprécises. Notons B' la base de données possibiliste obtenue de cette façon. La procédure d'évaluation devient : µ ← 0; pour tout B dans rep(B') faire Res ← Q(B); si σt (Res) ≠ ∅ alors µ ← max(Π(B), µ) fin si fin pour Exemple 2. Revenons sur l'exemple précédent, et supposons que nous voulions évaluer le degré de possibilité d'appartenance du n-uplet <d1, 20> à la jointure des tables Img' et Avn. Les attributs que l'on peut supprimer sont #i, lieu et vt. Par conséquent, l'évaluation de la requête possibiliste entraîne le calcul des mondes associés à la base de données composée des deux relations suivantes (les attributs supprimés apparaissent en gris) : Img'' #i i1 i2 i3 i4 t_a 1/a2 + 0.5/a1 1/a3 + 0.8/a2 + 0.5/a4 + 0.2/a1 1/a3 + 0.3/a4 1/a4 + 0.2/a1 date 1/d3 + 0.7/d1 1/d2 + 0.2/ d 3 lieu 1/l1 + 0.8/l2 1/l3 + 0.7/l4 d1 1/d1 + 0.2/ d 3 l1 l2 Avn' t_a a1 a2 a3 a4 lg 20 25 18 20 sp 1000 1200 800 1200 Dans ce cas, le nombre d'interprétations a été divisé par 4 (il est maintenant égal à 256), mais il reste cependant très élevé pour une base possibiliste initiale contenant 8 n-uplets, et l'on est encore loin d'une méthode d'évaluation "réaliste" en termes de performances♦ 3.3. Utilisation du n-uplet cible Toujours dans le but d'améliorer le processus, un second traitement consiste à supprimer des relations les n-uplets qui ne peuvent pas générer le n-uplet cible t. Plus précisément, la technique consiste à éliminer les valeurs candidates (ce qui entraine, dans certains cas, des disparitions de n-uplets) avant de calculer les mondes. Pour ce faire, nous devons définir la sélection fondée sur un critère de la forme " attribut = constante " dans le contexte des relations possibilistes. L'idée est de filtrer les valeurs des attributs qui, dans Q, interviennent dans la projection finale (i.e., ceux apparaissant dans le n-uplet cible). Pour chaque n-uplet u d'une relation possibiliste r impliquée dans la requête, seules les valeurs d'attribut apparaissant dans le n-uplet cible sont conservées. Si, pour un attribut A d'un n-uplet u, aucune des valeurs candidates n'est égale à t.A, le n-uplet u est supprimé. Formellement, une sélection du type " attribut = constante " sur une relation possibiliste de schéma R(A, X) est définie de la façon suivante : select(r, A = t.A) = {v = <π/t.A, u.X> | ∃ u, u ∈ r e t u.A = {… + π/t.A + …}} (1). On note σp t (B') l'opération : select(B', A1 = t.A 1 ) et ... et select(B', An = t.A n ) où A 1 , ..., A n sont les attributs apparaissant dans le n-uplet cible t. Implicitement, σp t (B') signifie que la sélection est exécutée sur toute relation r de B' contenant l'un au moins des attributs Ai . L'algorithme correspondant est le suivant : µ ← 0; pour tout B dans rep(σp t (B')) faire Res ← Q(B); si Res ≠ ∅ alors µ ← max(Π(B), µ) fin si fin pour Exemple 3. Dans l'exemple précédent, ce traitement se traduit par la suppression de toutes les valeurs de date (respectivement de longueur) différentes de d1 (resp. 20). Image''' t_a 1/a2 + 0.5/a1 1/a3 + 0.8/a2 + 0.5/a4 + 0.2/a1 1/a3 + 0.3/a4 1/a4 + 0.2/a1 date 0.7/d1 1/d2 + 0.2/ d 3 d1 d1 Avion'' t_a a1 a2 a3 a4 lg 20 25 18 20 Ainsi, l'évaluation de la requête Q ne se fait plus que sur 8 mondes (au lieu de 256)♦ Toutes ces améliorations peuvent réduire de façon significative le nombre de mondes qui doivent être calculés, mais elles ne permettent pas en général d'obtenir une complexité raisonnable puisque la nature combinatoire du problème persiste. Dans la section suivante, nous décrivons le principe général d'une stratégie évitant d'expliciter les mondes. 4. Les quatre étapes de l'évaluation compacte d'une requête possibiliste L'idée clé est de ne pas calculer tous les mondes possibles. En d'autres termes, l'objectif est de procéder à un calcul compact, i.e., à une évaluation manipulant seulement des relations possibilistes. La remarque suivante conforte la légitimité de cette approche. Rappelons que, si le modèle possibiliste n'est pas assez riche pour représenter la réponse exacte à une requête relationnelle Q en général (en raison de la nécessité de représenter des n-uplets "disjonctifs", i.e., qui ne peuvent pas coexister dans un même monde), ce problème disparaît dans le contexte des requêtes possibilistes. Une telle requête fait en effet référence à un seul n-uplet, et l'on n'a donc pas à se préoccuper de la coexistence de n-uplets "incompatibles" dans les relations intermédiaires manipulées – on ne cherche pas à représenter le résultat de Q. Cette remarque sera exploitée dans la section 5 consacrée à la définition des opérateurs. La stratégie d'évaluation que nous proposons reprend les améliorations décrites en section 3 et comporte les quatre étapes suivantes : 1) Suppression des attributs inutiles, i.e. ceux des relations possibilistes utilisées dans Q mais qui n'apparaissent pas dans la requête Q (cf. 3.2) ; 2) Propagation des valeurs des attributs du n-uplet cible apparaissant dans Q. Cette étape se résume à introduire des sélections permettant de ne retenir que les nuplets susceptibles de contribuer à la génération du n-uplet cible (cf. 3.3). 3) Evaluation compacte de Q, ce qui nécessite de définir les opérations appropriées de sélection et de jointure (ces points, qui constituent le cœur de la contribution, sont décrits en section 5). 4) Calcul du degré de possibilité désiré à partir de la relation obtenue à l'étape 3. La section suivante détaille chacune de ces étapes et fournit notamment la définition des opérations de sélection et de jointure dans le cadre d'une évaluation compacte. 5. Définition des opérations du calcul compact Dans cette section, nous décrivons tout d'abord les requêtes pour lesquelles nous avons pu définir une procédure d'évaluation compacte. Nous abordons ensuite les problèmes posés par l'existence de dépendances entre attributs (ou, plus précisément, entre valeurs candidates associées à plusieurs attributs) dans les résultats de sousrequêtes, puis nous détaillons les étapes 3 et 4 du processus décrit précédemment. 5.1. Requêtes acceptées Même si l'évaluation de requêtes possibilistes pose moins de problèmes que celle de requêtes classiques, elle n'est cependant pas triviale. Ceci nous amène à restreindre la famille des requêtes possibilistes considérées dans ce papier. Les restrictions concernent la requête relationnelle usuelle Q référencée dans la requête possibiliste. Comme mentionné précédemment, nous choisissons de nous restreindre aux requêtes ne faisant intervenir que des sélections et des jointures (opérations qui constituent le cœur de nombreuses requêtes usuelles). Une deuxième restriction a trait à l'impossibilité de manipuler plusieurs copies d'une même relation (cas d'une auto-jointure, notamment). La raison en est qu'une requête référençant plusieurs copies d'une même relation et mettant en jeu une comparaison entre des attributs venant de ces copies génère des dépendances entre valeurs candidates. Le problème des dépendances entre attributs est traité dans la sous-section suivante et nous verrons que, dans la plupart des cas, il est possible de le surmonter. Notre approche ne fournit toutefois pas de solution lorsque plusieurs exempla ires d'une relation sont manipulés, et nous nous limitons donc dans la suite aux requêtes ne présentant pas cette caractéristique. 5.2. Problèmes liés à des dépendances entre attributs L'indépendance entre attributs est présumée dans une relation possibiliste dans le sens où, pour un n-uplet donné, le choix d'une valeur d'attribut n'est pas conditionné par un choix préalable fait pour un autre attribut du même n-uplet. En d'autres termes, le modèle stipule implicitement que les distributions utilisées dans un même n-uplet sont indépendantes puisque l’ensemble des interprétations est obtenu par produit cartésien sur les valeurs candidates. Si elle est généralement acceptable au niveau des relations initiales, cette hypothèse est toutefois mise en défaut lorsque des opérations de sélection et de jointure sont appliquées. Il convient d'insister sur le fait que les dépendances dont il est ici question ne sont pas des dépendances fonctionnelles, mais des dépendances entre valeurs candidates dans le résultat d'une (sous)-requête. Un problème apparaît dans deux situations : i) lorsqu'une condition comporte une disjonction de prédicats référençant plusieurs attributs (e.g., A > 4 ou B = 12) qui sont utilisés dans des opérations ultérieures, ii) lorsqu'une condition fait intervenir une comparaison d'attributs (e.g., A > B) qui sont utilisés dans des opérations ultérieures. Dans ces deux cas, pour pouvoir traiter convenablement les opérations subséquentes, il est nécessaire que toutes les combinaisons satisfaisantes des valeurs d'attributs soient conservées avec leurs degrés. Exemple 4. Considérons le schéma R(A, B, C) et une requête Q incluant la condition "A > 100 ou B < 20", sous l'hypothèse que A et B sont référencés par d'autres opérations de Q. Supposons que les valeurs de A pour un tuple u de r(R) sont {1/90 + 0.7/80 + 0.2/120} et celles de B {1/30 + 0.5/10}. Le résultat correct de cette opération est constitué des couples (1/90, 0.5/10), (0.7/80, 0.5/10), (0.2/120, 1/30), (0.2/ 120, 0.5/10) et l'on peut constater que ce résultat ne peut être représenté avec des valeurs de A et de B indépendantes♦ Exemple 5. Considérons le schéma R(A, B, C) précédent et la condition (A > B) relative à la relation r contenant le n-uplet v = <{1/2 + 0.7/4 + 0.5/9}, {1/2 + 0.3/8}, c>. Ici, trois paires de valeurs sont satisfaisantes : 0.7/<4, 2>, 0.5/<9, 2> et 0.3/<9, 8> mais elles ne sont pas représentables en termes de produit cartésien sur A et B♦ Dans le contexte des requêtes possibilistes, les dépendances entre attributs ne constituent cependant pas un problème majeur dans la mesure où il est possible de manipuler des relations contenant des n-uplets disjonctifs. Cette méthode est légitime puisque : i) l'on recherche la meilleure alternative, i.e., la meilleure représentation du n-uplet cible dans le résultat (le degré final est calculé au moyen d'un maximum) et ii) les opérations autorisées dans Q (sélection et jointure) n'imposent pas l'indépendance des n-uplets dans les relations intermédiaires (les requêtes ne nécessitent aucun calcul de cardinalité, en particulier). Dans l'exemple 4, la relation issue de la sélection comporterait donc les quatre n-uplets distincts générés par u . 5.3. Sélection Nous considérons deux types de conditions de sélection atomique : celles visant à comparer une valeur d'attribut et une constante (type 1), et celles servant à comparer deux attributs (type 2). Nous définissons dans un premier temps les opérations correspondantes, puis nous traitons de la composition des conditions de sélection. 5.3.1. Critère de la forme : Attribut θ valeur On considère ici une condition de sélection du type "A θ v" (où A désigne un attribut, v une constante et θ un comp arateur) appliquée à une relation r de schéma R(A, X). Un n-uplet u de r génère un n-uplet dans la relation résultante si au moins une valeur candidate ai dans u.A satisfait la condition (a i θ v). Le n-uplet résultant u' a les mêmes valeurs que u pour tout attribut sauf pour A : u'.A contient uniquement les candidats ai de u.A qui satisfont la condition (a i θ v). Cette opération de sélection peut être définie de la façon suivante : sel(r, A θ v) = {<restr(u.A, A θ v), u.X> | u ∈ r} (2) où restr(u.A, A θ v) = {πi /ai | ai ∈ u.A et πi = πu.A (a i ) et ai θ v}} (cette opération restreint la distribution de possibilité u.A aux valeurs candidates qui satisfont la condition). Justification. Pour démontrer la validité de la démarche, il faut prouver que le résultat que l'on obtient est la représentation compacte de l'union des tables résultantes (mondes) que l'on aurait obtenues en appliquant la sélection sur chacun des mondes de la relation initiale considérée. Soit r la relation possibiliste initiale. Soit Res la réponse compacte obtenue en appliquant la formule (2) et soit E l'ensemble des mondes de la réponse obtenus par la stratégie non compacte (i.e., fondée sur l'explicitation des mondes). Montrons tout d'abord que tout n-uplet t de tout monde M0 de E peut être généré à partir d'un n-uplet de Res. Soit α le degré de possibilité associé au monde M0. Le n-uplet t appartient à un monde de la réponse, et vérifie donc t.A i θ v. Ceci implique que t existait dans le monde M de r (dont M0 est issu par sélection), lui aussi de degré α. M étant un monde de r, on en déduit qu'il existait dans r un n-uplet t' tel que t'A i contenait la valeur t.A i affectée d'un degré β supérieur ou égal à α. D'où l'on déduit − voir définition 2 − que le résultat compact Res = sel(r, A θ v) contient un n-uplet t'' tel que t''.A i contient la valeur candidate t.A i affectée du degré β. Réciproquement, montrons que tout n-uplet "précis" généré à partir d'un n-uplet de Res appartient à au moins un monde de la réponse. Soit s un n-uplet de Res. Par construction (cf. définition 2), il existe un n-uplet s' appartenant à r tel que s'.A i inclut s.A i . Un choix ai licite pour s.A i l'est aussi pour s'.Ai, et l'on peut donc construire au moins un monde M contenant un n-uplet s'' généré à partir de s en faisant le choix de ai pour l'attribut Ai . Le n-uplet s appartenant à Res, on a : ∀ai ∈ s.A i , ai θ v, et le n-uplet s'' appartiendra donc également au monde (i.e., dans ce cas, à la relation) M' obtenu en appliquant la sélection au monde M, c'est-à-dire à l'un des mondes de la réponse obtenue par un calcul non compact. Si l'on suppose que le degré associé à ai dans s.Ai (et donc dans s'.A i ) est α, le degré du monde M (et donc de M') sera, par construction, inférieur ou égal à α (le degré du monde est obtenu en calculant le minimum des degrés associés aux valeurs candidates choisies pour générer le monde). L'étape de calcul du degré final (cf. section 5.5) nous assure quant à elle que le degré calculé pour le n-uplet cible est bien égal au degré maximal des mondes de la réponse dans lequel ce n-uplet est présent. 5.3.2. Critère de la forme Attribut1 θ Attribut2 Dans le cas d'une condition du type "A θ B" sur une relation r dont le schéma est R(A, B, X), un tuple u génère un n-uplet u' dans la réponse si au moins une valeur candidate pour u.A est en relation θ avec au moins une valeur candidate pour u.B. Comme il est mentionné en 5.2, un n-uplet u peut générer plusieurs n-uplets disjonctifs de la relation résultante. Le principe consiste à générer un n-uplet u'i pour chacune des valeurs candidates satisfaisantes ai de u.A : la valeur de u'i .A est ai avec son degré, la valeur de u'i .B est la distribution u.B restreinte aux valeurs bj vérifiant la condition ai θ b j . Le nombre de n-uplets générés par u est donc égal au nombre de valeurs candidates de u.A qui sont en relation θ avec au moins une valeur candidate de u.B (notons que nous aurions pu également considérer la solution symétrique consistant à générer un n-uplet pour chaque valeur candidate de u.B). Plus formellement, cette opération de sélection peut être définie de la façon suivante : sel(r, A θ B) = {<{αi /ai }, restr(u.B, ai θ B), u.X> | ∃ u ∈ r tel que u.A = {α1 /a1 + ... + αi /ai + ... + αn /an } et restr(u.B, ai θ B) ≠ ∅} (3). Exemple 6. Considérons la relation suivante qui décrit des images satellite d'avions. Chaque image est supposée représenter deux avions. Les types des avions sont supposés mal connus du fait de l'imprécision inhérente au processus de reconnaissance. #image 1 2 avion1 {1/a1 + 1/a2 + 0.7/a3} {0.2/a2 + 0.8/a3+ 0.2/a4} avion2 {0.8/a2 + 0.2/a3} {0.6/a1 + 0.1/a4} Supposons que la sous-requête qui nous intéresse est la suivante : sel(r, avion1 ≠ avion2). Le résultat obtenu est représenté par la table suivante : #image 1 1 1 2 2 2 avion1 {1/a1} {1/a2 } {0.7/a3} {0.2/a2} {0.8/a3} {0.2/a4} avion2 {0.8/a2 + 0.2/a3} {0.2/a3} {0.8/a2 } {0.6/a1 + 0.1/a4} {0.6/a1 + 0.1/a4} {0.6/a1} ♦ La définition 3 peut être justifiée en suivant un raisonnement similaire à celui détaillé en 5.3.1 pour les critères du type Ai θ v. Pour des raisons de place, cette démonstration est omise ici, et nous ne détaillerons pas non plus les preuves relatives aux opérateurs suivants, celles-ci reposant toutes sur le même type de raisonnement (dans chaque cas, on peut montrer que la table obtenue par évaluation compacte est une représentation compacte de l'union des mondes constituant la réponse que l'on obtiendrait en utilisant la stratégie fondée sur l'explicitation des mondes). 5.3.3. Critères disjonctifs Considérons, à titre d'exemple de référence pour les critères de sélection disjonctifs, la condition suivante : "(A θ v 1 ) ou (B θ v 2 )" appliquée à une relation r de schéma R(A, B, X). Un n-uplet u de r satisfait (possiblement) la condition si au moins une valeur candidate a de u.A satisfait (a θ v 1 ) ou si une valeur candidate b de u.B vérifie (b θ v 2 ). Cette sélection appliquée à un n-uplet donné génère deux nuplets dans la réponse : le premier inclut toutes les valeurs candidates de u.A qui satisfont la condition A θ v 1 associées à toutes les valeurs candidates de u.B, tandis que le second est composé de toutes les valeurs candidates satisfaisantes qui ne sont pas dans le n-uplet précédent, à savoir toutes les valeurs candidates u.B qui vérifient la condition B θ v 2 avec toutes les valeurs candidates de u.A ne satisfaisant pas A θ v 1 . Cette opération peut être formalisée de la façon suivante : sel(r, (A θ v 1 ) or (B θ v 2 )) = {<restr(u.A, A θ v 1 ), u.B, u.X> | u ∈ r} ∪ {<restr(u.A, ¬(A θ v 1 )), restr(u.B, B θ v 2 ), u.X> | u ∈ r} (4). Les autres conditions de sélection disjonctives peuvent être traitées de façon similaire. 5.3.4. Critères conjonctifs En ce qui concerne les conditions de sélection conjonctives, elles peuvent généralement être calculées en utilisant le modèle possibiliste "usuel", i.e., sans nuplets disjonctifs (un tuple donné génère au maximum un tuple). Cela n'est toutefois pas possible dans des cas particuliers tels que "(A 1 θ1 A2 ) et (A 1 θ2 A 3 )", i.e., quand un attribut donné est utilisé dans deux comparaisons d'attributs. Ce type de critère induit en effet des dépendances entre attributs et il faut alors recourir à des n-uplets disjonctifs comme dans le cas des conditions de sélection disjonctives (ce cas particulier n'est pas détaillé ici faute de place). 5.4. Jointure La définition de l'opération de jointure est similaire à celle de la sélection impliquant une condition de type 2. Quand deux n-uplets peuvent être joints, on conserve toutes les valeurs candidates qui s'apparient et l'on génère autant de nuplets que nécessaire. Plus formellement, si nous considérons les relations r et s dont les schémas respectifs sont R(A, X) et S(B, Y) et la condition A θ B, l'opération de jointure est définie de la façon suivante : Join(r, s, Α θ Β) = {<{αi /ai }, restr(v.B, ai θ B), u.X, v.Y> | ∃ u ∈ r, ∃ v ∈ s tel que u.A = {α1 /a1 + ... + αi /ai + ... + αn /an } et restr(v.B, ai θ B) ≠ ∅} (5). 5.5. Calcul du degré final Le rôle de la quatrième et dernière étape est de traiter la projection finale présente dans Q. Par construction, la projection donne naissance à un seul n-uplet, i.e., le n-uplet cible t. La seule question réside dans la détermination du degré associé à ce n-uplet, i.e., de la valeur que l'on doit, en réponse, fournir à l'utilisateur. Soit la relation r' obtenue à la fin de l'étape 3. Le degré de possibilité associé à un nuplet de r' est le minimum (sur tous les attributs) du maximum des degrés liés aux valeurs candidates (pour un attribut donné). Selon la sémantique de la projection (basée sur un quantificateur existentiel), le degré final associé au n-uplet cible est égal au maximum de ceux des n-uplets de r'. Example 7. Supposons que, dans le contexte d'une requête possibiliste du type "dans quelle mesure est-il possible que le couple (x, y) appartienne au résultat de la requête Q", on obtienne à l'issue de l'étape 3 la table suivante : A {1/a1 + 1/a2 + 0.7/a3} {0.8/a3} X x x B {0.8/b2 + 0.2/b3} {0.6/b1 + 0.1/b4} Y y y L'étape finale de calcul du degré associé au couple (x,y) fournit : max(min(max(1, 1, 0.7), max(0.8, 0.2)), min(0.8, max(0.6, 0.1))) = 0.8♦ 6. Exemple détaillé Dans cette section, nous détaillons, au travers d'un exemple, les différentes étapes de l'évaluation. Considérons les deux relations suivantes : S #i i1 i2 i3 i4 t_a date 1/a2 + 0.5/a1 d 1 1/a3 + 0.8/a2 d 2 1/a3 + 0.7/a2 d 1 1/a4 + 0.2/a1 d1 lieu 1/l2 + 0.8/l1 1/l4 + 0.7/l1 l1 l2 L #i k1 k2 k3 k4 t_a date 1/a4 + 0.6/a2 d 3 1/a2 + 0.8/a4 d 1 1/a4 + 0.8/a2 d 1 1/a5 + 0.7/a3 d1 lieu 1/l1 + 0.7/l3 1/l1 + 0.5/l4 1/l2 + 0.6/l1 l1 Ces deux relations ont le même schéma que la relation Image de l'exemple 2.2. et décrivent des collections d'images prises par deux satellites différents. Considérons la requête possibiliste suivante : quel est le degré de possibilité associé à la valeur a2 dans le résultat de la requête : projt_a(select(join t.a = t.a(select(S, date = 'd 1 '), select(L, date = 'd1')), lieu1 = lieu2). Autrement dit, on cherche dans quelle mesure il est possible qu'un avion de type a2 ait été observé au même lieu à la date d1 par les deux satellites à la fois". La première étape supprime l'attribut #i dans S et dans L (tous les autres attributs interviennent dans la requête). La seconde étape ne conserve, dans S et dans L, que les n-uplets dont l'une des variantes pour t_a est a2 . Ceci conduit aux deux relations suivantes : S' t_a 1/a2 0.8/a2 0.7/a2 date d1 d2 d1 lieu 1/l2 + 0.8/l1 1/l4 + 0.7/l1 l1 L' t_a 0.6/a2 1/a2 0.8/a2 date d3 d1 d1 lieu 1/l1 + 0.7/l3 1/l1 + 0.5/l4 1/l2 + 0.6/l1 On peut ensuite effectuer les sélections (date = 'd 1 '), et les tables précédentes donnent naissance à : S'' t_a 1/a2 0.7/a2 date d1 d1 lieu 1/l2 + 0.8/l1 l1 L'' t_a 1/a2 0.8/a2 date d1 d1 lieu 1/l1 + 0.5/l4 1/l2 + 0.6/l1 Puis on procède au calcul de l'équi-jointure entre S'' et L'', basée sur l'attribut t_a, ce qui produit la relation : SL t_a1 1/a2 1/a2 0.7/a2 0.7/a2 date1 d1 d1 d1 d1 lieu1 1/l2 + 0.8/l1 1/l2 + 0.8/l1 l1 l1 t_a2 1/a2 0.8/a2 1/a2 0.8/a2 date2 d1 d1 d1 d1 lieu2 1/l1 + 0.5/l4 1/l2 + 0.6/l1 1/l1 + 0.5/l4 1/l2 + 0.6/l1 On exécute ensuite la sélection lieu1 = lieu2 et l'on obtient la relation : SL' t_a1 1/a2 1/a2 1/a2 0.7/a2 0.7/a2 date1 d1 d1 d1 d1 d1 lieu1 0.8/l1 1/l2 0.8/l1 l1 l1 t_a2 1/a2 0.8/a2 0.8/a2 1/a2 0.8/a2 date2 d1 d1 d1 d1 d1 lieu2 1/l1 1/l2 0.6/l1 1/l1 0.6/l1 La dernière étape permet d'obtenir le degré final associé à la valeur cible (a 2 ) : max(min(1, 0.8, 1, 1), min(1, 1, 0.8, 1), min(1, 0.8, 0.8, 0.6), min(0.7, 1, 1), min(0.7, 0.8, 0.6)) = 0.8. 7. Conclusion Cet article traite de l'interrogation de bases de données possibilistes, i.e., de bases de données où certaines valeurs d'attributs peuvent être mal connues et représentées par des distributions de possibilité). Plus précisément, un nouveau type de requêtes (appelées requêtes possibilistes) a été étudié, dans la perspective d'éviter l'explosion combinatoire induite par l'évaluation de requêtes classiques, ces dernières nécessitant de calculer les mondes associés à la base de données considérée. La forme générale d'une requête possibiliste est : "dans quelle mesure est-il possible que le n-uplet t appartienne au résultat d'une requête usuelle Q". Une procédure d'évaluation en quatre étapes a été décrite, dont l'intérêt majeur est qu'elle permet d'effectuer le calcul dans le modèle compact initial, i.e., sans avoir à expliciter les mondes. Dans l'état actuel, cette procédure permet de traiter uniquement les requêtes relationnelles faisant intervenir des sélections et des jointures. Cette restriction n'apparaît toutefois pas trop sévère dans la mesure où, en pratique, beaucoup de requêtes s'appuient sur ces opérateurs. En outre, il ne semble pas irraisonnable de penser que l'approche puisse s'étendre à d'autres opérateurs. Quoi qu'il en soit, la présente contribution constitue une étape prometteuse du fait qu'elle apporte une réponse au problème de la complexité. Plusieurs axes de travail futur sont à considérer. D'une part, il conviendrait d'étudier comment l'approche peut être élargie afin d'être en mesure de traiter un plus large éventail de requêtes. En particulier, la prise en compte des opérateurs ensemblistes constitue un thème de recherche intéressant. D'autre part, il serait utile d'étudier de façon approfondie la complexité du processus d'évaluation. En particulier, il conviendrait, pour une requête possibiliste donnée faisant intervenir une requête usuelle Q, de comparer cette complexité à celle obtenue lorsque l'on évalue Q sur une base de données classique. Enfin, afin d'asseoir la faisabilité d'une telle approche, il est également nécessaire d'étudier certains aspects plus techniques liés à l'implémentation, à commencer par la (ou les) façon(s) de mettre en oeuvre une base de données possibiliste avec les outils de modélis ation qu'offrent les SGBD commerciaux actuels. Bibliographie [ABI 91] ABITEBOUL S., KANELLAKIS P., GRAHNE G., « On the representation and querying of sets of possible worlds », Theoretical Computer Science, vol. 78, 1991, p. 159-187. [BOS 97] BOSC P., PRADE H., « An introduction to fuzzy set and possibility theory-based approaches to the treatment of uncertainty and imprecision in data base management systems », In: Uncertainty Management in Information Systems – From Needs to Solutions, (Motro A. and Smets P. Eds.), Kluwer Academic Publishers, 1997, p. 285-324. [BOS 01] BOSC P., LIÉTARD L., PIVERT O., « A function-based join for the manipulation of possibilistic relations », Proc. of the 16th ACM Conference on Applied Computing SAC'2001, Las Vegas, USA, 2001, p. 472-476. [BOS 02] BOSC P., DUVAL L., PIVERT O., « About Possibilistic Queries Against Possibilistic Databases », Proc. of the 17th ACM Symposium on Applied Computing SAC'2002, Madrid, Spain, 2002, p. 807-811. [IMI 84] IMIELINSKI T., LIPSKI W., « Incomplete information in relational databases », Journal of the ACM, vol. 31, 1984, p. 761-791. [LIP 81] LIPSKI W., « On databases with incomplete information », Journal of the ACM, vol. 28, 1981, p. 41-70. [PRA 84] PRADE H., TESTEMALE C., « Generalizing database relational algebra for the treatment of incomplete/uncertain information and vague queries », Information Sciences, vol. 34, 1984, p. 115-143. [ZAD 65] Z ADEH L.A., « Fuzzy Sets », Information and Control, vol. 8, 1965, p. 338-353. [ZAD 78] Z ADEH L.A., « Fuzzy sets as a basis for a theory of possibility », Fuzzy Sets and Systems, vol. 1, 1978, p. 3-28.