Vous êtes sur la page 1sur 9

FÉDÉRATION EUROPÉENNE DES ÉCOLES

FEDERATION FOR EDUCATION IN EUROPE


OING dotée du statut participatif auprès du Conseil de l’Europe
INGO enjoying participatory status with the Council of Europe

UE D – EXPERTISE PROFESSIONNELLE

Mastère européen Expert IT - Applications intelligentes et big


data

UC D41.2 - Développement et bases de données - Fondamentaux

Corrigé

Type d’épreuve : Exercices pratiques

Durée : 2 heures

Session : Juin 2021

© Fédération Européenne Des Ecoles - Federation for EDucation in Europe - Juin 2021
UC D41.2 - Expert IT - Applications intelligentes et big data - Corrigé
 Dossier 1 - Conception d’une base de données

Question 1
Élaborez un modèle conceptuel de données ou un modèle relationnel de la base de données
permettant de modéliser ce système d’information.

20 points : 2 points par entité, 1 point par relation, 4 points pour les cardinalités
NB : tout MCD qui énumère les entités figurant dans la solution présentée ici est à apprécier

Question 2
Réalisez le diagramme de classes du langage UML représentant les classes et les relations
modélisant ce système d’information.

20 points : 2 points par classe, 1 point par association, 4 points pour les cardinalités

© Fédération Européenne Des Ecoles - Federation for EDucation in Europe - Juin 2021 2/9
UC D41.2 - Expert IT - Applications intelligentes et big data - Corrigé
Question 3
Créez le diagramme de cas d’utilisation représentant les différents acteurs cités et leurs cas
d’utilisations.

20 points : 1 point par acteur, 1,5 point par action, 0,5 point pour la présentation
Note : les opérations citées dans la solution ne sont faisables qu’après authentification. Donc les candidats
peuvent ajouter une opération de connexion pour chaque acteur cité ici.

© Fédération Européenne Des Ecoles - Federation for EDucation in Europe - Juin 2021 3/9
UC D41.2 - Expert IT - Applications intelligentes et big data - Corrigé
 Dossier 2 - XML, PHP, SQL et Java

Question 1
Rédigez les requêtes SQL permettant la création des deux tables Ingénieur et Equipe données
par le modèle conceptuel de l’annexe 1.

20 points : 10 points par requête

Create table Equipe (


code NUMBER (5) PRIMARY KEY,
libelle VARCHAR2(50),
couleur VARCHAR2(20)
);
Create table Ingenieur (
idIngenieur NUMBER (5) PRIMARY KEY,
nom VARCHAR2(50),
prenom VARCHAR2(20),
adresse VARCHAR2(200),
salaire NUMBER(7,2),
email VARCHAR2(200),
mdp VARCHAR2(50),
tel VARCHAR2(20),
codeEquipe NUMBER (5) NOT NULL,
FOREIGN KEY (codeEquipe) REFERENCES Equipe (code)

);

Question 2
Rédigez :
• Une requête permettant d’afficher les libellés des équipes et le nombre d’ingénieurs par
équipe.
• Une requête qui permet d’ajouter 2 % de salaire pour tous les ingénieurs.

10 points : 5 points par requête

Select Equipe.libelle, count(Ingénieur.idIngenieur) as nbIngenieurs


From Equipe , Ingenieur
Where Equipe.code = Ingenieur.codeEquipe
Group by Equipe.libelle;

Update Ingenieur set salaire =salaire * 1.02 ;

© Fédération Européenne Des Ecoles - Federation for EDucation in Europe - Juin 2021 4/9
UC D41.2 - Expert IT - Applications intelligentes et big data - Corrigé
Question 3
Écrivez le fichier equipe.xml représentant une instance de la classe équipe avec des données de
votre choix (l’exemple choisi de l’équipe doit contenir au moins deux ingénieurs).

13 points : 5 points pour l’équipe, 5 points pour les ingénieurs, 3 points pour la présentation

<?xml version='1.0' standalone=‘yes'?>


<equipe>
<code> 001 </code>
<libelle> Développeurs </libelle>
<couleur> bleue </couleur>
<ingenieur>
<nom> Durand </nom>
<prenom> Pierre </prenom>
<adresse> 20 rue de Paris Paris 75 </adresse>
<email> p.Durand@gmail.com</email>
<salaire> 2500 </salaire>
<mdp> 123456 </mdp>
<tel> 0101010101</tel>
</ingenieur>
<ingenieur>
<nom> Dupont </nom>
<prenom> Paul </prenom>
<adresse> 40 rue de Lyon Paris 75 </adresse>
<eemail> p.Dupond@gmail.com</email>
<salaire> 2400 </salaire>
<mdp> 456789 </mdp>
<tel> 0202020202</tel>
</ingenieur>
< equipe>

Question 4
Réalisez un script PHP permettant de lire le fichier equipe.xml et d’afficher les données sous
forme d’un tableau avec à la fin le nombre d’ingénieurs de l’équipe.

12 points : 5 points pour la lecture du fichier, 5 points pour l’affichage, 2 points pour la présentation

<?php
if (file_exists('equipe.xml')) {
$xml = simplexml_load_file('equipe.xml');

echo "<h2> Liste des Ingénieurs de l'équipe ";


echo "<table border = 1>
<tr> <td> Nom </td> <td> Prénom </td> <td> Adresse </td> <td> Email </td>
<td> Salaire </td> <td> Téléphone </td> </tr> ";
$nbIngenieurs = 0;
foreach ($xml->ingenieur as $ingenieur) {
echo "<tr>
<td>".$ingenieur->nom."</td>
<td>".$ingenieur->prenom."</td>
<td>".$ingenieur->adresse."</td>
<td>".$ingenieur->email."</td>
<td>".$ingenieur->salaire."</td>
<td>".$ingenieur->tel."</td>
</tr> ";

© Fédération Européenne Des Ecoles - Federation for EDucation in Europe - Juin 2021 5/9
UC D41.2 - Expert IT - Applications intelligentes et big data - Corrigé
$nbIngenieurs ++;
}
echo "</table>";
echo "<br/> Le nombre d'ingénieurs est de : ". $nbIngenieurs;
} else {
exit('Ouverture impossible');
}

Question 5
Écrivez les codes des classes Equipe et Ingenieur en Java avec les attributs, les constructeurs et
des méthodes toString (voir annexe 2 pour l’utilisation d’une collection).

20 points : 10 points classe Ingénieur, 10 points classe équipe

public class Ingenieur


{
private String nom, prenom, adresse, email, mdp, tel;
private float salaire;

public Ingenieur (String nom, String prenom,String adresse,String email,String mdp,String tel, float
montant)
{
this.nom = nom;
this.prenom = prenom;
this.adresse = adresse;
this.email = email;
this.mdp = mdp;
this.tel = tel;
this.montant = montant;

}
public Ingenieur ( )
{
this.nom = "";
this.prenom = "";
this.adresse = "";
this.email = "";
this.mdp = "";
this.tel = "";
this.montant = 0;

public String toString ()


{
return this.nom +";" +this.prenom +";" + this.adresse +";"+this.email
+";"+this.tel+";"+this.montant;
}
}

© Fédération Européenne Des Ecoles - Federation for EDucation in Europe - Juin 2021 6/9
UC D41.2 - Expert IT - Applications intelligentes et big data - Corrigé
public class Equipe {
private int code ;
private String libelle, couleur;

private ArrayList<Ingenieur> lesIngenieurs ;

public Equipe (int code, String libelle, String couleur)


{
this.code = code;
this.libelle = libelle;
this.couleur = couleur;
this.lesIngenieurs = new ArrayList<Ingenieur>();
}
public Equipe ()
{
this.code = 0;
this.libelle = "";
this.couleur = "";
this.lesIngenieurs = new ArrayList<Ingenieur>();
}
public String toString ()
{
String chaine = this.code +";" +this.libelle +";" + this.couleur ;
for (Ingenieur unIngenieur : this.lesIngenieurs)
{
chaine += unIngenieur.toString ();
}
return chaine;
}
}

© Fédération Européenne Des Ecoles - Federation for EDucation in Europe - Juin 2021 7/9
UC D41.2 - Expert IT - Applications intelligentes et big data - Corrigé
Question 6
Dans la classe Equipe, réalisez les trois méthodes ci-dessous.

15 points : 5 points par méthode

public void ajoutIngenieur (Ingenieur unIngenieur )


{
//permet d’ajouter un Ingénieur à la collection des ingénieurs contenue dans l’équipe
this.lesIngenieurs.add(unIngenieur);
}

public void retirerIngenieur (String email){


{
//permet de retirer l’ingénieur ayant l’email reçu en entrée de la collection de l’équipe
for (Ingenieur unIngenieur : this.lesIngenieurs)
{
if (unIngenieur.getEmail().equals (email))
{
this.lesIngenieurs.remove(unIngenieur);
break;
}
}
}

public float getSalaireMoyen ( ){


{
//permet de calculer et retourner le salaire moyen de l’ensemble des ingénieurs de
l’équipe
float total = 0;
for (Ingenieur unIngenieur : this.lesIngenieurs)
{
total += unIngenieur.getSalaire();
}
return (total / this.lesIngenieurs.size() );
}

© Fédération Européenne Des Ecoles - Federation for EDucation in Europe - Juin 2021 8/9
UC D41.2 - Expert IT - Applications intelligentes et big data - Corrigé
GRILLE DE NOTATION
UC D41.2 - Développement et bases de données - Fondamentaux

NOM ET PRÉNOM DU CORRECTEUR_______________________________________________________

N° de candidat__________________

Dossier Note attribuée Observations obligatoires

Dossier 1 - Conception d’une


/60
base de données

Dossier 2 - XML, PHP, SQL et


/90
Java

TOTAL /150

Appréciation générale :
_______________________________________________________________________________________
_______________________________________________________________________________________
_______________________________________________________________________________________
_______________________________________________________________________________________
_______________________________________________________________________________________

Fait à _______________________________________ le ____________

Signature :

© Fédération Européenne Des Ecoles - Federation for EDucation in Europe - Juin 2021 9/9
UC D41.2 - Expert IT - Applications intelligentes et big data - Corrigé

Vous aimerez peut-être aussi