Pascal LAFOURCADE 4 years ago
parent 1e40e59d85
commit a9fb38cee2

@ -137,102 +137,102 @@ MCD de lapplication :
\includegraphics{MCD.png}
\end{center}
\begin{center}
\begin{tikzpicture}[every node/.style={inner sep=0,outer sep=0}]
\node (i) at (6,0) {\begin{varwidth}{1.5in}
\begin{tabular}{|l|}
\hline
\rowcolor{Gray}CONTRAT\\
\hline
\underline{id\_contrat}\\
\#id\_joueur\\
\#id\_equipe\\
Date\_debut\\
Date\_fin\\
Salaire\_jour\\ \hline
\end{tabular}
\end{varwidth}
};
\node (a) at (0,0) {\begin{varwidth}{2.5in}
\begin{tabular}{|l|}
\hline
\rowcolor{Gray}JOUEUR\\
\hline
\underline{id\_joueur}\\
Nom\\
Pénom\\
Date\_de\_naissance\\
Taille\\
Poste('PG','SG','SF','PF','C')\\
\hline
\end{tabular}
\end{varwidth}
};
\node (f) at (8,-5) {\begin{varwidth}{2.5in}
\begin{tabular}{|l|}
\hline
\rowcolor{Gray}Match\\
\hline
\underline{id\_match}\\
Date\_match\\
\#id\_equipe\_domicile\\
\#id\_equipe\_exterieur\\
Ville\\
Categorie(Amical,Saison,Playoff,Allstar)\\
Score\_domicile\\
Score\_exterieur\\
Prolongation\\
\hline
\end{tabular}
\end{varwidth}
};
\node[draw,rectangle] (g) at (0,-5) {\begin{varwidth}{2in}
\begin{tabular}{l}
\rowcolor{Gray}JOUE\\
\hline
\underline{\#id\_joueur}\\
\underline{\#id\_match}\\
Points\\
Rebonds\\
Interceptions\\
Contres\\
Passes\\
Balles\_perdues\\
Fautes\\
\end{tabular}
\end{varwidth}};
\node[draw,rectangle] (c) at (11,0) {
\begin{tabular}{|l|}
\hline
\rowcolor{Gray}EQUIPE\\
\hline
\underline{id\_equipe}\\
Nom\\
Ville\\
Conference('Est','Ouest')\\
Date\_creation\\
\hline
\end{tabular}
};
\draw[-latex] (i) -- (a);
\draw[-latex] (i) -- (c);
\draw[-latex] (10,-2.6) -- (10.65,-1.5);
\draw[latex-] (c) -- (f);
\draw[latex-] (f) -- (g);
\draw[latex-] (a) -- (g);
\end{tikzpicture}
\end{center}
%% \begin{center}
%% \begin{tikzpicture}[every node/.style={inner sep=0,outer sep=0}]
%% \node (i) at (6,0) {\begin{varwidth}{1.5in}
%% \begin{tabular}{|l|}
%% \hline
%% \rowcolor{Gray}CONTRAT\\
%% \hline
%% \underline{id\_contrat}\\
%% \#id\_joueur\\
%% \#id\_equipe\\
%% Date\_debut\\
%% Date\_fin\\
%% Salaire\_jour\\ \hline
%% \end{tabular}
%% \end{varwidth}
%% };
%% \node (a) at (0,0) {\begin{varwidth}{2.5in}
%% \begin{tabular}{|l|}
%% \hline
%% \rowcolor{Gray}JOUEUR\\
%% \hline
%% \underline{id\_joueur}\\
%% Nom\\
%% Pénom\\
%% Date\_de\_naissance\\
%% Taille\\
%% Poste('PG','SG','SF','PF','C')\\
%% \hline
%% \end{tabular}
%% \end{varwidth}
%% };
%% \node (f) at (8,-5) {\begin{varwidth}{2.5in}
%% \begin{tabular}{|l|}
%% \hline
%% \rowcolor{Gray}Match\\
%% \hline
%% \underline{id\_match}\\
%% Date\_match\\
%% \#id\_equipe\_domicile\\
%% \#id\_equipe\_exterieur\\
%% Ville\\
%% Categorie(Amical,Saison,Playoff,Allstar)\\
%% Score\_domicile\\
%% Score\_exterieur\\
%% Prolongation\\
%% \hline
%% \end{tabular}
%% \end{varwidth}
%% };
%% \node[draw,rectangle] (g) at (0,-5) {\begin{varwidth}{2in}
%% \begin{tabular}{l}
%% \rowcolor{Gray}JOUE\\
%% \hline
%% \underline{\#id\_joueur}\\
%% \underline{\#id\_match}\\
%% Points\\
%% Rebonds\\
%% Interceptions\\
%% Contres\\
%% Passes\\
%% Balles\_perdues\\
%% Fautes\\
%% \end{tabular}
%% \end{varwidth}};
%% \node[draw,rectangle] (c) at (11,0) {
%% \begin{tabular}{|l|}
%% \hline
%% \rowcolor{Gray}EQUIPE\\
%% \hline
%% \underline{id\_equipe}\\
%% Nom\\
%% Ville\\
%% Conference('Est','Ouest')\\
%% Date\_creation\\
%% \hline
%% \end{tabular}
%% };
%% \draw[-latex] (i) -- (a);
%% \draw[-latex] (i) -- (c);
%% \draw[-latex] (10,-2.6) -- (10.65,-1.5);
%% \draw[latex-] (c) -- (f);
%% \draw[latex-] (f) -- (g);
%% \draw[latex-] (a) -- (g);
%% \end{tikzpicture}
%% \end{center}
% \newpage
@ -305,20 +305,23 @@ idEquipement char(3),
nombre number);
\end{verbatim}
\begin{exercice}[NBA, PLSQL] (30 points)
Le MLD ci-dessus stocke les donn\'ees des matchs NBA.
\begin{enumerate}
\item (15 points) \'Ecrire un code PL/SQL qui, pour un
\code{id\_joueur} saisi par l'utilisateur, liste dans une table
\code{TLIGNES} son maximum de points lors d'un match de sa
carri\`ere. La solution propos\'ee doit mettre en place deux
m\'ecanismes un avec et un sans \code{EXCEPTION} pour traiter les
cas d'erreurs suivants :
Consignes :
\begin{itemize}
\item \code{'joueur inconnu'}, il n'y a pas le joueur dans la table \code{JOUEUR},
\item \code{'joueur n a pas fait de match'}, il n'apparait pas
dans la table \code{JOUE}.
\item Les résultats seront affichés avec une table Tresultat (ligne varchar2 (200))
\item La partie SQL+ nest pas demandée pour les exercices 2 et 3
\end{itemize}
\begin{exercice}[PLSQL] (30 points)
Donner le programme (partie SQL + et PL/SQL) permettant denregistrer un sport.
Messages à prévoir :
\begin{itemize}
\item Le nom du sport est déjà attribué
\item Le nombre maximum de joueurs ne peut être inférieur au nombre minimum
\item La durée est de 1h ou 2h
\item Le sport a été enregistré : nom du sport
\end{itemize}
\begin{SaveVerbatim}{Maxpoints}
@ -368,20 +371,15 @@ set verify on; set feedback on; set echo on;
%% % \end{small}
%}
\item (15 points) \'Ecrire un code PL/SQL qui liste dans une table
\code{TLIGNES} les joueurs en activit\'e (ayant une date de fin de
contrat non nulle) du plus vieux au plus jeune.
\begin{center}
\begin{verbatim}
Nom Prenom Date de naissance Nom Equipe Actuelle
XXXXXX XXXXXXX XX/XX/XXXX XXXXXXXX
XXXXXX XXXXXXX XX/XX/XXXX XXXXXXXX
XXXXXX XXXXXXX XX/XX/XXXX XXXXXXXX
...
\end{verbatim}
\end{center}
%% \begin{center}
%% \begin{verbatim}
%% Nom Prenom Date de naissance Nom Equipe Actuelle
%% XXXXXX XXXXXXX XX/XX/XXXX XXXXXXXX
%% XXXXXX XXXXXXX XX/XX/XXXX XXXXXXXX
%% XXXXXX XXXXXXX XX/XX/XXXX XXXXXXXX
%% ...
%% \end{verbatim}
%% \end{center}
\begin{SaveVerbatim}{Joueur}
DROP TABLE tligne ;
@ -496,118 +494,118 @@ SELECT * FROM tligne ;
%% \BUseVerbatim{Allstar}
%% \end{footnotesize}
%% }
\end{enumerate}
\end{exercice}
\begin{center}
\begin{tikzpicture}[every node/.style={inner sep=0,outer sep=0}]
\node (a) at (5,-4) {\begin{varwidth}{1.5in}
\begin{tabular}{|l|}
\hline
\rowcolor{Gray}AFFECTATION\\
\hline
\underline{id\_contrat}\\
\#id\_personnel\\
\#id\_patient\\
Date\_debut\\
Date\_fin\\ \hline
\end{tabular}
\end{varwidth}
};
\node (f) at (0,0) {\begin{varwidth}{2.5in}
\begin{tabular}{|l|}
\hline
\rowcolor{Gray}FONCTION\\
\hline
\underline{id\_fonction}\\
Designation\\
Salaire\\
\hline
\end{tabular}
\end{varwidth}
};
\end{exercice}
\node (p) at (5,0) {\begin{varwidth}{2.5in}
\begin{tabular}{|l|}
\hline
\rowcolor{Gray}PERSONNEL\\
\hline
\underline{id\_personnel}\\
\#id\_fonction\\
\#id\_hopital\\
Nom\\
Prenom\\
\hline
\end{tabular}
\end{varwidth}
};
\node[draw,rectangle] (pa) at (0,-4) {\begin{varwidth}{2in}
\begin{tabular}{l}
\rowcolor{Gray}PATIENT\\
\hline
\underline{id\_patient}\\
Nom\\
Prenom\\
Date\_naissance\\
\end{tabular}
\end{varwidth}};
%% \begin{center}
%% \begin{tikzpicture}[every node/.style={inner sep=0,outer sep=0}]
%% \node (a) at (5,-4) {\begin{varwidth}{1.5in}
%% \begin{tabular}{|l|}
%% \hline
%% \rowcolor{Gray}AFFECTATION\\
%% \hline
%% \underline{id\_contrat}\\
%% \#id\_personnel\\
%% \#id\_patient\\
%% Date\_debut\\
%% Date\_fin\\ \hline
%% \end{tabular}
%% \end{varwidth}
%% };
%% \node (f) at (0,0) {\begin{varwidth}{2.5in}
%% \begin{tabular}{|l|}
%% \hline
%% \rowcolor{Gray}FONCTION\\
%% \hline
%% \underline{id\_fonction}\\
%% Designation\\
%% Salaire\\
%% \hline
%% \end{tabular}
%% \end{varwidth}
%% };
%% \node (p) at (5,0) {\begin{varwidth}{2.5in}
%% \begin{tabular}{|l|}
%% \hline
%% \rowcolor{Gray}PERSONNEL\\
%% \hline
%% \underline{id\_personnel}\\
%% \#id\_fonction\\
%% \#id\_hopital\\
%% Nom\\
%% Prenom\\
%% \hline
%% \end{tabular}
%% \end{varwidth}
%% };
%% \node[draw,rectangle] (pa) at (0,-4) {\begin{varwidth}{2in}
%% \begin{tabular}{l}
%% \rowcolor{Gray}PATIENT\\
%% \hline
%% \underline{id\_patient}\\
%% Nom\\
%% Prenom\\
%% Date\_naissance\\
%% \end{tabular}
%% \end{varwidth}};
%% \node[draw,rectangle] (h) at (9,0) {
%% \begin{tabular}{|l|}
%% \hline
%% \rowcolor{Gray}HOPITAL\\
%% \hline
%% \underline{id\_hopital}\\
%% Nom\\
%% Ville\\
%% Date\_creation\\
%% \hline
%% \end{tabular}
%% };
%% \draw[-latex] (p) -- (f);
%% \draw[-latex] (p) -- (h);
%% \draw[latex-] (p) -- (a);
%% \draw[latex-] (pa) -- (a);
%% \end{tikzpicture}
%% \end{center}
\node[draw,rectangle] (h) at (9,0) {
\begin{tabular}{|l|}
\hline
\rowcolor{Gray}HOPITAL\\
\hline
\underline{id\_hopital}\\
Nom\\
Ville\\
Date\_creation\\
\hline
\end{tabular}
};
\begin{exercice}[PLSQL] (45 points)
\draw[-latex] (p) -- (f);
\draw[-latex] (p) -- (h);
\draw[latex-] (p) -- (a);
\draw[latex-] (pa) -- (a);
\end{exercice}
\end{tikzpicture}
\end{center}
\begin{exercice}[Pro C] (45 points)
\begin{enumerate}
\item (30 points) En utilisant les curseurs, \'ecrire un programme
Pro C qui permet d'afficher le nom et pr\'enom des membres du
personnel par hopital en indiquant pour chacun le nombre de
patients suivis et par ordre alphab\'etique des pr\'enoms ayant la
forme suivante : \\
\begin{exercice}[PLSQL] (45 points)
Donner le programme permettant dafficher les réservations actuelles
ou futures par créneau horaire pour un sport donné. On utilisera le
nom du sport contenu dans la variable vnomSport. On affichera les
résultats dans lordre croissant de lheure de début, puis de la
date de réservation.
\begin{SaveVerbatim}{Affichage}
Personnels de lhopital XXXXX :
1) Nom : XXXXXX Prenom : XXXXX Salaire: XXXXX Nombre de patients : ZZ
2) Nom : XXXXXX Prenom : XXXXX Salaire: XXXXX Nombre de patients : ZZ
3) Nom : XXXXXX Prenom : XXXXX Salaire: XXXXX Nombre de patients : ZZ
Heure de début : XX
Id réservation date : XX/XX/XX
Id réservation date : XX/XX/XX
Id réservation date : XX/XX/XX
...
Nombre de patients total sur l'hopital : ZZ1
Nombre de personnels total sur l'hopital : ZZ2
Personnels de lhopital XXXXX :
1) Nom : XXXXXX Prenom : XXXXX Salaire: XXXXX Nombre de patients : ZZ
2) Nom : XXXXXX Prenom : XXXXX Salaire: XXXXX Nombre de patients : ZZ
3) Nom : XXXXXX Prenom : XXXXX Salaire: XXXXX Nombre de patients : ZZ
...
Nombre de patients total sur l'hopital : ZZ1
Nombre de personnels total sur l'hopital : ZZ2
Heure de début : XX
Id réservation date : XX/XX/XX
Id réservation date : XX/XX/XX
...
Nombre de réservations total pour ce sport : nb
\end{SaveVerbatim}
% \cache{%\begin{small}
@ -615,20 +613,6 @@ Nombre de personnels total sur l'hopital : ZZ2
%\end{small}
% }
Sachant que la valeur de \code{salaire} peut ne pas \^etre
renseignée, il faudra donc g\'erer ce cas.
\item (15 points) \'Ecrire un programme Pro C qui permet d'ins\'erer un nouveau
membre du personnel. Les valeurs saisies par l'utilisateurs seront
ins\'er\'ees dans la table \code{PERSONNEL}.
\begin{itemize}
\item V\'erifier que la fonction existe d\'ej\`a ainsi que l'hopital.
\item
V\'erifier aussi que l'\code{id\_personnel} n'existe pas d\'ej\`a, s'il
existe alors afficher les caract\'eristiques du personnel existant.
\end{itemize}
%% \item 'Ecrire un programme Pro C qui permet de renter une nouvelle
%% affectation entre un patient et un membre du pesonnel. V\'erifier
%% que le patient et le personel existent d\'ej\`a.
\begin{SaveVerbatim}{Insertion}
TODO
@ -639,7 +623,6 @@ TODO
%% % \end{small}
%% }
\end{enumerate}
\end{exercice}

Loading…
Cancel
Save