Fichier de rejeu Close

Indication Close

A propos de... Close

Commentaire Close

Systèmes d'Information

  • Notions mathématiques
  • Calcul relationnel
  • Algèbre relationnelle
  • Langage de requêtes
  • Arbre de requêtes
    • Requêtes sur une table
    • Opérations ensemblistes
  • Exercices
  • Introduction
  • Commandes de bases
  • Langage de définition de données (LDD)
  • Langage de manipulation de données (LMD)
  • Types de données
  • Exercice
  • Présentation
  • Calcul relationnel
  • Algèbre relationnelle
  • Division relationnelle
  • Relation
  • Fonction
  • Application
  • Injection
  • Surjection
  • Bijection
  • Association
  • Exemples
  • Dépendances fonctionnelles
  • Décomposition de relations
  • Inférence logique
  • Normalisation
  • Aux pays des bières
  • Modélisation
  • Exercices
  • Liste des projets
  • Aux pays des bières
  • Au Tournoi des six nations
  • Salles de concerts
  • Généralités
  • Langage SQL
  • Modèle relationnel
  • Généralités
  • SQL
  • Algèbre relationnelle
  • Synthèse
Index

Archives

  • Site Web
  • Sources reStructuredText
  • EniBook 1.618033988
logo

Crédits

© Your Copyright

Aide

En-tête

MenuContenu
Sommaire,
Téléchargements
Aide sur les outils

Pied de page

ChevronAction
Aller en haut de la page courante
Aller en bas de la page courante
Passer à la page précédente
Passer à la page suivante

Arbres de requêtes

A partir des opérateurs de l’algèbre relationnelle disponibles pour effectuer les traitements sur les différents serveurs de base de données relationnelles, une requête écrite en langage SQL doit pouvoir être representée sour forme d’arbre de traitement de flux de données.

Les feuilles d’un arbre de requête représenteront les tables (ensembles) où se trouvent les informations utiles à la recherche. Les noeuds de l’arbre représenteront les opérateurs de l’algèbre relationnelle que l’on peut appliquer sur les informations. La racine de l’arbre représentera le résultat de la requête SQL, c’est à dire les informations recherchées par la question formulée en SQL. Une requête SQL peut avoir plusieurs arbres correspondant. Les serveurs de bases de données relationnelles disposent d’un optimiseur de requêtes afin de sélectionner le meilleur arbre de requêtes en fonction des informations disponibles dans la base.

Requêtes sur une table

Projection
  • Question
  • Solution

Arbre de requêtes : « récupérer le nom des personnes ».

Votre réponse :
Arbre de requêtes : graph1001.json

Tables

Opérateurs unaires

Opérateurs binaires

Vue d'ensemble
nom
Dupont
Durand
Martin
Durand
Une solution possible :

On applique une projection (\(\Pi\)) sur la colonne (nom) de la table personnes.

Ecriture en algèbre relationnelle :

  • \(Q = \Pi_{(nom)}(personnes)\)
_images/personnes-1.png
Restriction
  • Question
  • Solution

Arbre de requêtes : « récupérer les personnes de plus de trente ans».

Votre réponse :
Arbre de requêtes : graph1006.json

Tables

Opérateurs unaires

Opérateurs binaires

Vue d'ensemble
idnomage
3Martin35
4Durand40
Une solution possible :

On applique une condition (restriction : \(\sigma\)) sur les valeurs colonne (nom) de la table personnes.

Ecriture en algèbre relationnelle :

  • \(Q = \sigma_{[age>30]}(personnes)\)
_images/personnes-2.png

Opérations ensemblistes

Les opérations ensemblistes permettent de répondre à des questions du type :

  • donne-moi des éléments qui se trouvent dans deux ensembles (l’union, \(\cup\))
  • donne-moi des éléments qui sont commun à deux ensembles (l’intersection, \(\cap\))
  • donne-moi des éléments qui se trouve dans un ensemble mais pas dans l’autre (la différence, \(\setminus\))
UNION
  • Question
  • Solution

Arbre de requêtes : « Récupérer les noms des personnes et des employes ».

Votre réponse :
Arbre de requêtes : graph1011.json

Tables

Opérateurs unaires

Opérateurs binaires

Vue d'ensemble
nom
Dupond
Dupont
Durand
Durant
Martin
Une solution possible :

On applique une condition (restriction : \(\sigma\)) sur les valeurs colonne (nom) de la table personnes.

Ecriture en algèbre relationnelle :

  • \(P_1 = \Pi_{(nom)}(personnes)\)
  • \(P_2 = \Pi_{(nom)}(employes)\)
  • \(Q = \cup(P_1,P_2)\)
_images/personnes-3.png
INTERSECT
  • Question
  • Solution

Arbre de requêtes : « Récupérer les noms des personnes qui sont employes »

Votre réponse :
Arbre de requêtes : graph1016.json

Tables

Opérateurs unaires

Opérateurs binaires

Vue d'ensemble
nom
Durand
Martin
Une solution possible :

On applique une condition (restriction : \(\sigma\)) sur les valeurs colonne (nom) de la table personnes.

Ecriture en algèbre relationnelle :

  • \(P_1 = \Pi_{(nom)}(personnes)\)
  • \(P_2 = \Pi_{(nom)}(employes)\)
  • \(Q = \cap(P_1,P_2)\)
_images/personnes-4.png
EXCEPT
  • Question
  • Solution

Arbre de requêtes : « Récupérer les noms des personnes qui ne sont pas employes »

Votre réponse :
Arbre de requêtes : graph1021.json

Tables

Opérateurs unaires

Opérateurs binaires

Vue d'ensemble
nom
Dupont
Une solution possible :

On applique une condition (restriction : \(\sigma\)) sur les valeurs colonne (nom) de la table personnes.

Ecriture en algèbre relationnelle :

  • \(P_1 = \Pi_{(nom)}(personnes)\)
  • \(P_2 = \Pi_{(nom)}(employes)\)
  • \(Q = \setminus(P_1,P_2)\)
_images/personnes-5.png
 
Systèmes d'Information : Arbres de requêtes, 13 avr. 2023.