Gestion de championnat et coupe de football PL/SQL

isettt Messages postés 2 Date d'inscription jeudi 13 mai 2010 Statut Membre Dernière intervention 2 juin 2010 - 13 mai 2010 à 21:47
MOSIAB Messages postés 7 Date d'inscription samedi 17 décembre 2011 Statut Membre Dernière intervention 21 décembre 2011 - 21 déc. 2011 à 18:07
Enoncé
Considérer les schémas de relations suivants :
Nous proposons d’étudier l’informatisation d’un système de gestion de la FFF (Fédération Française de Foot Ball) pour les matches du Championnat et de la Coupe de France.
Soit le modèle physique suivant :



Exercice 1
Ecrire une fonction en PL/SQL qui calcule le nombre total de buts marqués par un joueur
donné par son code, une saison de code donné et une compétition donnée.
Exercice 2
Ecrire une fonction en PL/SQL qui calcule le total des points gagnés par une équipe donnée
par son code et une saison de code donné pour la compétition de ‘Championnat’.
Pour le résultat d’un matche, une équipe aura : pour le gain (3points), pour la perte (0 points)
et pour le nulle (1 point).
Exercice 3
Ecrire une procédure en PL/SQL qui permet de faire les statistiques des équipes pour une
saison donnée et pour la compétition de ‘Championnat’ en insérant dans la table :
Stat_Equipe (Code_Equipe, Nom_Equipe, Code_Saison, Nb_But_Pour, Nb_But_Contre,
Tot_Point, Nb_Match_Jou, Nb_Match_Gain, Nb_Match_Perd, Nb_Match_Nul, Rang)
Nb_But_Pour : le nombre de buts marqués par l’équipe.
Nb_But_Contre : le nombre de buts marqués contre l’équipe.
Tot_Points : le nombre total de points gagnés par l’équipe.
Nb_Match_Joués : le nombre total de matches joués par l’équipe.
Nb_Match_Gain : le nombre total de matches gagnés par l’équipe.
Nb_Match_Perd : le nombre total de matches perdus par l’équipe.
Nb_Match_Nul : le nombre total de matches nulles par l’équipe.
Rang : le rang de l’équipe dans le classement du championnat.
Exercice 4
· Ecrire un Trigger en PL/SQL qui met à jour les champs Nb_But_Eq1 et Nb_But_Eq2
de la table Matches après chaque insertion, modification ou suppression dans la table
Buteurs.
· Ecrire un Trigger en PL/SQL qui vérifie avant chaque insertion ou modification dans la
table Buteurs que le joueur qui a marqué est titulaire (Titulaire= 1) et que la minute de but
est entre 1 et 90 si la compétition est ‘Championnat’ ou entre 1 et 120 si la compétition est
‘Coupe’.


Solutions

exercice 1

CREATE FUNCTION total_buts (cj joueur.code_joueur%type, cs saison.code_saison%type, cp match.competition%type)

RETURN NUMBER IS
V NUMBER;

BEGIN
SELECT COUNT(NB_but_EQ1) into V
FROM match M, buteurs B, JOUEURS j
WHERE M.code_match = B.code_ match
AND B.code_joueurs= cj
AND M.competition= 'cp' and M.code_saison= 'cs';
RETURN V;
END;


Exercice 2

CREATE FUNCTION calcul_points (ce equipe.code_equipe%type, s saison.code_saison%type)

RETURN NUMBER IS
V1 NUMBER;
V2 NUMBER;

BEGIN
SELECT (nb_buts_eq1) INTO V1
FROM match
WHERE codeEq1 =CE AND code_saison= S AND competition='championnat';
SELECT (nb_buts_eq2) INTO V2
FROM match
WHERE codeEq1=CE AND code_saison=S AND competition='championnat';
IF V1>V2 THEN
RETURN 3;
ELSEIF V1=V2 THEN
RETURN 1;
ELSE
RETURN 0;
END;


Exercice 4

CREATE TRIGGER mise_a_jour

after INSERT OR UPDATE OR DELETE ON buteurs

IF INSERT or UPDATE
IF (codeE =codeEq1)
UPDATE match SET nb_but_eq1 = nb_but_eq1 +1;
ELSE
UPDATE match SET nb_but_eq2 = nb_but_eq2 +1;
END IF;
ELSE IF DELETE OR UPDATE
IF (codeE=codeEq1)
UPDATE match SET nb_but_eq1 = nb_but_eq1 -1;
ELSE
UPDATE match SET nb_but_eq2 = nb_but_eq2 -1;
END IF;

END IF;


J'arrive pas a comprendre l'exercice 3, Quelqu'un peut-il m'aider s'il vous plaît?

Merci d'avance

4 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
13 mai 2010 à 21:58
Salut,

Qu'est-ce que tu as déjà fait ? Qu'est-ce que tu ne comprends pas ?
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
MOSIAB Messages postés 7 Date d'inscription samedi 17 décembre 2011 Statut Membre Dernière intervention 21 décembre 2011
19 déc. 2011 à 17:35
pourrais-je s'ils vous plaît avoir le code de l'EXERCICE 3? s'il vous plaît?
0
MOSIAB Messages postés 7 Date d'inscription samedi 17 décembre 2011 Statut Membre Dernière intervention 21 décembre 2011
21 déc. 2011 à 18:05
bonsoir DARSIDIOUS, pourrais-je avoir s'il te plaît le script entier de l'exercice d'isettt?
0
MOSIAB Messages postés 7 Date d'inscription samedi 17 décembre 2011 Statut Membre Dernière intervention 21 décembre 2011
21 déc. 2011 à 18:07
bonsoir isettt,
peux-tu continuer avec l'exercice 3 s'il te plaît?
0
Rejoignez-nous