0% ont trouvé ce document utile (0 vote)
58 vues3 pages

Null 5 2

Le bon

Transféré par

judicaeljdk
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
58 vues3 pages

Null 5 2

Le bon

Transféré par

judicaeljdk
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Université de Ngaoundéré

Faculté des Sciences


Département de Mathématiques et Informatique

CORRIGE DU CONTROLE CONTINU


Introduction aux Bases de Données
L2IN, 06/01/2021, durée : 2h

Exercice 1 : Questions générales (5 pts)


1. Définir : Attribut, SGBDR, Projection, Base de Données (2 pts)
Attribut : propriété d’une entité caractérisée par un nom
SGBDR : Système de Gestion de Bases de Données Relationnelle ; Logiciel permettant la gestion des
bases de données relationnelles
Projection : opération de l’algèbre relationnelle qui renvoie les attributs passés en paramètre
Base de Données : collection structurée de données
2. Quelle est la différence entre une base de données hiérarchique et une base de données relationnelle ?
(1pt)
Dans une base de données hiérarchique les informations sont structurées sous forme hiérarchique
partant de la racine. Dans une base de données relationnelle les informations sont structurées sous
forme de tables appelées relations.
3. Donner la syntaxe de la commande SQL qui permet de mettre à jour des données dans une table d’une
base de données (1 pt)
UPDATE nom_de_la_table SET nom_attribut = ‘nouvelle_valeur’ WHERE condition ;
4. Donner la syntaxe de la commande SQL qui permet d’ajouter un attribut dans une table d’une base de
données. (1 pt)
ALTER TABLE nom_de_la_table ADD nom_attribut TYPE ;

Exercice 2 : Gestion des locations (8 pts)


On donne une instance de la base de données « Immeuble » correspondante à la gestion des locations des
appartements dans des immeubles. Les clés primaires sont en gras et soulignées et les clés étrangères sont en
italique et précédées du symbole dièse (#)
Immeuble
nomImm adresse nbEtages annéeConstruction nomGérant
Koudalou 3 Rue Blanche 15 2008 Doug
Barabas 2 Allee Nikos 2 2011 Ross
Appart
Personne
#nomImm noApp superficie étage
nom âge profession
Koudalou k1 150 14
Ross 51 Informaticien
Koudalou k34 50 15
Alice 34 Cadre
Koudalou k51 200 2
Rachel 23 Stagiaire
Koudalou k52 50 5
William 52 Acteur
Barabas b1 250 1
Doug 34 Rentier
Barabas b2 250 2

Occupant
#nomImm #noApp #nomOcc anneeArrivee
Koudalou k1 Rachel 2012
Barabas b1 Doug 2014
Barabas b2 Ross 2014
Koudalou k51 William 2016
Koudalou k34 Alice 2013
R.M. MBALA Bonne Chance
Q1. Donner un schéma relationnel de cette base de données. (2 pts)
Immeuble (nomImm, adresse, nbEtages, annéeConstruction, nomGérant)
Appart (nomImm, noAppart, superficie, étage)
Personne (nom, age, profession)
Occupant (nomImm, noApp, nomOcc, annéeArrivée)
Q2. Donner un schéma E/A correspondant à cette base de données, en utilisant le formalisme UML. (2 pts)

N.B : Ce schéma est obtenu par simple interprétation du modèle relationnel sans tenir compte de la
normalisation. Les attributs n’ont pas été ajouté.
Q3. Donner la commande SQL qui permet créer la table Appart dans le SGBD en précisant l’attribut sur lequel
l’on peut ajouter l’option ON DELETE CASCADE. (2 pts)
CREATE TABLE Appart (nomImm : Varchar (50) NOT NULL,
noAppart: Varchar (10) NOT NULL,
superficie : Float ,
étage : Int (3),
PRIMARY KEY (noAppart),
FOREIGN KEY (nomImm) REFERENCES Immeuble ON DELETE CASCADE);
Q4. Exprimer en SQL les requêtes suivantes : (2 pts)
a. Nom des immeubles ayant strictement plus de 10 étages.
SELECT nomImm
FROM Immeuble
WHERE nbEtages > 10;
b. Dans quel immeuble habite un acteur ?
SELECT nomImm
FROM Occupant, Personne
WHERE nomOcc = nom
AND profession = ‘Acteur’;
c. Age et profession des occupants de l’immeuble géré par Ross ?
SELECT Age, profession
FROM Personne, Occupant, Immeuble
WHERE nom = nomOcc
AND [Link] = [Link]
AND nomGerant = ‘ROSS’ ;
d. 𝜋𝑛𝑜𝑚𝐼𝑚𝑚 (𝐼𝑚𝑚𝑒𝑢𝑏𝑙𝑒) − 𝜋𝑛𝑜𝑚𝐼𝑚𝑚 (𝜎𝑛𝑜𝑚𝑂𝑐𝑐=′ 𝐷𝑜𝑢𝑔′ (𝑂𝑐𝑐𝑢𝑝𝑎𝑛𝑡))
SELECT nomImm FROM Immeuble
EXCEPT
SELECT nomImm FROM Occupant WHERE nomOcc = ‘Doug’;
R.M. MBALA Bonne Chance
Exercice 3 : Gestion des réservations (7pts)
On donne le schéma suivant correspondant à l’application de gestion des réservations des chambres dans des
hôtels. Les clés primaires sont soulignées et les clés étrangères ne sont pas précisées.

Client (numero, nom, prenom)


Hotel (nom, adresse)
Chambre (numero, prix, nomhotel)
Reservation (numero, date, numclient, nomhotel, numchambre)

1. Répondre par vrai ou faux (2,5 pts)


a. Il est possible d’avoir des clients homonymes ; Vrai
b. Un client peut réserver plusieurs chambres à une date donnée ; Vrai
c. Il est possible de réserver une chambre sur plusieurs jours ; Vrai
d. Il est possible de savoir si une chambre est libre à une date donnée ; Vrai
e. Il est possible de réserver plusieurs fois une chambre à une date donnée. Vrai
2. Proposer un modèle E/A correspondant à ce schéma en utilisant le formalisme UML. (2,5 pts)

N.B : Ce schéma est obtenu par simple interprétation du modèle relationnel sans tenir compte de la
normalisation. Les attributs n’ont pas été ajouté
3. Exprimer en algèbre relationnelle puis en SQL les requêtes suivantes : (2 pts)
a. Trouver les clients ayant réservé plusieurs chambres dans le même hôtel le 15 avril 2020 ;
SELECT DISTINCT numclient
FROM Reservation
WHERE date = ’15 avril 2020’
GROUP BY numclient, nomhotel
HAVING COUNT (*) > 1 ;
b. Donner les chambres disponibles le 15 avril 2020 à l’hôtel ‘’Pakem’’.
SELECT numero
FROM Chambre
WHERE nomHotel = ‘’Pakem’’
AND numero NOT IN (SELECT numchambre
FROM Reservation
WHERE nomHotel = ‘’Pakem”
AND date = ’15 avril 2020’);

R.M. MBALA Bonne Chance

Vous aimerez peut-être aussi