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

Ceci est une ancienne révision du document !


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

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.

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

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 asymétriques. Distance n'est pas réflexive.

Pour avoir des realtions symétriques, définir DistanceSym et MatchSym comme cela:

  Distancemirror1 = ρ st3 ← st1, st4 ← st2  (Distance)
  Distancemirror2 = ρ st2 ← st3, st1 ← st4  (Distancemirror1)
  DistanceSym = π st1, st2, nbkm (Distancemirror2) ∪ π st1, st2, nbkm Distance
  DistanceSym
  Matchmirror1 = ρ Eq3 ← Eq1, Eq4 ← Eq2  (Match)
  Matchmirror2 = ρ Eq2 ← Eq3, Eq1 ← Eq4  (Matchmirror1)
  MatchSym = π Eq1, Eq2, Date, St (Matchmirror2) ∪ π Eq1, Eq2, Date, St  Match
  MatchSym

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.1632818339.txt.gz · Dernière modification: 28/09/2021 10:38 par hubert