Division cartésienne

Exemple

Considérons la requête « Nom des acteurs ayant joué dans tous les films de Hitchcock », il faut réussir à écrire le quantificateur universel en utilisant la différence. Pour faciliter la lisibilité, nous décomposons ce calcul en plusieurs étapes. Tout d'abord, il faut calculer tous les films de Hitchcock (FHitch). On note également A la projection sur l'attribut Acteur. On construit ensuite grâce au produit cartésien un ensemble de toutes les combinaisons possibles d'acteurs et de films de Hitchcock (X). Si on calcule Y = X \ Film, on aura retiré tous les acteurs ayant joué dans tous les films de Hitchcock. Il nous restera à comparer la projection sur Acteur de Y avec l'ensemble des acteurs Y pour obtenir le résultat attendu Z !

  1. FHitch = πTitre,DirecteurDirecteur=“Hitchcock′′(Film))

  2. A = πActeur(Film)

  3. X = FHitch × A

  4. Y = X \ Film

  5. Z = A \ πActeur(Y)

Cette opération s'écrit également de la manière suivante, en utilisant l'opérateur de division cartésienne, noté ÷ :

  • πActeur(Film ÷ πTitreσDirecteur=“Hitchcock′′(Film)).

Formellement, la division d'une relation R1 par une relation R2 est une relation Q = R1 ÷ R2 de sort(Q)=sort(R1) \ sort(R2) telle que Q × R2 ⊆ R1.