Table des matières
22 LOGIQUE ET BASES DE DONNÉES ................................................................... 1
22.1 Calcul des prédicats du premier ordre .......................................................................................................... 1
22.2 Calcul des prédicats en bases de données ...................................................................................................... 3
22.3 Bases de données déductives : Datalog et sémantique du point fixe ......................................................... 11
22.4 Notes bibliographiques.................................................................................................................................. 18
22.5 Références ...................................................................................................................................................... 18
L O G I Q U E E T B A S E D E D O N N É E S ( D O C U M E N T D E T R A V A I L )
2004 Robert Godin. Tous droits réservés.
1
22 Logique et bases de données
Plusieurs langages de manipulation et de définition de données (SQL, OCL, OQL, Datalog, QBE, etc. )
sont bas sur la logique matmatique. Ce chapitre psente les principaux concepts de la logique
matmatique et de leur incorporation aux langages des bases de dones.
22.1 Calcul des prédicats du premier ordre
La logique du premier ordre, aussi appee calcul de prédicats du premier ordre, est issue des matmatiques. Elle
vise à préciser la nature des raisonnements logiques. Nous rappelons d’abord brvement les concepts de
base. Par la suite, l’utilisation de la logique dans le contexte des bases de données sera discutée.
Le langage du calcul de prédicats du premier ordre a une syntaxe et une sémantique formelles. Rappelons
d’abord la syntaxe.
1. Vocabulaire
Le vocabulaire de la logique du premier ordre est constit des éléments suivants.
1. Constantes : les constantes sont souvent repsenes en matmatiques par les lettres
minuscules du début de l’alphabet (a, b, c, etc.).
2. Variables : les variables sont souvent repsentées par des lettres minuscules de la fin de
l’alphabet (x, y, z, etc.).
3. Pdicats : 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.
4. Opérateurs logiques : ¬ (négation), (et logique), (ou logique), (implication)
5. Quantificateurs : (quantificateur universel), (quantificateur existentiel)
6. Parenthèses : (, )
Note au sujet des identificateurs
Dans le contexte informatique, on emploie des conventions plus élaborées pour la syntaxe des
identificateurs à la manre des langages de programmation.
Chapitre
122
L O G I Q U E E T B A S E D E D O N N É E S ( D O C U M E N T D E T R A V A I L )
2004 Robert Godin. Tous droits réservés.
2
2. Grammaire
La grammaire du langage est la suivante.
1. Termes : les éments de base, appelés termes, repsentent les objets du domaine de
discours. Ce sont les constantes, variables ou fonctions, f(t1, t2,…, tn) appliqués aux termes
t1, t2,…, tn. La finition est récursive et on peut ainsi composer les fonctions.
2. Formules atomiques (ou atomes, propositions) : une formule atomique est un prédicat P(t1, t2,,
tn) appliqà des termes t1, t2,…, tn.
3. Formules. Une formule repsente une expression logique qui est soit vrai ou fausse et peut
être soit :
une formule atomique
¬F, (F1 F2), (F1 F2), (F1 F2) F, F1, F2 sont des formules.
x F, x F F est une formule dans laquelle x est une variable libre tel que
finie ci-aps.
Pour limiter l’emploi des parenthèses, des priorités d’orateurs sont habituellement définies et les
parentses sont employées afin de forcer un ordre d’évaluation différent de celui qui sulte de
l’application des priorités.
3. Pore d'un quantificateur, variable libre, liée
Un quantificateur assoc à une variable ressemble à une déclaration de variable en programmation. La
portée d’un quantificateur x F est la formule F qui le suit. Le x fait référence à la variable x dans la
formule F. Comme dans les langages de programmation structurés par bloc, la refinition locale est
permise.
Une variable x est libre dans F si au moins une occurrence de x n'est pas dans la pore d'un quantificateur
associé à x à l'intérieur de F. Une variable x est liée dans F si elle n'est pas libre.
Exemple. Dans la formule z Q(x, z), la variable z dans Q(x, z) est libre donc la formule z Q(x, z) fait
du sens.
Exemple. Dans la formule, x (P(x, y) z Q(x, z)), les deux occurrences de x sont liées au quantificateur
x et la seule occurrence de z est liée au quantificateur z. Par contre, la variable y est libre car elle n’est
liée à aucun quantificateur.
Exemple. La formule z Q(x, y) est incorrecte car la formule Q(x, y) il n’y a pas de variable z libre dans
Q(x, y) et qui peut être liée au quantificateur z.
Exemple. La formule z (P(x, y) z Q(x, z)) n’est pas correcte car dans (P(x, y) z Q(x, z)), z nest pas
libre. En effet, la seule occurrence de z est liée au quantificateur z.
L O G I Q U E E T B A S E D E D O N N É E S ( D O C U M E N T D E T R A V A I L )
2004 Robert Godin. Tous droits réservés.
3
Exemple. La formule z (P(z, y) z Q(x, z)) est correcte car dans (P(z, y) z Q(x, z)), la première
occurrence de z est libre. Cet exemple montre la redéfinition locale de la variable z. Comme en
programmation, le deuxme z a une pore locale à la sous-formulez Q(x, z).
Formule ouverte/fere
Une formule est fermée si toutes ses variables sont les. Dans le cas contraire elle est ouverte.
22.2 Calcul des prédicats en bases de données
Le calcul des prédicats est à l’origine de nombreuses applications informatiques. Les langages tels que
PROLOG et les langages à bases de gles sont inspirés de cette théorie. Il en est de me pour les
langages de requêtes des bases de données et les langages des bases de données déductives, en particulier,
Datalog. Pour appliquer la théorie, certaines adaptations sont introduites afin de produire des
implémentations efficaces. Regardons dabord de manre générale, comment le calcul des prédicats
permet de manipuler les données relationnelles.
D’un point de vue des bases de dones, un prédicat appliqué à des constantes (pdicat instanc) peut être
assimià une ligne dans une table relationnelle.
Exemple. Le prédicat instancié Client(10, Luc Sansom, (999)999-9999) correspond à la premre ligne de la
table suivante. Ainsi, un ensemble de prédicats intanciés peut être assimilé à une table relationnelle.
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
(666)666-6666
70
Simon Lecoq
(444)444-4419
80
Dollard Tremblay
(333)333-3333
Dans le contexte d’une formule, un pdicat instanc retourne la valeur de rivrai s’il y a une ligne de la
table qui y correspond. Sinon, il retourne faux. La table relationnelle est vue comme une interprétation du
symbole de prédicat. L’interprétation identifie les constantes qui rendent le pdicat vrai.
Exemple. Client(10, Luc Sansom, (999)999-9999) est vrai alors que Client(30, Luc Sansom, (999)999-9999)
est faux dans le contexte de l’interptation par la table précédente.
Faits
(
facts
),
prédicat extensionnel
,
base de dones extensionnelle
(
extentional database
)
Ainsi le domaine du discours des formules logiques est assimilé à un ensemble tables relationnelles, appelée
base de données extensionnelle. Un prédicat extensionnel correspond à une table de la BD extensionnelle. On utilise
aussi le terme fait pour signer une ligne d’une table qui correspond à un pdicat extensionnel instancié.
L O G I Q U E E T B A S E D E D O N N É E S ( D O C U M E N T D E T R A V A I L )
2004 Robert Godin. Tous droits réservés.
4
Une formule fere retourne une valeur de vérité (vrai ou faux) qui dépend de l’interptation des
symboles de prédicats, constantes et fonctions. Les tables relationnelles dune base de données sont
utilisées dans l’interprétation de prédicats.
Interptation
Formellement, une interprétation I, est constituée d’un domaine (ensembles de valeurs) D
1
, d’une relation
sur Dn pour chacun des symboles de prédicats n-aire et d’une fonction sur Dn pour chacun des symboles
de fonction.
Valeur de véri, modèle, validité d’une formule
Dans une interprétation I, une formule fere prend une valeur de vérité, vrai ou faux. Une interprétation I
est un mole d’un ensemble de formules, si les formules sont vraies dans cette interprétation. Une
formule est valide si elle est toujours vraie quelque soit l’interprétation.
Pour interpréter une formule, il faut attribuer un sens aux opérateurs logiques et aux quantificateurs. Voici
les tables de rité des opérateurs logiques :
F1
F2
F1 F2
F1 F2
vrai
vrai
vrai
vrai
vrai
faux
vrai
faux
faux
vrai
vrai
vrai
faux
faux
faux
vrai
F
¬F
vrai
faux
faux
vrai
Les quantificateurs sont interprétés de la manière suivante :
1. 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.
2. x F est vraie dans une interptation I si F est vraie pour au moins une valeur de x prise dans le
domaine D de l’interprétation I.
Exemple. Prenons l’interprétation de la table Client précédente pour le symbole de prédicat Client.
Supposons que le domaine D est l’ensemble des valeurs possibles pour les colonnes de la table. Pour
1
À noter qu’en bases de données, on distingue les types des différentes colonnes mais cette nuance n’est pas fondamentale à la
compréhension des concepts.
1 / 19 100%