Bases de Données / Databases

Site Web de l'équipe BD du LIP6 / LIP6 DB Web Site

Outils pour utilisateurs

Outils du site


site:enseignement:licence:3i009:tmealgebre

TME 2-3 Algèbre Relationnelle avec Relax

Prise en mains de RelaX

Nous utilisons Relax qui est un service en ligne pour définir et évaluer des requêtes écrites en algèbre relationnelle

https://dbis-uibk.github.io/relax/calc/gist/0ed0d9d640284e81f44a79b595a28562

(seulement si la base foot n'est pas visible dans Relax, récupérer la baseFootRelax)

Voir les raccourcis clavier :

Le schéma de la base s'affiche sur le panneau de droite.

Pour faciliter la mise au point de vos solutions, on vous demande de saisir les requêtes en plusieurs expressions : définir une variable pour chaque opération.

Exemple 1 : Les équipes

  r1 = Equipe
  r1

Exemple 2: Le prénom des joueurs mesurant plus de 180cm avec DEUX expressions r1 et r2

  r1 = σ taille < 180 (Joueur)
  r2 = π NJo (r1)
  r2

Attention les noms de relation et d'attributs sont sensibles à la casse, contrairement à la convention SQL. Ecrire NJo mais pas Njo. Laisser un espace entre un prédicat et un nom de relation : écrire σ a!=b (R) mais pas σ a!=b(R)

L'arbre algébrique de la requête s'affiche avec le résultat. Vous pouvez cliquer sur toute opération (noeud) de l'arbre algébrique pour exécuter seulement l'expression correspondante (sous-arbre à partir du noeud cliqué).

Si l'erreur suivante s'affiche Error: only assignments found; query is missing Help - Assignments : vous avez défini des expressions algébriques mais il manque la requête à exécuter : ajouter une ligne avec le nom de la dernière variable définie (c'est la ligne r2 dans l'exemple ci-dessus)

Lorsque Relax évalue une division, il compare les attributs du dénominateurs avec les attributs situés le plus à droite au numérateur. Exemple pour diviser (sponsor, equipe) par (equipe) le dénominateur doit etre (sponsor, equipe) et non (equipe,sponsor).

Base de données : Foot

Elle contient les tables suivantes :

  • Sponsorise (NSp, NJo, Somme),
  • Joueur (NJo, Eq, taille, age),
  • Equipe (NEq, Ville, Couleur, StP)
  • Match (Eq1, Eq2, Date, St),
  • Distance (st1, st2, nbkm)

Rappel : les deux relations Match et Distance sont symétriques. Distance n'est pas réflexive.

Un sponsor sponsorise une équipe si ce sponsor sponsorise au moins un joueur de l'équipe.

Noter que Relax permet de renommer entièrement une table (ex. σ x.a > 1 ( ρ x ( A ) )), plutôt que de renommer des attributs, ce qui peut simplifier l'écriture des requêtes.

Ecrire et tester les requêtes suivantes. Les résultats attendus sont dans le fichier foofleraevalresultats.pdf

  • a. Quels sont les joueurs (nom, prénom) sponsorisés par Adadis
  • b. Quelles équipes ont déjà joué au stade préféré de l’équipe des Piépla ?
  • c. Quels sont les stades où a déjà joué Manon Messi
  • d. A quelle date a eu lieu un match entre deux équipes sponsorisées par le même sponsor.
  • e. Cette requête difficile est à faire en fin de TME. Quel sponsor a financé deux joueurs différents ayant eu un match le même jour et dans des stades différents mais proches (moins de 50 km) ?
  • f. Quels sont les joueurs qui ne sont pas sponsorisés par Adadis ?
  • g1 : Quel est le plus grand joueur ? Quel est le plus petit ? De quelle équipe ?
  • g : Quel est le(s) plus grand(s) joueur(s) sponsorisé par Adadis ?
  • h. Quelle équipe n'a jamais joué dans son stade préféré ?
  • i. A quelle date a lieu un match opposant le plus grand des joueurs au plus petit ? (cf question g1)
  • j. Quelle équipe a joué dans tous les stades ?
  • n. Quel joueur de plus de 25 ans a été sponsorisé par tous les sponsors ?
  • o. Quel sponsor a sponsorisé au moins un joueur par équipe ?
  • obis. Quelle équipe a été sponsorisé par tous les sponsors ?
  • pbis : Sponsors qui ont sponsorisé au moins deux joueurs d'une même équipe
  • p. Quel sponsor a sponsorisé exactement un joueur par équipe ? (attention le résultat est vide et non pas Adadis)
  • q : réécrire la requête o sans utiliser l'opérateur divide
site/enseignement/licence/3i009/tmealgebre.txt · Dernière modification: 24/09/2024 14:38 par hubert