Feuille 2 Inclusion de Requêtes Conjonctives

Documents pareils
Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Exercices - Polynômes : corrigé. Opérations sur les polynômes

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

Bases de données Cours 5 : Base de données déductives

UML et les Bases de Données

3 Approximation de solutions d équations

Calcul fonctionnel holomorphe dans les algèbres de Banach

Logique : ENSIIE 1A - contrôle final

Intégration et probabilités TD1 Espaces mesurés

Suites numériques 3. 1 Convergence et limite d une suite

Al attention du praticien et des étudiants, nous avons développé

Groupe symétrique. Chapitre II. 1 Définitions et généralités

Utilisation des tableaux sémantiques dans les logiques de description

Programmation linéaire

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

Chapitre 2 Le problème de l unicité des solutions

Première partie. Préliminaires : noyaux itérés. MPSI B 6 juin 2015

Extrait du poly de Stage de Grésillon 1, août 2010

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Problèmes de Mathématiques Filtres et ultrafiltres

Fonctions de plusieurs variables

Introduction à l étude des Corps Finis

I. Polynômes de Tchebychev

Fondements de l informatique Logique, modèles, et calculs

L exclusion mutuelle distribuée

6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses

Théorème du point fixe - Théorème de l inversion locale

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme

1 Introduction et installation

Analyse stochastique de la CRM à ordre partiel dans le cadre des essais cliniques de phase I

Les indices à surplus constant


CHAPITRE 1. Suites arithmetiques et géometriques. Rappel 1. On appelle suite réelle une application de

Programmation linéaire et Optimisation. Didier Smets

Continuité d une fonction de plusieurs variables

TD 1 - Structures de Traits et Unification

Sujet 4: Programmation stochastique propriétés de fonction de recours

Intégration et probabilités TD1 Espaces mesurés Corrigé

3. Conditionnement P (B)

Cours Optimisation Partie Optimisation Combinatoire. Année scolaire Gérard Verfaillie ONERA/DCSD/CD, Toulouse

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

Polynômes à plusieurs variables. Résultant

Université Paris-Dauphine DUMI2E 1ère année, Applications

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche

INFORMATIQUECOMMUNE CPGE. Introduction aux Bases de Données Relationnelles

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

1ère partie Nadine Cullot. Bases de données déductives. Bases de données déductives Introduction et Motivation

Commun à tous les candidats

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

Limites finies en un point

Cours3. Applications continues et homéomorphismes. 1 Rappel sur les images réciproques

Carl-Louis-Ferdinand von Lindemann ( )

Développements limités, équivalents et calculs de limites

Chapitre VI - Méthodes de factorisation

Amphi 3: Espaces complets - Applications linéaires continues

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

Correction de l examen de la première session

Différentiabilité ; Fonctions de plusieurs variables réelles

Resolution limit in community detection

Exo7. Limites de fonctions. 1 Théorie. 2 Calculs

AC AB. A B C x 1. x + 1. d où. Avec un calcul vu au lycée, on démontre que cette solution admet deux solutions dont une seule nous intéresse : x =

Bases de données réparties: Fragmentation et allocation

Dossier d'étude technique

PROJET 1 : BASE DE DONNÉES REPARTIES

= constante et cette constante est a.

TP Bases de données réparties

Raisonnements standard et non-standard pour les systèmes décentralisés de gestion de données et de connaissances

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Cours de Master Recherche

Systèmes décisionnels et programmation avancée

OPTIMISATION À UNE VARIABLE

Approximations variationelles des EDP Notes du Cours de M2

FONDEMENTS DES MATHÉMATIQUES

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Comparaison de fonctions Développements limités. Chapitre 10

ÉPREUVE COMMUNE DE TIPE Partie D

Consolidation de fondamentaux

Résolution d équations non linéaires

Équations non linéaires

Les suites numériques

DÉRIVÉES. I Nombre dérivé - Tangente. Exercice 01 (voir réponses et correction) ( voir animation )

Nombres premiers. Comment reconnaître un nombre premier? Mais...

Techniques d optimisation des requêtes dans les data warehouses

Licence MASS (Re-)Mise à niveau en Probabilités. Feuilles de 1 à 7

Cours de Recherche Opérationnelle IUT d Orsay. Nicolas M. THIÉRY. address: Nicolas.Thiery@u-psud.fr URL:

Annexe commune aux séries ES, L et S : boîtes et quantiles

Bases de données et sites WEB Licence d informatique LI345

Probabilités et Statistiques. Feuille 2 : variables aléatoires discrètes

Model checking temporisé

Chapitre 6. Fonction réelle d une variable réelle

Bases de données cours 1

Calcul différentiel sur R n Première partie

Cours d initiation à la programmation en C++ Johann Cuenin

Introduction à la théorie des graphes. Solutions des exercices

Cryptographie et fonctions à sens unique

1 Définition et premières propriétés des congruences

Continuité et dérivabilité d une fonction

Transcription:

Université de Bordeaux M1 d Informatique, 2016-2017 Cours de Bases de Données Avancées Feuille 2 Inclusion de Requêtes Conjonctives Dans cette feuille on présente un algorithme qui permet de tester l inclusion de requêtes conjonctives. Pour toute la feuille, on suppose que le schéma de base de données, R, le domaine dom et l ensemble de variables var sont fixés. On prouve le théorème suivant : Théorème 1. Le problème suivant est décidable : INPUT : Deux requêtes q, r CQ. QUESTION : q r? Remarque 1. On peut même prouver que le problème est NP-complet. Voir les exercices. 1 Rappels On rappelle les termes importants concernant une requête conjonctive dans la Figure 1 ci-dessous : Atomes q( x 0 ) R 1 ( x 1 ), R 2 ( x 2 ),..., R n ( x Tête Corps Figure 1 Notations pour une requête conjonctive De plus on rappelle que pour évaluer une requête conjonctive, on a besoin de la notion d affectation de variables. Une affectation est une application f : var dom dom telle que f(d) = d pour toute donnée d dom. L évaluation de la requête q sur une instance I ci-dessus est l ensemble de tuples suivant : q(i) = {f( x 0 ) pour toute affectation f telle que R i (f( x i )) I pour tout i n} 2 Préliminaires L algorithme fonctionne selon le principe suivant. On commence par prouver que pour deux requêtes q, r CQ, la propriété q r est équivalente à une propriété syntaxique simple de q et r (on appelle ce résultat le théorème d homomorphisme). Il est ensuite facile d écrire un algorithme qui teste cette propriété. 1

Homomorphisme entre deux requêtes. On considère deux requêtes q et r que nous représentons ci-dessous, q( x 0 ) R 1 ( x 1 ),..., R n ( x r(ȳ 0 ) S 1 (ȳ 1 ),..., S m ( y m ) Un homomorphisme de q vers r est une application h : var dom var dom telle que h(d) = d pour toute donnée d dom (les données ne sont pas modifiées par h) et qui satisfait les deux propriétés suivantes : 1. h( x 0 ) = ȳ 0 (h envoie le tuple de tête de q sur celui de r). 2. Pour tout i n, il existe j m tel que h( x i ) = ȳ j et R i = S j (h envoie tout atome de q vers un atome de r). Remarque 2. Attention, au sens : un homomorphisme va d une requête vers une autre. Exercice 1 Pour chaque paire de requêtes parmi les suivantes, dites si il existe un homomorphisme (et dans ce cas donnez le). q 1 (x 1 ) R(x 1, x 2, x 2 ), Q( a, x 1, x 1 ). q 2 (x 1 ) R(x 1, x 2, x 2 ), Q( a, x 3, x 1 ), R(x 3, x 2, x 4 ). q 3 (x 4 ) R(x 4, x 3, x 3 ), Q(x 5, x 1, x 2 ), Q( b, c, x 5 ). q 4 ( c ) R( c, d, d ), Q( a, c, c ). 3 Algorithme On peut maintenant présenter le théorème d homomorphisme et l utiliser pour obtenir un algorithme qui teste l inclusion de requêtes conjonctives. Théorème 2. On considère deux requêtes conjonctives r et q. Les deux propriétés suivantes sont équivalentes : 1. r q. 2. Il existe un homomorphisme h de q vers r. Remarque 3. A nouveau, il faut faire attention au sens. Pour prouver que r q il faut trouver un homomorphisme de q vers r (c est-à-dire de la plus grande requête vers la plus petite ). Preuve. On suppose fixées les deux requêtes conjonctives q et r que nous notons, q( x 0 ) R 1 ( x 1 ),..., R n ( x r(ȳ 0 ) S 1 (ȳ 1 ),..., S m ( y m ) Notre objectif est de prouver l équivalence entre les deux propriétés présentées dans le théorème. On commence par la direction 1) 2). On suppose que r q. Observons que si on voit les variables de r comme des données on peut voir les corps de r comme une instance, I r = {S 1 (ȳ 1 ),..., S m ( y m )} De plus pas définition on a ȳ 0 r(i r ). Ainsi, puisque r q, on a ȳ 0 q(i r ). Par définition, cela signifie qu il existe une affectation f telle que f( x 0 ) = ȳ 0 et pour tout i n, R i ( x i ) I r. 2

Puisque I r = {S 1 (ȳ 1 ),..., S m ( y m )}, c est exactement la définition d un homomorphisme de q vers r ce qui termine la preuve de la direction 1) 2). On passe maintenant à la direction 2) 1). On suppose qu il existe un homomorphisme h de q vers r et on veut montrer que r q. On prend donc une instance I quelconque et on prouve que r(i) q(i). Soit c r(i). On doit montrer que c q(i) (c est-à-dire trouver une affectation appropriée). Puisque c r(i), on a une affectation f telle que f(ȳ 0 ) = c et pour tout j m, S j (ȳ j ) I. On prouve maintenant que l affectation f h obtenue en composant notre homomorphisme h avec f, montre que c q(i). Puisque h est un homomorphisme, on sait que, f h(ȳ 0 ) = f(h( x 0 )) = f(ȳ 0 ) = c. Pour tout i n, on sait qu il existe j m tel que R i = S j et h( x i ) = ȳ j. On a donc, R i (f h( x i )) = S j (f(ȳ j )) Et puisqu on sait que S j (f(ȳ j )) I par définition de f, on a bien R i (f h( x i )) I. On conclut donc que c q(i) ce qui termine la preuve. Exercice 2 Utilisez le Théorème 2 pour donner un algorithme qui teste l inclusion entre les requêtes conjonctives. En déduire un second algorithme qui teste l équivalence entre les requêtes conjonctives. Exercice 3 Prouver les propriétés suivantes : Prouver que l inclusion de requêtes conjonctives est dans NP. Prouver que l inclusion de requêtes conjonctives est NP-difficile (on pourra réduire le problème de 3-Colorabilité d un graphe). 4 Exercices Exercice 4 On considère les deux requêtes suivantes q 1, q 2 CQ. Déterminer si q 1 q 2, q 2 q 1 ou q 1 = q2. q 1 (x, y) R(x, z), R(z, t), S(t, y) q 2 (x, z) R(x, x), S(x, z) Exercice 5 Même question pour les deux requêtes suivantes : q 1 (x) R(x, y, x), R(x, z, y), S(y, x) q 2 (x) R(x, y, z), S(y, z) Exercice 6 Parmi les requêtes conjonctives suivantes donnez toutes les inclusions et les équivalences et donnez les homomorphismes correspondants. Donnez également une requête minimale équivalente à chaque requête : 3

q 1 (x 1, x 2 ) R(x 1, y 1 ), R(y 1, y 2 ), R(y 2, x 2 ) q 2 (x 1, x 2 ) R(x 1, y 1 ), R(y 1, y 2 ), R(y 2, y 3 ), R(y 3, x 2 ) q 3 (x 1, x 2 ) R(x 1, y 1 ), R(y 2, y 3 ), R(y 4, x 2 ), R(x 1, y 2 ), R(y 1, y 3 ), R(y 3, x 2 ) q 4 (x 1, x 2 ) R(x 1, y 1 ), R(y 1, cst ), R( cst, y 2 ), R(y 2, x 2 ) Exercice 7 Donnez les inclusions et équivalences existantes entre les requêtes conjonctives suivantes. Chaque inclusion devra être justifiée en donnant un homomorphisme. (dans les requêtes, u, v, x, y, z représentent des variables et a, b des constantes). q 1 (x, y) T (u, z, x), P (x, z) q 2 (x, y) S(a, z), R(x, y), T (z, y, x) q 3 (y, z) Q(z, z), P (y, x), T (b, x, y) q 4 (x, y) R(x, y) q 5 (z, y) P (z, x), T (b, x, z), Q(y, y), P (z, u), T (b, u, z) q 6 (x, a) R(x, a), S(a, b), T (b, a, x), Q(a, a), P (x, a) Exercice 8 Soient q, q deux requêtes, on note q q pour q q et q q. On définit q q de manière similaire. Pour chaque question on cherche un ensemble de requêtes du calcul conjonctif : (indice : dans chaque cas il suffira de considérer une relation d arité 2 ) 1. Donnez un ensemble infini {q 1,..., q n,...} de requêtes n utilisant qu une seule relation et aucune constante et telles que : q 1 q n.... 2. Donnez un ensemble infini {q 1,..., q n,...} de requêtes n utilisant qu une seule relation et aucune constante et telles que : q 1 q n.... 3. Donnez un ensemble infini {q 1,..., q n,...} de requêtes n utilisant qu une seule relation et aucune constante et telles que : q i q j et q j q i pour tout i, j 1. Exercice 9 Parmi les requêtes conjonctives suivantes, donnez les inclusions existantes. On demande de justifier chaque réponse en donnant l homomorphisme associé. q 1 (x, y) S(y, x ), R(x, z ), R(z, z ), S(u, x ), T (z, v, u) q 2 (x, y) R(x, y), S(y, z) q 3 (x, y) R(x, y), S(y, x), T (x, a, y) q 4 (x, y) R(x, a ), S(y, a ) q 5 (x, y) R(x, z), S(y, z) q 6 (x, y) R(x, v), S(y, u), T (x, z, y), T (u, a, v) Exercice 10 On considère le fragment UNAIRE des requêtes conjonctives où toutes les relations utilisées dans le corps de la requête doivent être unaires (i.e. sont d arité 1). Par exemple la requête q 1 (x, y) R(x), S(y), R(y) est UNAIRE mais la requête q 2 (x, y) R(x), S(y), T (x, z, y) ne l est pas. On considère le problème d évaluation des requêtes UNAIRE : INPUT : QUESTION : q UNAIRE, I une instance Calculer q(i) 4

Quelle est la complexité de ce problème? Est-il réalisable en temps polynomial ou est-il NP-complet? Dans le premier cas expliquer comment fonctionnerait un algorithme polynomial. Dans le second cas, donner une réduction prouvant la complétude 1. 1. On rappelle que le même problème pour les requêtes conjonctives est NP-complet 5