Division
Définition : Division
La division est une opération binaire (c'est à dire portant sur deux relations).
La division de RD par Rd a pour résultat RQ tel que RQ comporte le plus grand ensemble possible de tuples qui concaténés à ceux de Rd donnent toujours un tuple de RD.
Fondamental :
RQ = RD ÷ Rd si et seulement si :
Rd X RQ ⊆ dans RD
∄ RQ' tel que RQ ⊂ RQ' et Rd X RQ' ⊆ dans RD
Syntaxe :
RQ = Division (RD, Rd)
Attention :
Tous les attributs de Rd sont des attributs de RD (c'est à dire de même nom et de même domaine), sinon ∀R,
Rd X R
donnera des tuples dont au moins un attribut n'appartient pas au schéma de RD.RD a au moins un attribut de plus que Rd, sinon ∀R,
Rd X R
donnera des tuples qui ont au moins un attributs de plus que RD.RQ comporte les attributs appartenant à RD mais n'appartenant pas à Rd
Conseil : Comparaison avec la division entière
RD est le dividende
Rd est le diviseur
RQ est le quotien (tel que RQ x Rd donne le plus grand entier inférieur à RD)
Il y a une sorte de reste Rr qui contient les tuples de RD qui ne sont pas retrouvés par l'opération Rd X RQ.
Exemple :
Soit les deux relations suivantes : (RD) Pratique (personne, age, métier)
et (Rd) Métier (métier)
personne | age | métier |
---|---|---|
Dupont | 20 | Ingénieur |
Dupont | 20 | Professeur |
Durand | 30 | Professeur |
Martin | 40 | Ingénieur |
Martin | 40 | Professeur |
métier |
---|
Ingénieur |
Professeur |
Soit l'opération suivante : RQ = Division (Pratique, Métier)
On obtient alors la relation RQ composée des tuples suivants :
personne | age |
---|---|
Dupont | 20 |
Martin | 40 |
On peut considérer que le tuple (Durand, 30, Professeur) est ici une sorte de reste, il n'est pas retrouvé par l'opération Rd X RQ.
Méthode : Réponse aux questions : Pour tous les ...
La division permet de répondre aux questions du type : "Donnez toutes les personnes qui pratiquent tous les métiers de la relation métier".
Remarque : Opération additionnelle
La division n'est pas une opération de base, elle peut être réécrite en combinant le produit, la restriction et la différence.
Syntaxe : Syntaxes alternatives
RQ = ÷ (RD, Rd
)
RQ = RD ÷ Rd