1 / 15

Calcul Relationnel

Calcul Relationnel. Chapitre 4, Section 4.3. Calcul 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 .

keran
Download Presentation

Calcul Relationnel

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Calcul Relationnel Chapitre 4, Section 4.3

  2. Calcul 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 l’ensemble 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.

  3. Calcul Relationnel des Tuples • Forme de la requête: • 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.

  4. Formules 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 Rlibredans p(R), ou • , avec la variable Rlibre dans p(R) • Les quantificateurs et lientR. • Une variable non liées est dite libre.

  5. Variables Liées vs. Libres • Une restriction importante s’impose sur la définition d’une requête : • La variable t qui apparaît à la gauche de `|’ doit être la seule variable libre dans la formule p(...).

  6. Calcul Relationnel des Domaines • Forme de la requête: • La réponse inclut tous les tuples qui rendent • la formulevraie. • la formule de DRC est définie récursivement de manière analogue au TRC

  7. Formules 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 libredans p(X), ou • , avec la variable X libre dans p(X) • Les quantificateurs et lient X. • Une variable non liée est libre.

  8. Variables 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(...).

  9. Trouver 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 T>7 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 s’appellent ‘Joe’.

  10. Trouver les navigateurs avec niveau au dessus de 7 qui ont réservé le bateau #103 • Nous utilisons comme abréviation pour • Notez l’utilisation de afin de trouver un tuple dans Reserves qui joint le tuple de Sailors sous considération.

  11. Trouver 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 d’utilisateur, cette méthode est fortement intuitive. (MS Access, QBE)

  12. Trouver les navigateurs qui ont réservé TOUS les bateaux • Trouver tous les navigateurs I tels que, pour chaque triplet , soit que ce dernier n’est pas un tuple dans Boats ou il y a un tuple dans Reserves montrant que le navigateur I l’a réservé.

  13. Trouver 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? .....

  14. Requê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 l’est aussi en DRC/TRC sûre et vice-versa. • Complétude relationnelle: Un langage de requêtes est complet (p.ex. SQL) s’il peut exprimer tout ce qui est exprimable en algèbre relationnelle

  15. Résumé • Le calcul relationnel est non-opérationnel et les utilisateurs définissent des requêtes en termes de ce qu’ils veulent et non en termes de comment le système doit le calculer. Il est déclaratif ! • L’algè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.

More Related