public:std-3:cm2:interrogation_des_bases_de_donnees:3.2.3_recherches_composees

  • Certaines requêtes, peuvent être le résultat de la combinaison de plusieurs critères de recherche
  • La combinaison de résultats est généralement réalisée à l'aide des opérations ensemblistes classiques (intersection, union…) pour exprimer «et», «ou», «non»…
  • Pour alléger les formules, il est possible d'utiliser des tables intermédiaires.
Union
  • Soient r1 et r2 deux tables de schéma R.

L'union r1 U r2 est une nouvelle table de schéma R constituée de l'ensemble des enregistrements qui appartiennent à r1 ou à r2: $$r1 \cup r2 = { t ∈ r1} \cup { t ∈ r2}$$

Intersection
  • Soient r1 et r2 deux tables de schéma R.

L'intersection r1 ⋂ r2 est une nouvelle table de schéma R constituée de l'ensemble des enregistrements qui appartiennent à r1 et à r2: $$r1 \cap r2 = \{ t ∈ r1\} \cap \{ t ∈ r2\}$$

Différence
  • Soient r1 et r2 deux tables de schéma R.

La différence r1 - r2 est une nouvelle table de schéma R constituée de l'ensemble des enregistrements qui appartiennent à r1 mais pas à r2: $$r1 - r2 = \{ t ∈ r1\} - \{ t ∈ r2\}$$

Exemples :

  • Donner la liste des pays qui exportent à la fois du gaz et du pétrole :

$$\pi _{Pays} σ_\text{matière = gaz} (\text{Exportations}) \cap \pi _{Pays} σ_\text{matière = pétrole} (\text{Exportations})$$ en SQL :

SELECT pays FROM Exportations
WHERE matière = 'gaz'
INTERSECT (     SELECT pays FROM EXPORTATIONS
                WHERE matière = 'pétrole');
  • Donner la liste des pays qui exportent du gaz mais pas du pétrole :

$$\pi _{Pays} σ_\text{matière = gaz} (\text{Exportations}) - \pi _{Pays} σ_\text{matière = pétrole} (\text{Exportations})$$ en SQL :

SELECT pays FROM Exportations
WHERE matière = 'gaz'
EXCEPT (     SELECT pays FROM EXPORTATIONS
            WHERE matière = 'pétrole');

* Donner la liste des clients qui commandent uniquement des produits 'Moxcom' : $$\pi_{nom\_client}Client - \pi_{nom\_client} \sigma_{fournisseur \neq 'Moxcom'} Client ⋈ Commande$$ en SQL :

SELECT nom_client FROM Client
EXCEPT (    SELECT client FROM Client NATURAL JOIN Commande
            WHERE fournisseur <> 'Moxcom');

Previous : 3.2.2 Opérateurs multi-tables Up : 3.2 Interrogation des bases de données Next : Analyse des données

  • public/std-3/cm2/interrogation_des_bases_de_donnees/3.2.3_recherches_composees.txt
  • Dernière modification : 2017/09/20 23:40
  • de edauce