22 Logique et bases de données

Slides:



Advertisements
Présentations similaires
Programmation logique Logique des prédicats du premier ordre
Advertisements

3 Introduction au modèle relationnel 3.1 Concepts de base
Rappels de logique des prédicats du 1er ordre
Cours de Base de Données & Langage SQL
Cours N°2 Base de Données & Langage SQL
Cours n°2UE102e(S. Sidhom) UE 102e. M1.IST-IE cours n°2 Systèmes à base de règles Par : Sahbi SIDHOM MCF. Université Nancy 2 Équipe de recherche SITE –
Sélection de colonnes (la projection)
LOGIQUE ET PROGRAMMATION LOGIQUE
Mathématiques discrètes Jean-Pierre Boutin S1S2 Math Discrètes 44hgraphes et langages 44h DS.
1- Introduction 1ère partie Le langage SQL 2- Connexion 3- Structure & Contenu 4- Requêtes.
Algèbre relationnelle - 1 / Djamel Berrabah Algèbre relationnelle Modèle relationnel : rappel Algèbre relationnelle.
1- Introduction Sommaire Modèle Logique des Données 2- Structure 3- Traduction du MCD en MLD 4- Recap - Méthodologie.
SQL query - 1 / D. Berrabah SQL : interrogation de BD Requêtes d'interrogation simples Requêtes complexes Agrégats et groupement.
Active Learning for Natural Language Parsing and Information Extraction, de Cynthia A. Thompson, Mary Elaine Califf et Raymond J. Mooney Philippe Gambette.
Introduction Bases de Données NoSQL Principe de base Avantages/Inconvénients L’évolution du Web 2.0 et actuellement Web 3.0, a montrée l’insuffisance des.
ANNEE ACADEMIQUE Institut Supérieur Emmanuelle D’Alzon de Butembo COURS: THEORIE DE BASE DE DONNEES : 45H PROMOTION: G2 Gestion Informatique.
Transformation de Laplace - Mr.Retima Abderaouf - Mr.Ghandjoui abderahmane Université 20 aout 1955 Skikda.
Les Bases de données Définition Architecture d’un SGBD
Cours Initiation aux Bases De Données
Révision – mathématiques 8
V Suite géométrique : 1°) Définition : un+1
Suites ordonnées ou mettre de l’ordre
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Rappel - analyse et.
Introduction au Langage Pascal
Domaine: Relations R.A.:
Quelques Termes INFORMATIQUE ? ORDINATEUR ( Système Informatique)?
Initiation aux bases de données et à la programmation événementielle
Langage de manipulation de données (LMD)
Loi Normale (Laplace-Gauss)
7.1 Transformation linéaire
Principes de programmation (suite)
Algorithmique - L’affectation -
Les bases de données et le modèle relationnel
Langage de Manipulation des Données LMD
chapitre 1 : Généralités sur les Fonctions.
Exercice 2 Soit la série statistique
POL1803: Analyse des techniques quantitatives
Introduction Bases de données Accès Internet (Web)
Maria Berger - Maîtrise d'AES Algèbre relationnelle.
Concepts avancés en mathématiques et informatique appliquées
Fonctions Logiques & Algèbre de BOOLE
Cyber-Sphinx Séance 2.
La méthode du simplexe. 1) Algorithme du simplexe  Cet algorithme permet de déterminer la solution optimale, si elle existe, d’un problème de programmation.
Faculté d’éducation | Faculty of Education
Structure D’une Base De Données Relationnelle
Calcul Relationnel Chapitre 4, Section 4.3.
1 RECURSIVITE PRESENTATION Ch. PAUL ALGORITHMIQUE Présentation de la récursivité.
Module: Logique Mathématique. SOMMAIRE 1- Notions d’ensembles 2- Constructions d’ensembles 3- Cardinal d’ensembles 4- Relations d’ensembles ordonnées.
Modélisation avec UML 2.0 Partie II Diagramme de classes.
Langage d’interrogation des Données LID
11 Théorie de la normalisation
I Copyright © 2004, Oracle. Tous droits réservés. Introduction.
2 Copyright © 2004, Oracle. Tous droits réservés. Restreindre et trier les données.
Bases de données sous Access. Initiation aux bases de données  Structure d’une base de données.
Algèbre relationnelle
La méthode scientifique
© Robert Godin. Tous droits réservés.
Révision – mathématiques 8
7 Contraintes d’intégrité en SQL
5 Introduction au modèle relationnel 5.1 Concepts de base
20 Données semi-structurées et XML
Info Bases de données avancées
Base de données Table des clients Table des fournisseurs Table des commandes clients Formulaire des clients Formulaire des fournisseurs Formulaire des.
Piles et files.
© Robert Godin. Tous droits réservés.
Révision – mathématiques 8
CSI 3505 / Automne 2005: Conception et Analyse des Algorithmes I.
GEOMETRIE VECTORIELLE
© Robert Godin. Tous droits réservés.
© Robert Godin. Tous droits réservés.
Transcription de la présentation:

22 Logique et bases de données 2019-07-25 22 Logique et bases de données 25/07/2019 © Robert Godin. Tous droits réservés. © Robert Godin. Tous droits réservés.

© Robert Godin. Tous droits réservés. Logique (calcul des prédicats du premier ordre) à l’origine de plusieurs langages de BD Approche déclarative SQL QBE Datalog (BD déductives) OCL OQL XQUERY … 25/07/2019 © Robert Godin. Tous droits réservés.

Calcul des prédicats du premier ordre (syntaxe) Vocabulaire Constantes : les constantes sont souvent représentées en mathématiques par les lettres minuscules du début de l’alphabet (a, b, c, etc.). Variables : les variables sont souvent représentées par des lettres minuscules de la fin de l’alphabet (x, y, z, etc.). Prédicats : un prédicat est une fonction booléenne (la valeur retournée est une des deux valeurs de vérité, vrai ou faux), souvent représentée par une lettre majuscule. Opérateurs logiques : ¬ (négation),  (et logique),  (ou logique),  (implication) Quantificateurs :  (quantificateur universel),  (quantificateur existentiel) Parenthèses : (, ) 25/07/2019 © Robert Godin. Tous droits réservés.

Grammaire du calcul des prédicats Termes : constantes, variables ou fonctions, f(t1, t2,…, tn) définition est récursive Formules atomiques (ou atomes, propositions) : une formule atomique est un prédicat P(t1, t2,…, tn) appliqué à des termes t1, t2,…, tn. Formules formule atomique ¬F, (F1  F2), (F1  F2), (F1  F2) où F, F1, F2 sont des formules. x F, x F où F est une formule 25/07/2019 © Robert Godin. Tous droits réservés.

Portée d'un quantificateur, variable libre, liée La portée d’un quantificateur x F est la formule F qui le suit Une variable x est libre dans F si au moins une occurrence de x n'est pas dans la portée d'un quantificateur associé à x à l'intérieur de F Sinon x est liée au quantificateur 25/07/2019 © Robert Godin. Tous droits réservés.

© Robert Godin. Tous droits réservés. Exemples de formules z Q(x, z) z libre dans sous-formule Q(x, z) z liée à z dans la formule z Q(x, z) x (P(x, y)  z Q(x, z)) z liée à z les deux x liés à x y est libre 25/07/2019 © Robert Godin. Tous droits réservés.

Formule ouverte/fermée Formule fermée x y z (P(z, y)  z Q(x, z)) toutes les variables sont liées Formule ouverte z (P(z, y)  z Q(x, z)) 25/07/2019 © Robert Godin. Tous droits réservés.

Calcul des prédicats en bases de données Prédicat instancié ~ ligne (tuple) d’une table e.g. Client(10, Luc Sansom, (999)999-9999) Faits, prédicat extensionnel, BD extensionnelle (extentional database -EDB) Table Client noClient nomClient noTéléphone 10 Luc Sansom (999)999-9999 20 Dollard Tremblay (888)888-8888 30 Lin Bô (777)777-7777 40 Jean Leconte (666)666-6666 50 Hafedh Alaoui (555)555-5555 60 Marie Leconte 70 Simon Lecoq (444)444-4419 80 (333)333-3333 25/07/2019 © Robert Godin. Tous droits réservés.

Sémantique : interprétation I pour formules domaine (ensembles de valeurs) D relation sur Dn pour chacun des symboles de prédicat n-aire fonction sur Dn pour chacune des symboles de fonction colonnes non typées … 25/07/2019 © Robert Godin. Tous droits réservés.

© Robert Godin. Tous droits réservés. Valeur de vérité d’une formule dans une interprétation I (vrai ou faux) F1 F2 F1  F2 F1  F2 F1  F2 vrai faux F ¬F vrai faux x F est vraie dans une interprétation I si F est vraie pour toutes les valeurs de x prises dans le domaine D de l’interprétation I x F est vraie dans une interprétation I si F est vraie pour au moins une valeur de x prise dans le domaine D de l’interprétation I 25/07/2019 © Robert Godin. Tous droits réservés.

Modèle, validité d’une formule Dans une interprétation I, une formule fermée prend une valeur de vérité, vrai ou faux Une interprétation I est un modèle d’un ensemble de formules, si toutes les formules sont vraies dans cette interprétation Une formule est valide si elle est toujours vraie quelque soit l’interprétation 25/07/2019 © Robert Godin. Tous droits réservés.

Exemple d’interprétation Table Client noClient nomClient noTéléphone 10 Luc Sansom (999)999-9999 20 Dollard Tremblay (888)888-8888 30 Lin Bô (777)777-7777 40 Jean Leconte (666)666-6666 50 Hafedh Alaoui (555)555-5555 60 Marie Leconte 70 Simon Lecoq (444)444-4419 80 (333)333-3333 Interprétation de Client : Formule Valeur de vérité Client(10, Luc Sansom, (999)999-9999) Vrai Client(20, Luc Sansom, (999)999-9999) Faux x Client(x, Luc Sansom, (999)999-9999) x y Client(x, y, (666)666-6666) x Client(x, Luc Sansom, (666)666-6666)) x y Client(x, y, (666)666-6666)) 25/07/2019 © Robert Godin. Tous droits réservés.

© Robert Godin. Tous droits réservés. 2019-07-25 Modèle Table Client noClient nomClient noTéléphone 10 Luc Sansom (999)999-9999 20 Dollard Tremblay (888)888-8888 30 Lin Bô (777)777-7777 40 Jean Leconte (666)666-6666 50 Hafedh Alaoui (555)555-5555 60 Marie Leconte 70 Simon Lecoq (444)444-4419 80 (333)333-3333 Cette interprétation est un modèle pour l’ensemble des trois formules Formule Valeur de vérité Client(10, Luc Sansom, (999)999-9999) Vrai x Client(x, Luc Sansom, (999)999-9999) x y Client(x, y, (666)666-6666) 25/07/2019 © Robert Godin. Tous droits réservés. © Robert Godin. Tous droits réservés.

© Robert Godin. Tous droits réservés. Autre interprétation Table Client noClient nomClient noTéléphone 15 Luc Sansom (222)222-2222 20 Dollard Tremblay (888)888-8888 30 Lin Bô (777)777-7777 40 Jean Leconte (666)666-6666 50 Hafedh Alaoui (555)555-5555 60 Marie Leconte 70 Simon Lecoq (444)444-4419 80 (333)333-3333 Interprétation de Client : Formule Valeur de vérité Client(10, Luc Sansom, (999)999-9999) Faux Client(20, Luc Sansom, (999)999-9999) x Client(x, Luc Sansom, (999)999-9999) x y Client(x, y, (666)666-6666) Vrai x Client(x, Luc Sansom, (666)666-6666)) x y Client(x, y, (666)666-6666)) 25/07/2019 © Robert Godin. Tous droits réservés.

Requêtes de BD en calcul des prédicats Formule fermée Client(10, Luc Sansom, (999)999-9999) : vrai Formule ouverte Client(x, y, (666)666-6666)) Client(x, y, (666)666-6666)) noClient nomClient 40 Jean Leconte 60 Marie Leconte 25/07/2019 © Robert Godin. Tous droits réservés.

Prédicats spéciaux calculés Opérateurs de comparaison (<, >, =, …) et opérations arithmétiques (+, -, *, /, etc.) Prédicats spéciaux calculés (Article(x, y, z, w)  (20.00 < z ))  (30 > x ) Article(x, y, z, w)  (20.00 < z )  (30 > x ) noArticle description prixUnitaire quantitéEnStock 60 Erable argenté 15.99 10 70 Herbe à puce 10.99 95 Genévrier 25/07/2019 © Robert Godin. Tous droits réservés.

Calcul des prédicats et langages de requêtes en BD Plus expressif que AR Récursivité ! Calcul des prédicats à variable domaine Sous-ensemble sans récursivité Origine de QBE Calcul des prédicats à variable n-uplet Une variable = une ligne Notation pour référence aux colonnes t[noClient] ~ notation pointée de SQL Datalog Introduction de la récursivité Concept de BD déductive (LDL, CORAL, NAIL !,…) Origine de RECURSIVE UNION SQL:1999 25/07/2019 © Robert Godin. Tous droits réservés.

Table virtuelle (vue, prédicat dérivé, prédicat intensionnel) x y w ArticlePrixModique(x, y, w)  z (Article(x, y, z, w)  (z < 15)) Base de données intentionnelle (IDB) ArticlePrixModique noArticle description prixUnitaire 10 Cèdre en boule 10.99 20 Sapin 12.99 70 Herbe à puce 25/07/2019 © Robert Godin. Tous droits réservés.

© Robert Godin. Tous droits réservés. Récursivité Personne nom sexe Jean M Anne F Marie Luc Eve Lucie Paul Eric Guy Parent parent enfant Jean Luc Eve Anne Marie Paul Eric Lucie Guy x y ((Ancêtre(x, y)  Parent(x, y))  (Ancêtre(x, y)  (Parent(x, z)  Ancêtre(z, y)))) 25/07/2019 © Robert Godin. Tous droits réservés.

© Robert Godin. Tous droits réservés. Calcul de Ancêtre Ancêtre parent enfant Jean Luc Eve Anne Marie Paul Eric Lucie Guy x y ((Ancêtre(x, y)  Parent(x, y))  (Ancêtre(x, y)  (Parent(x, z)  Ancêtre(z, y)))) 25/07/2019 © Robert Godin. Tous droits réservés.

Théorie du premier ordre Axiomes de la théorie T :{Personne(Jean, M), Personne(Anne, F), Personne(Marie, F), Personne(Luc, M), Personne(Eve, F), Personne(Lucie, F), Personne(Paul, M), Personne(Eric, M), Personne(Guy, M), Parent(Jean, Luc), Parent(Jean, Eve), Parent(Anne, Luc), Parent(Anne, Eve), Parent(Marie, Paul), Parent(Luc, Paul), Parent(Luc, Eric), Parent(Lucie, Guy), Parent(Paul, Guy), x y ((Ancêtre(x, y)  Parent(x, y))  (Ancêtre(x, y)  (Parent(x, z)  Ancêtre(z, y))))} L’interprétation I1 constituée des trois tables Personne, Parent et Ancêtre est un modèle de la théorie T 25/07/2019 © Robert Godin. Tous droits réservés.

Sémantique du modèle minimal Ancêtre parent enfant Jean Luc Eve Anne Marie Paul Eric Lucie Guy Josée Lise I2 = I1 + Ancêtre(Josée, Lise) est aussi un modèle de T mais pas minimal ! Hypothèse du monde fermé (closed-world assumption) Seuls les faits qui sont déductibles à partir des axiomes sont inclus dans l’interprétation. Les autres faits sont supposés faux. 25/07/2019 © Robert Godin. Tous droits réservés.

Ambiguïté sémantique : pas toujours de modèle minimal ! T = {P(0)  P(1)} modèle I1 = {P(0)} Modèle I2 = {P(1)} Aucun n’est minimal ! Évite les théories ambiguës dans implémentation 25/07/2019 © Robert Godin. Tous droits réservés.

© Robert Godin. Tous droits réservés. Clause de Horn (règle) Q :- P1, P2, … ,Pn Équivalent à Q  P1  P2  …  Pn Q  ¬P1  ¬P2  …  ¬Pn x y ((Ancêtre(x, y)  Parent(x, y))  (Ancêtre(x, y)  (Parent(x, z)  Ancêtre(z, y)))) Traduction en clauses Ancêtre(x, y) :- Parent(x, y) Ancêtre(x, y) :- Parent(x, z), Ancêtre(z, y) 25/07/2019 © Robert Godin. Tous droits réservés.

Sémantique du point fixe de Datalog Prédicats intentionnels non récursifs Transformés en algèbre relationnelle Prédicats récursifs Calcul du point fixe 25/07/2019 © Robert Godin. Tous droits réservés.

Calcul du point fixe: étape 1 Ancêtre(x, y) :- Parent(x, y) Ancêtre(x, y) :- Parent(x, z), Ancêtre(z, y) Ancêtre0 parent enfant Parent parent enfant Jean Luc Eve Anne Marie Paul Eric Lucie Guy Ancêtre1 parent enfant Jean Luc Eve Anne Marie Paul Eric Lucie Guy À cette étape la règle 2 ne produit rien car Ancêtre0 est vide 25/07/2019 © Robert Godin. Tous droits réservés.

Calcul du point fixe: étape 2 Ancêtre(x, y) :- Parent(x, y) Ancêtre(x, y) :- Parent(x, z), Ancêtre(z, y) Ancêtre2 parent enfant Jean Luc Eve Anne Marie Paul Eric Lucie Guy Parent parent enfant Jean Luc Eve Anne Marie Paul Eric Lucie Guy Ancêtre1 parent enfant Jean Luc Eve Anne Marie Paul Eric Lucie Guy À cette étape la règle 1 ne produit rien de nouveau  25/07/2019 © Robert Godin. Tous droits réservés.

Calcul du point fixe : étape 3 (atteint point fixe) Ancêtre3 parent enfant Jean Luc Eve Anne Marie Paul Eric Lucie Guy Ancêtre(x, y) :- Parent(x, y) Ancêtre(x, y) :- Parent(x, z), Ancêtre(z, y) Ancêtre2 parent enfant Jean Luc Eve Anne Marie Paul Eric Lucie Guy Parent parent enfant Jean Luc Eve Anne Marie Paul Eric Lucie Guy  25/07/2019 © Robert Godin. Tous droits réservés.

© Robert Godin. Tous droits réservés. Performance Calcul converge Tables finies Si règles sûres (plus loin) Calcul monotone Évaluation naïve peu performante Optimisations Semi-naïve Réécriture de règles … 25/07/2019 © Robert Godin. Tous droits réservés.

© Robert Godin. Tous droits réservés. Datalog avec négation Introduit la possibilité d’ambiguïté … Exemple P(0) :- ¬P(1) Équivalent à T = {P(0)  P(1)} Modèle I1 = {P(0)} Modèle I2 = {P(1)} Aucun n’est minimal ! Comment éviter les théories ambiguës Négation stratifiée 25/07/2019 © Robert Godin. Tous droits réservés.

Négation stratifiée (stratified negation) Éviter la négation dans les prédicats récursifs P(0) :- ¬P(1) Non stratifié: cycle avec au moins un arc - dans le graphe de dépendance 25/07/2019 © Robert Godin. Tous droits réservés.

© Robert Godin. Tous droits réservés. Exemple stratifié Ancêtre(x, y) :- Parent(x, y) Ancêtre(x, y) :- Parent(x, z), Ancêtre(z, y) PasDescendantDeLuc(x) :- Personne(x, y), ¬Ancêtre(Luc, x) PasDescendantDeLuc = px Personne - px (s Luc (Ancêtre)) 25/07/2019 © Robert Godin. Tous droits réservés.

Formes plus sophistiquées de stratification Stratification locale considère les faits Stratification modulaire … 25/07/2019 © Robert Godin. Tous droits réservés.

© Robert Godin. Tous droits réservés. Programmes sûrs Garantir résultats finis Exemple non sûr P(x) :- ¬Q(x) Q(0) Exemple non sûr (sans négation) P(x) :- x > 0 Déterminer si un programme est sûr est indécidable en général … Clause sûre (safe rule) Toute variable dans une clause doit apparaître dans un prédicat extensionnel positif (sans négation) de la prémisse 25/07/2019 © Robert Godin. Tous droits réservés.