• Aucun résultat trouvé

2020-2021 BD PLS/SQL Pascal Lafourcade, Franck Glaziou & Raphaël Delage

N/A
N/A
Protected

Academic year: 2022

Partager "2020-2021 BD PLS/SQL Pascal Lafourcade, Franck Glaziou & Raphaël Delage"

Copied!
2
0
0

Texte intégral

(1)

2020-2021 BD PLS/SQL Pascal Lafourcade, Franck Glaziou & Raphaël Delage

TP2 : NBA

Les quatre fichiers nba-game-2017-18.sql, nba-player_data.sql, nba-player-2017-18.sql, et nba-tp2019.sql sont à télécharger sur le site suivant

http://sancy.univ-bpclermont.fr/~lafourcade/BDNBA/

Pour créér la base de données correspondante au MLD de la Figure 1 il faut fairestart nba-tp2019.sql;

JOUEUR PrenomNomJ Anneedebut Anneefin

Poste(G,C,F,C-F,F-G,G-F,F-C) Taille

Poids

DatenaissanceJ

GAME Dategame Horaire

#idequipedomicile

resultatdomicile(Win,Loss) Scoredomicile

#idequipeexterieur

resultatexterieur(Win,Loss) Scoreexterieur

STATS Datematch Typematch

# Equipejoueur

Locationjoueur(Home,Away) Resultatjoueur(Win,Loss)

#PrénomnomS Status(Bench,Starter) Minutes

#DatenaissanceS Points

Passes Balleperdues Interceptions Contres Fautes Tirspris Tirsmarques Tirspourcentage Tirs2pris

Tirs2marques Tirs2pourcentage Tirs3pris

Tirs3marques Tirs3pourcentage LFpris

LFmarques LFpourcentage Rebonddefensifs Rebondoffensifs Rebondtotal

#Equipeadverse

EQUIPE idequipe Ville Nom

Conference(Est,Ouest)

Figure 1 – MLD utilisé

(2)

2020-2021 BD PLS/SQL Pascal Lafourcade, Franck Glaziou & Raphaël Delage

Exercice 1 (Construction d’une fonction). (20 points)

1. (1 points) Trouver le nombre de matchs joués par Kevin Durant.

2. (2 points) Lister le(s) joueur(s) ayant marqué le plus de points dans un match dans la saison en indiquant son nom, la date du match, l’idequipede léquipe adverse et le nombre de points marqués.

3. (2 points) Lister le(s) nom(s) joueur(s) et le nombre de match joué pour ceux ayant joué le plus de match pendant la saison.

4. (5 points) Expliquer pourquoi cette requête renvoie 136 SELECT count(*) FROM GAME G, STATS S

WHERE S.Equipejoueur=’GS’ and S.datematch = G.dategame AND prenomnomS =’Kevin Durant’

AND (idequipedomicile=S.Equipejoueur OR idequipeexterieur=S.Equipejoueur);

5. (5 points) Déterminer pour Kevin Durant pour le match du 30-oct-17 quelle est l’idequipe de l’équipe qui joue à domicile.

6. (5 points) Écrire une fonction pointsmarques qui détermine pour une date de match et un joueur donnés quelle est le nombre de points marqués par ce joueur.

Exercice 2 (Construction d’une vue). (20 points)

1. (15 points) Créér une vue qui vous permettra à partir de ces tables de reconstruire une table identique à celle depalafour.nba

2. (5 points) Vérifier par 2 requêtes que le nombre de tuples de votre vue et depalafour.nbasont les mêmes.

Exercice 3 (Clef primaire). (10 points)

1. (5 points) Modifier la tableJOUEURpour ajouter un champidjoueur. Remplir ce champs avec un identifiant unique. Faire en sorte que cela devienne la clef primaire. Pour répondre à cette question vous pouvez utiliser ALTER,UPDATEetrownum.

2. (5 points) Faire les modifications nécessaires sur la tableSTATS. Vérifier que les contraintes de clefs étrangères sont bien en place en “violant des enfants”.

Références