Bonsoir,

Envoyé par
barette54
je cherche à exprimer la division en fonction de la projection, du produit cartésien et de la différence.
Voici comment Jeff Ullman, présente la division dans Principles of DATABASE SYSTEMS à l'aide de ces opérations (Jeff utilise le symbole π pour la projection).
Je cite et traduis :
Soit R et S deux relations de degrés respectifs r et s, telles que r > s et S ≠ 0.
R ÷ S est l’ensemble des (r — s)-tuples t tels que pour tous les s-tuples u appartenant à S, le tuple tu appartient à R.
Pour exprimer R ÷ S en utilisant les cinq opérations de base de l’algèbre relationnelle, symbolisons π1,2,..., r — s(R) par T.
(T X S) — R est alors l’ensemble des r-tuples qui n’appartiennent pas à R, mais que l’on forme en prenant les r — s premiers composants d’un tuple de R, que l’on fait suivre d’un tuple de S.
Soit alors
V = π1,2,..., r — s ((T X S) — R)
V est l’ensemble des (r — s)-tuples t qui sont les r — s premiers composants d’un tuple appartenant à R tel que pour un s-tuple quelconque u appartenant à S, tu n’appartient pas à R.
Donc T — V représente R ÷ S.
En algèbre relationnelle, on peut écrire R ÷ S sous la forme d’une expression unique, en remplaçant T et V par les expressions qu’ils représentent :
R ÷ S = π1,2,..., r — s(R) — π1,2,..., r — s((π1,2,..., r — s(R) X S) — R).
Exemple :
1 2 3 4 5 6 7 8 9
|
a b c d c d a b
a b e f e f e d
b c e f
e d c d
e d e f
a b d e
(a) Relation R (b) Relation S (c) R ÷ S |
Soit R et S les relations représentées respectivement par (a) et (b). R ÷ S est la relation représentée par (c). Le tuple ab appartient à R ÷ S parce que abcd et abef appartiennent à R, et le tuple ed appartient à R ÷ S pour la même raison. Le tuple bc, qui est la seule autre paire apparaissant dans les deux premières colonnes de R, n’appartient pas à R ÷ S parce que bccd n’appartient pas à R. ⃞
Fin de citation.
Partager