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
  • QCM
  • Introduction
  • Commandes de bases
  • Langage de définition de données
  • Types de données
  • Requêtes
  • Présentation
  • Calcul relationnel
  • Algèbre relationnelle
  • Division relationnelle
  • Dépendances fonctionnelles
  • Décomposition de relations
  • Inférence logique
  • Normalisation
  • Aux pays des bières
  • Modélisation
  • Exercices
  • Présentation
  • Aux pays des bières
  • Au Tournoi des six nations
  • Salles de concerts
  • Définitions
  • Langage SQL
  • Modèle relationnel
  • Films
  • Repas
  • Repas
Index

Téléchargements

  • Site
  • Sources
  • EniBook
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

Recherches sur plusieurs tables

L’objectif de ces exercices est de savoir représenter sous forme d’arbre de requêtes une requête sur une plusieurs tables de la base de données « Aux pays des bières ».

2/2 Aux pays des bières : INNER, NATURAL, OUTER
  1. Produit cartésien et restriction
    • Question
    • Solution
    Construire un arbre de requêtes répondant à la question :
    • \(Q_1\) : « récupérer les bars qui servent de la bière ».
    Votre réponse :
    Arbre de requêtes : graph72.json

    Tables

    Opérateurs unaires

    Opérateurs binaires

    Vue d'ensemble
    id_bierebierecouleurorigineid_barbarpaysstock
    1KronenbourgBlondeFrance1Bar du CoinFrance1000
    2GuinnessBruneIrlande1Bar du CoinFrance250
    3HeinekenBlondeHollande1Bar du CoinFrance50
    4NewcastleRousseUK1Bar du CoinFrance10
    5SpatenBlondeAllemagne1Bar du CoinFrance10
    6BushBlondeUSA1Bar du CoinFrance10
    7KanterbrauBlondeFrance1Bar du CoinFrance20
    8KronenbourgBruneFrance1Bar du CoinFrance20
    1KronenbourgBlondeFrance2Corners PubUSA100
    6BushBlondeUSA2Corners PubUSA1500
    5SpatenBlondeAllemagne3Cafe der EckeAllemagne5000
    Une solution possible :

    On utilise ici l’opération de jointure naturelle \(\Join_{[]}\) entre deux tables (\(S,T\)) :

    • \(\Join_{[]}(S,T)\).

    On réalise une première jointure naturelle (\(NJ_1\)) entre les tables bars,services :

    • \(NJ_1=\Join_{[]}(bars,services)\)

    suivi d’une deuxième jointure (\(NJ_2\)) entre le résultat précédent et la table des bieres :

    • \(NJ_2=\Join_{[]}(NJ_1,bieres)\)
    Ecriture en algèbre relationnelle :
    • \(Q_1 = \Join_{[]}(\Join_{[]}(bars,services),bieres)\)

    Qu’obtient-on avec les arbres de requêtes suivants :

    • \(Q_2 = \Join_{[]}(\Join_{[]}(bieres,services),bars)\)
    • \(Q_3 = \Join_{[]}(\Join_{[]}(bars,bieres),services)\)
    Arbre de requêtes : bars-6.json

    Tables

    Opérateurs unaires

    Opérateurs binaires

    Vue d'ensemble
    id_bierebierecouleurorigineid_barbarpaysstock
    1KronenbourgBlondeFrance1Bar du CoinFrance1000
    2GuinnessBruneIrlande1Bar du CoinFrance250
    3HeinekenBlondeHollande1Bar du CoinFrance50
    4NewcastleRousseUK1Bar du CoinFrance10
    5SpatenBlondeAllemagne1Bar du CoinFrance10
    6BushBlondeUSA1Bar du CoinFrance10
    7KanterbrauBlondeFrance1Bar du CoinFrance20
    8KronenbourgBruneFrance1Bar du CoinFrance20
    1KronenbourgBlondeFrance2Corners PubUSA100
    6BushBlondeUSA2Corners PubUSA1500
    5SpatenBlondeAllemagne3Cafe der EckeAllemagne5000
  2. Création de vue
    • Question
    • Solution

    Construire un arbre de requêtes pour créer une vue (\(barsdumonde\)) sur les informations “métier” (sans les clés id_bar et id_biere) répondant à la question :

    • « récupérer les bars qui servent de la bière ».
    Votre réponse :
    Arbre de requêtes : graph79.json

    Tables

    Opérateurs unaires

    Opérateurs binaires

    Vue d'ensemble
    barpaysstockbierecouleurorigine
    Bar du CoinFrance1000KronenbourgBlondeFrance
    Bar du CoinFrance250GuinnessBruneIrlande
    Bar du CoinFrance50HeinekenBlondeHollande
    Bar du CoinFrance10NewcastleRousseUK
    Bar du CoinFrance10SpatenBlondeAllemagne
    Bar du CoinFrance10BushBlondeUSA
    Bar du CoinFrance20KanterbrauBlondeFrance
    Bar du CoinFrance20KronenbourgBruneFrance
    Corners PubUSA100KronenbourgBlondeFrance
    Corners PubUSA1500BushBlondeUSA
    Cafe der EckeAllemagne5000SpatenBlondeAllemagne
    Une solution possible :

    On utilise ici l’opération de jointure naturelle \(\Join_{[]}\) entre deux tables (\(S,T\)) :

    • \(\Join_{[]}(S,T)\).

    On réalise une première jointure naturelle (\(NJ_1\)) entre les tables bars,services :

    • \(NJ_1=\Join_{[]}(bars,services)\)

    suivi d’une deuxième jointure (\(NJ_2\)) entre le résultat précédent et la table des bieres :

    • \(NJ_2=\Join_{[]}(NJ_1,bieres)\)

    Le résultat final (\(barsdumonde\)) s’exprimera en appliquant une projection sur les informations “métier” issues de la jointure précédente :

    • \(barsdumonde=\Pi_{(bar,pays,stock,biere,couleur,origine)}(NJ_2)\)

    Ecriture en algèbre relationnelle :

    • \(Q_1=barsdumonde=\Pi_{(bar,pays,stock,biere,couleur,origine)}(\Join_{[]}(\Join_{[]}(bars,services),bieres))\)
    Arbre de requêtes : bars-7.json

    Tables

    Opérateurs unaires

    Opérateurs binaires

    Vue d'ensemble
    barpaysstockbierecouleurorigine
    Bar du CoinFrance1000KronenbourgBlondeFrance
    Bar du CoinFrance250GuinnessBruneIrlande
    Bar du CoinFrance50HeinekenBlondeHollande
    Bar du CoinFrance10NewcastleRousseUK
    Bar du CoinFrance10SpatenBlondeAllemagne
    Bar du CoinFrance10BushBlondeUSA
    Bar du CoinFrance20KanterbrauBlondeFrance
    Bar du CoinFrance20KronenbourgBruneFrance
    Corners PubUSA100KronenbourgBlondeFrance
    Corners PubUSA1500BushBlondeUSA
    Cafe der EckeAllemagne5000SpatenBlondeAllemagne
 
Systèmes d'Information : Recherches sur plusieurs tables, 12 févr. 2018.