Académique Documents
Professionnel Documents
Culture Documents
UE D - TECHNIQUES PROFESSIONNELLES
Corrigé
Durée : 4 heures
© Fédération Européenne Des Ecoles - Federation for EDucation in Europe - Juin 2018
UC D31a Développement et bases de données - Corrigé
Dossier 1 - Spécification du projet en UML
Question 1
Décrivez ces cas d'exécution au moyen de diagrammes de séquence.
7: traitement( ) 6: etatAvancement( )
8: arret( )
9: acquittement( )
10: acquittement( )
© Fédération Européenne Des Ecoles - Federation for EDucation in Europe - Juin 2018 2/11
UC D31a Développement et bases de données - Corrigé
Déplacement à l’étage sélectionné
1: appuyer( ) 2: appuyer(int)
3: descendreEtage(int)
4: monteeEtage(int)
5: allerA(int) 6: plusMoinsUn(int)
8: traitement( ) 7: acquittement( )
9: arret( )
10: acquittement( )
11: acquittement( )
© Fédération Européenne Des Ecoles - Federation for EDucation in Europe - Juin 2018 3/11
UC D31a Développement et bases de données - Corrigé
Question 2
Décrivez ces cas d'exécution au moyen de diagrammes de collaboration.
1: appuyer( ) 2: appuyer(int)
: : CommandePalier
BoutonPalier
: Utilisateur
3: traitement( )
6: etatAvancement( ) 7: traitement( )
9: acquittement( ) 10: acquittement( )
: Cabine : Ascenseur : SGA
5: plusMoinsUn(int) 4: allerA(int)
8: arret( )
1: appuyer( ) 2: appuyer(int)
: BoutonCabineEtage :
CommandeCabine
: Utilisateur
3: descendreEtage(int)
4: monteeEtage(int)
7: acquittement( ) 8: traitement( )
10: acquittement( ) 11: acquittement( )
: Cabine : Ascenseur : SGA
6: plusMoinsUn(int) 5: allerA(int)
9: arret( )
© Fédération Européenne Des Ecoles - Federation for EDucation in Europe - Juin 2018 4/11
UC D31a Développement et bases de données - Corrigé
Question 3
Décrivez un cas d'exécution d’appel d’urgence au moyen d’un diagramme de collaboration.
13 points
1: appuyerBoutonAlerte( ) 2: Commande( )
: BoutonCabineAlerte :
CommandeCabine
: Utilisateur
3: traitement( )
: SGA
4: Alerte( )
: Administrateur
5: allerA(int)
8: acquittement( )
7: acquittement( )
: Cabine : Ascenseur
6: plusMoinsUn(int)
Question 1
Ecrivez une requête qui baisse de 10 % le salaire des SALESMAN (SALESMAN est une fonction)
mais qui augmente leur commission de 100 €.
3 points
UPDATE Employe
SET salaire=salaire*0.9, commission=commission+100
WHERE Fonction='SALESMAN';
© Fédération Européenne Des Ecoles - Federation for EDucation in Europe - Juin 2018 5/11
UC D31a Développement et bases de données - Corrigé
Question 2
Ecrivez une requête qui ajoute la particule ‘de’ aux noms des employés de grade 4 et 5 (par
exemple : ‘Sertine’ devient ‘de Sertine’).
3 points
UPDATE Employe
SET Nom_Emp=concat('de ', Nom_Emp)
WHERE Grade=4 or Grade=5;
Question 3
Ecrivez une requête qui déplace dans le département 40 tous les employés qui ont au moins un
« A » dans leur nom.
3 points
UPDATE Employe
SET Date_Entree =CURDATE(), Num_Dep =40
WHERE Nom_Emp LIKE '%A%';
Question 4
Expliquez d’une phrase simple ce que fait la requête suivante :
UPDATE Employe x, Employe y
SET x.salaire = x.salaire+100
WHERE x.Responsable = y. id_Emp
AND y. Nom_Emp = 'de KING';
3 points
Elle augmente de 100 € le salaire des employés dont le nom du responsable est ‘de KING’.
Question 5
Ecrivez une requête qui déplace le département 40 à DALLAS (localisation) puis augmente de
100 € la commission de tous les employés qui travaillent à DALLAS.
3 points
UPDATE Departement
SET Localisation = 'DALLAS'
WHERE Num_Dep = 40;
UPDATE Employe
SET Commission =100+IFNULL(Commission, 0)
WHERE Num_Dep IN ( SELECT Num_Dep
FROM Departement
WHERE Localisation = 'DALLAS');
© Fédération Européenne Des Ecoles - Federation for EDucation in Europe - Juin 2018 6/11
UC D31a Développement et bases de données - Corrigé
Question 6
Ecrivez une requête qui modifie la fonction des employés qui sont subordonnées directs
d’employés travaillant à New York. Ils seront désormais « Technicien hors classe ».
3 points
Question 7
Ecrivez la (ou les) requête(s) qui permet(tent) de créer une nouvelle table Rem_Annuelle
(Rémunération annuelle) qui contiendra trois champs : le numéro de l’employé, le nom de
l’employé et la somme des salaires et commissions d’une année pour chaque employé de
GESTEN.
3 points
Question 8
Ecrivez la requête qui trouve le nombre total d’employés engagés par département entre 2002 et
2014.
3 points
Question 9
Ecrivez la requête qui affiche le nom, le numéro, la fonction, le salaire et la catégorie de chaque
employé de l’entreprise GESTEN. Les salaires sont regroupés en catégories de la façon suivante : 1
pour les salaires dont le montant est entre 0 € à 2 500 € inclus, 2 pour les salaires dont le montant
est strictement supérieur à 2 500 €.
5 points
© Fédération Européenne Des Ecoles - Federation for EDucation in Europe - Juin 2018 7/11
UC D31a Développement et bases de données - Corrigé
Question 10
Ecrivez la requête qui trouve le nom et le numéro des départements qui ont engagé au moins 4
employés dans un intervalle de 6 mois.
5 points
Question 11
Expliquez le script ci-dessous de gestion des téléphones des employés GESTEN :
CREATE TYPE telephone_elt_vry_type AS OBJECT
(numTel VARCHAR2(14))
CREATE TYPE telephone_vry_type AS VARRAY(3) OF telephone_elt_vry_type
CREATE TYPE client_type AS OBJECT
(num NUMBER(5), nom VARCHAR2(30), adresse VARCHAR2(30),
telephone_vry telephone_vry_type)
CREATE TABLE Client OF client_type
(CONSTRAINT pk_client PRIMARY KEY (num));
4 points
© Fédération Européenne Des Ecoles - Federation for EDucation in Europe - Juin 2018 8/11
UC D31a Développement et bases de données - Corrigé
Question 12
Expliquez (commentez) le code de la procédure stockée ci-dessous et donnez son rôle :
CREATE OR REPLACE PROCEDURE change_Portable (paramcli IN NUMBER, paramtel IN
VARCHAR2) IS
tableau_tel telephone_vry_type;
indice NUMBER;
BEGIN
SELECT telephone_vry INTO tableau_tel
FROM Client WHERE num = paramcli FOR UPDATE;
IF NOT tableau_tel.EXISTS(3) THEN
indice := 1;
WHILE (indice <= tableau_tel.LIMIT)
LOOP
IF NOT (tableau_tel.EXISTS(indice)) THEN
tableau_tel.EXTEND;
tableau_tel(indice) := telephone_elt_vry_type(NULL);
END IF;
indice := indice + 1;
END LOOP;
END IF;
tableau_tel(3).numTel := paramtel;
UPDATE Client SET telephone_vry = tableau_tel WHERE num = paramcli;
EXCEPTION
WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE('Client inexistant');
END;
7 points
Question 1
Expliquez le principe de fonctionnement du protocole SOAP, comment s'intègre-t-il dans le
monde internet ?
4 points
SOAP est un protocole client-serveur avec invocation de méthodes à distance. Ces requêtes/réponses sont
codifiées en XML. C'est le protocole HTTP qui est utilisé pour le transport, cependant le client peut être soit
un navigateur (utilisation manuelle) soit une application (automatique).
© Fédération Européenne Des Ecoles - Federation for EDucation in Europe - Juin 2018 9/11
UC D31a Développement et bases de données - Corrigé
Question 2
Quels avantages et quels inconvénients voyez-vous à la réalisation de communications entre
programmes en utilisant le protocole http.
4 points
Avantages
L’utilisation de SOAP via HTTP facilite la communication et évite les problèmes de proxys et pare-feu puisque
ce dernier fonctionne à travers de nombreux proxys et firewalls sans avoir à modifier les règles de filtrage.
Inconvénients
Certaines balises spécifiques à SOAP ne vont pas être bien interprétées par tous les clients HTTP.
Exemple : certains clients ne sont pas capables de fournir une valeur d’entête HTTP nulle.
SOAP rend difficile, voire impossible, l'utilisation de l'infrastructure de mise en cache associée au protocole
HTTP : sauvegarde du résultat d’une opération chère en temps de calcul, afin de ne pas avoir à la ré-
effectuer à son appel suivant.
L’utilisation de SOAP via HTTP facilite la communication et évite les problèmes de proxys et pare-feu et
permet par conséquent de passer au travers des règles de sécurité de ces derniers et constituer un danger.
Question 3
Expliquez le rôle de chacune des fonctions suivantes :
- strtolower($debutVille),
- strlen($debutVille),
- stristr($debutVille, substr($name, $lenN, $len)).
Question 4
Expliquez l’action du code PHP de la figure 3.
6 points
Ce code permet de sélectionner les adresses des clients en comparant le début du mot tapé au clavier avec
les noms des villes où ils habitent.
© Fédération Européenne Des Ecoles - Federation for EDucation in Europe - Juin 2018 10/11
UC D31a Développement et bases de données - Corrigé
GRILLE DE NOTATION
- D31a Développement et bases de données -
N° de candidat_________________
Dossier 1 - Spécification du
/45
projet en UML
Appréciation générale :
________________________________________________________________________________________
________________________________________________________________________________________
________________________________________________________________________________________
________________________________________________________________________________________
________________________________________________________________________________________
Signature :
© Fédération Européenne Des Ecoles - Federation for EDucation in Europe - Juin 2018 11/11
UC D31a Développement et bases de données - Corrigé