Title: Calcul Relationnel
1Calcul Relationnel
2Calcul Relationnel
- Deux variantes
- Calcul relationnel des tuples(TRC)
- Calcul relationnel des domaines (DRC).
- Contient des variables, constantes, ops de
comparaison, opérateurs logiques, et
quantificateurs. - TRC Le domaine des variables est lensemble des
tuples. - DRC Le domaine des variables est le domaine des
attributs. - TRC et DRC souslangages de la logique du premier
ordre. - Les expressions du calcul sont appelées des
formules. Une réponse est un assignement de
constantes aux variables qui rend la formule
vraie.
3Calcul Relationnel des Tuples
- La réponse inclut tous les tuples t qui rendent
- la formule p(t) vraie.
- La formule est définie récursivement, en partant
- des formules atomiques et en construisant des
- formules de plus en plus grandes au moyen
des - opérateurs (connecteurs) logiques.
4Formules TRC
- Formules atomiques
- , R.a op S.b, R.a op
constante - op
- Formule
- Formule atomique, ou
- , p et q étant des
formules, ou - , avec la variable R libre dans
p(R), ou - , avec la variable R libre
dans p(R) - Les quantificateurs et lient R.
- Une variable non liées est dite libre.
5Variables Liées vs. Libres
- Une restriction importante simpose sur la
définition dune requête - La variable t qui apparaît à la gauche de
doit être la seule variable libre dans la formule
p(...).
6Calcul Relationnel des Domaines
- La réponse inclut tous les tuples
qui rendent - la formule
vraie. -
- la formule de DRC est définie récursivement
- de manière analogue au TRC
7Formules DRC
- Formules atomiques
- , X
op Y, X op constante - op
- Formule
- Formule atomique, ou
- , p et q étant des
formules, ou - , avec la variable X libre
dans p(X), ou - , avec la variable X libre
dans p(X) - Les quantificateurs et lient X.
- Une variable non liée est libre.
8Variables Libres vs Liées
- Reconsidérez la définition de la requête
- Restriction importante les variables x1, ...,
xn qui apparaissent à la gauche de doivent
être les seules variables libres dans la formule
p(...).
9Trouver tous les navigateurs avec un niveau au
dessus de 7
- La condition
garantit que les variables I, N, T et A sont
liées aux attributs du même tuple de Sailors. - Le terme à gauche de (à lire tel que)
signifie que chaque tuple de ce terme qui
satisfait la condition Tgt7 est dans la réponse. - Comment modifier la requête ci haut afin de
répondre à - Trouver les navigateurs qui soit sont plus âgés
que 18 ans ou ont un niveau en dessous de 9 et
qui sappellent Joe.
10Trouver les navigateurs avec niveau au dessus de
7 qui ont réservé le bateau 103
- Nous utilisons
comme abréviation pour - Notez lutilisation de afin de trouver un
tuple dans Reserves qui joint le tuple de Sailors
sous considération.
11Trouver les navigateurs avec niveau au dessus de
7 qui ont réservé un bateau rouge
- Notez bien comment les parenthèses contrôlent la
porté de chaque quantificateur. - Ceci peut paraître ennuyeux. Cependant, avec une
bonne interface dutilisateur, cette méthode est
fortement intuitive. (MS Access, QBE)
12Trouver les navigateurs qui ont réservé TOUS les
bateaux
- Trouver tous les navigateurs I tels que, pour
chaque triplet , soit que ce
dernier nest pas un tuple dans Boats ou il y a
un tuple dans Reserves montrant que le navigateur
I la réservé.
13Trouver les navigateurs qui ont réservé TOUS les
bateaux (Suite)
- Notation plus simple et plus claire pour la même
requête. - Que veut dire la requête suivante?
.....
14Requêtes Non Sûres, Pouvoir Expressif
- Il est possible décrire une requête
syntaxiquement correcte en calcul relationnel qui
aura un nombre infini de réponses. De telles
requêtes sont dites non sûres ( unsafe ). - e.g.,
- Un théorème célèbre dit que chaque requête
exprimable en algèbre relationnelle lest aussi
en DRC/TRC sûre et vice-versa. - Complétude relationnelle Un langage de requêtes
est complet (p.ex. SQL) sil peut exprimer tout
ce qui est exprimable en algèbre relationnelle
15Résumé
- Le calcul relationnel est non-opérationnel et les
utilisateurs définissent des requêtes en termes
de ce quils veulent et non en termes de comment
le système doit le calculer. Il est déclaratif ! - Lalgèbre et le calcul relationnel sûr ont le
même pouvoir expressif (notion de complétude
relationnelle). - Note les exemples donnés sont en DRC ils sont
adaptables en TRC.