Vous êtes sur la page 1sur 4

UNIVERSITE ABOU BEKR BELKAID - FACULTE DES SCIENCES - DEPARTEMENT D’INFORMATIQUE

L2 Bases de Données Date : 21/05/2018

Exercice 1 (16 Pts)


Soit le schéma relationnel suivant :
Employe (Matricule, Nom, Prénom, Poste, Salaire, Chef#)
Projet (CodeP, DesignationP, Ville)
Affecter (Matricule#, CodeP#, Jours)

Partie 1 (4 Pts)
Exprimez les requêtes suivantes en algèbre relationnelle
1. Nom et salaire des employés affectés plus de 15 jours à un projet à « Tlemcen ». (1 Pt)

π Nom, Salaire ((Employe ⋈ (σ Jours > 15 Affecter)) ⋈ (σ Ville = "Tlemcen" Projet))

2. Désignation des projets pour lesquels on a affecté « Slimani Yasser » et « Saidani Asma ». (1.5 Pt)

π DesignationP ( Projet ⋈ Affecter ⋈ σ (Nom="Slimani" ∧ Prénom="Yasser") ∨ (Nom="Saidani" ∧ Prénom="Asma") Employe )


Ou
π DesignationP (Projet ⋈Affecter ⋈ σ [Nom="Slimani" ∧ Prénom="Yasser"] Employe )
U
π DesignationP (Projet ⋈Affecter ⋈ σ [Nom="Saidani" ∧ Prénom="Asma"] Employe )
3. Matricule des employés qui participent à tous les projets. (1.5 Pt)

πMatricule, CodeP Affecter / πcodeP Projet

Partie 2 (12 Pts)


Exprimez les requêtes suivantes en SQL
1. Désignation des projets affectés par ordre alphabétique inverse dont la ville possède la chaine « le ». (1.5 Pt)
Select DesignationP
From Projet, Affecter
Where Affecter.CodeP=Projet.CodeP and
Ville Like " %le% "
Order by Designation Desc
2. Désignation des projets pour lesquels on a affecté à la fois « Slimani Yasser » et « Saidani Asma ». (1.5 Pt)
Select DesignationP
From Projet, Affecter, Employe
Where Affecter.Matricule=Employe.Matricule And Affecter.CodeP=Projet.CodeP And
Nom="Slimani" And Prenom="Yasser"
INTERSECT
Select DesignationP
From Projet, Affecter, Employe
Where Affecter.Matricule=Employe.Matricule And Affecter.CodeP=Projet.CodeP And
Nom="Saidani" And Prenom="Asma"
Ou
Select DesignationP
From Projet, Affecter, Employe
Where Affecter.Matricule=Employe.Matricule And Affecter.CodeP=Projet.CodeP And
Nom="Slimani" And Prenom="Yasser"
And DesignationP IN
(Select DesignationP
From Projet, Affecter, Employe
Where Affecter.Matricule=Employe.Matricule And Affecter.CodeP=Projet.CodeP And
Nom="Saidani" And Prenom="Asma")
3. Nom et prénoms des employés qui ne sont pas affectés à un projet à « Tlemcen ». (1.5 Pt)
Select Nom, Prenom
From Employe
Minus Ou Except
Select Nom,Prenom
From Projet, Affecter, Employe
Where Affecter.Matricule=Employe.Matricule And
Affecter.CodeP=Projet.CodeP And Ville="Tlemcen"
Ou
Select Nom, Prenom
From Employe
Where Nom, Prenom
NOT IN
(Select Nom,Prenom
From Projet, Affecter, Employe
Where Affecter.Matricule=Employe.Matricule And
Affecter.CodeP=Projet.CodeP And Ville="Tlemcen")
4. Matricule des employés qui participent à tous les projets. (2 Pts)
Select Matricule
From Affecter A1
Where Not Exists (Select * From Projet
Where Not Exists (Select * From Affecter A2
Where A2.CodeP=Projet.CodeP And
A2.Matricule=A1.Matricule ))
Ou
Select Matricule
From Affecter
Group By Matricule
Having Count(Distinct (CodeP)) = (Select Count(*) From Projet)
5. Nom et prénom des employés dont le supérieur est « Belhadj ». (2 Pts)
Select Nom, Prenom
From Employe
Where Chef = (Select Matricule
From Employer
Where Nom ="Belhadj")
6. Nombre des employés qui sont affectés à chaque projet. (1.5 Pts)
Select Count (Matricule) "Nombre d’employés"
From Affecter
Group By CodeP
Ou
Select CodeP, Count (*) "Nombre d’employés"
From Affecter
Group By CodeP
7. Nom des employés dont le salaire est le plus élevé. (2 Pt)
Select Nom
From Employe
Where Salaire = (Select Max(Salaire)
From Employe)
Ou
Select Nom
From Employe
Where Salaire >=ALL (Select Salaire
From Employe)

Exercice 2 (4 pts)
Soit une relation « Utilisateur » dont le schéma est le suivant :
Utilisateur (ID_Utilisateur, Nom, Prénom, Adresse_Mail, Serveur_Mail, Login, Passwd).
1. En utilisant les dépendances fonctionnelles, exprimez les contraintes suivantes (1.5 Pt) :
– Le nom et le prénom d'un utilisateur peuvent être déduits à partir de son identifiant.
ID_Utilisateur → Nom et ID_Utilisateur → Prénom
Ou
ID_Utilisateur →Nom, Prénom
– Un utilisateur, identifié par son identifiant, possède un seul login et un seul password par serveur mail.
ID_Utilisateur, Serveur_Mail → Login et ID_Utilisateur, Serveur_Mail → Passwd
Ou
ID_Utilisateur, Serveur_Mail, → Login, Passwd
– Une adresse email est associée à un et un seul identifiant utilisateur
(Remarque : un utilisateur peut avoir plusieurs adresses emails)
Adresse_Mail → ID_Utilisateur
– Une adresse email est associée à un et un seul serveur mail.
Adresse_Mail → Serveur_Mail
2. Indiquez, à partir de la famille de dépendances fonctionnelles, issue de la question 1, quelle est la clé de la
relation « Utilisateur ». (0,5 Pt)
La clé primaire est : Adresse_Mail
3. Justifiez, à partir de la famille de dépendances fonctionnelles, issue de la question 1, en quelle forme
normale est la relation « Utilisateur ». (2 Pt)
La relation « Utilisateur » est en 3 FN :
▪ La relation est en 1ére FN car tous les attributs sont monovalués.
▪ Elle est en 2éme car elle est en 1FN et la clé n'est pas composée.
▪ Elle est en 3 FN car elle est en 2FN et il n'existe pas d'attribut non clé qui dépend d'un
autre attribut non clé.

Vous aimerez peut-être aussi