Vous êtes sur la page 1sur 2

Année Universitaire : 2020-2021

EXAMEN Session : Principale


Module : Bases de données Classes : 2A Documents autorisés : NON
Enseignants : Equipe GL - BD Nombre de pages : 2
Date : Lundi 1 Février 2021 Heure : 09h00 Durée : 1h30

Exercice 1 : (4 points)
Une agence vous confie la réalisation d’un logiciel de gestion de maisons d’hôte. Ce logiciel doit permettre
la gestion centralisée des maisons dont on souhaite enregistrer le numéro de la maison, son nom, son
adresse, son code postal et son numéro de téléphone, qui sont gérées par un agent commercial ayant une
matricule, un nom et un prénom. Chaque maison doit contenir au maximum 10 chambres caractérisées par
un numéro, nombre de lits et un numéro de téléphone. Ces maisons sont classées en catégories, chaque
catégorie est caractérisée par une référence et une description. En ce qui concerne les clients, on souhaite
enregistrer leur identifiant unique (CIN), leur nom et prénom et leur numéro de téléphone. Un client réserve
une ou plusieurs chambres auprès d’un agent commercial qui enregistre en plus la date de début et de fin
de séjour. Le client peut consommer parmi les prestations proposées par la maison (exemple de prestation :
petit déjeuner, déjeuner, …), on souhaite enregistrer pour la consommation la date et la quantité. Une
prestation est identifiée par un libellé et caractérisée par une description et un prix.
Établir le modèle entité association relatif à ce problème.
Exercice 2 : (3 points)
Déduire le modèle relationnel à partir du modèle entité association suivant :

Exercice 3 : (3 points)
La relation suivante décrit la gestion des ordonnances prescrites par des docteurs aux patients.
Ordonnances (NumOrdonnance, NumSecSocial, Nompatient, DateOrdonnance, NumDocteur, NomDocteur,
NomMedicament, Qte, AdresseDocteur),
Avec les Dépendances Fonctionnelles suivantes :
 NumSecSocial → NomPatient
 NumDocteur → NomDocteur, AdresseDocteur
Un docteur peut avoir plusieurs adresses. Une adresse est composée d’un code postal, rue et ville.
Mettre en en troisième forme normale la relation ordonnances.
Exercice 4 : (10 points)
Nous allons étudier la base de données d’une application permettant de gérer les projets relatifs au
développement de logiciels. Elle est décrite par le schéma relationnel suivant :
Développeurs (NumDev, NomDev, PrenomDev, #NumPoste, AdresseDev, EmailDev, Salaire,
Date_Embauche)
Postes (NumPoste, NomPoste, DescriptionPoste, SalaireMin, SalaireMax)
Projets (NumProj, TitreProj, DateDeb, DateFin)
Logiciels (CodLog, NomLog, PrixLog, #NumProj)
Realisations (#NumProj, #NumDev)
Table Développeurs :
Colonne Type de données Contraintes
NumDev Nombre Clé primaire
NomDev Chaine de 15 caractères Obligatoire
PrenomDev Chaine de 15 caractères Obligatoire
NumPoste Nombre Clé étrangère faisant référence à la table Poste
AdresseDev Chaine de 30 caractères -
EmailDev Chaine de 30 caractères Adresse Email valide + Unique
Salaire Nombre Entre 1500 et 5000
Date_Embauche Date -

Table Postes :
Colonne Type de données Contraintes
NumPoste Nombre Clé primaire
NomPoste Chaine de 20 caractères Obligatoire
DescriptionPoste Chaine de 50 caractères -
SalaireMin Nombre Obligatoire
SalaireMax Nombre Obligatoire

Table Projets :
Colonne Type de données Contraintes
NumProj Nombre Clé primaire
TitreProj Chaine de 15 caractères Obligatoire
DateDeb Date Obligatoire
DateFin Date DateFin>DateDeb

Table Réalisations :
Colonne Type de données Contraintes
NumProj Nombre Clé primaire + clé étrangère faisant référence à la table
Projets
NumDev Nombre Clé primaire + clé étrangère faisant référence à la table
Développeurs

Table Logiciels :
Colonne Type de données Contraintes
CodLog Nombre Clé primaire
NomLog Chaine de 15 caractères Obligatoire
PrixLog Nombre -
NumProj Nombre Clé étrangère faisant référence à la table Projets

Ecrire les requêtes SQL permettant de :


1. Créer les tables Développeurs et Réalisations.
2. Ajouter à la colonne SalaireMax de la table Postes la contrainte suivante : SalaireMax>SalaireMin
3. Modifier le prix des logiciels qui commencent par ‘A’ et contenant la lettre ‘s’ en ajoutant 10%.
4. Supprimer tous les projets accomplis.
5. Insérer implicitement les données suivantes dans la table projet :
NumProj Titre DateDeb DateFin
20302 WeevioP 27/11/2019 01/01/2020
36302 InstaDeep 12/11/2020 05/02/2021

6. Afficher la liste des Développeurs, l’année, le mois en lettre et le numéro du trimestre de leur date
d’embauche par ordre décroissant de l’année.
7. Afficher la moyenne de salaire pour chaque poste.
8. Afficher les noms et les prix des logiciels appartenant au projet ayant comme titre « Gestion de rdv
», triés dans l’ordre ascendant des prix.
9. Afficher le nombre de développeurs qui n’ont pas participé au projet intitulé « Gestion des
événements ». Écrire la requête de deux manières différentes.

Bon travail

Vous aimerez peut-être aussi