Vous êtes sur la page 1sur 6

Basesdedonnes

Corrigsdesexercices
OCinformatique

2011, Manuel Fragnire, Lyce Denis-de-Rougemont.

OCinformatique

1.
SGBD : Modlisation.
Pour organiser un karaok, une association veut crer une base de donnes qui
lui permettra denregistrer le contenu de tous les DVD dont elle dispose. Les
organisateurs veulent ensuite pouvoir diter la liste de tous les chanteurs, de tous
les titres et le sommaire de chaque DVD.
a) Dessinez le modle entit-association correspondant.
b) A partir du diagramme entit-association que vous aurez construit, crivez
les requtes SQL permettant de crer cette base de donnes.
Rponses :
a) Modle E-A de la base de donnes :

DVD

comporte

CHANSONS
1

chante

m
CHANTEURS
b) Requtes SQL permettant de crer la base de donnes :
create table DVD (
idDVD int auto_increment primary key,
titre varchar(80)
);
create table Chansons (
idChanson int auto_increment primary key,
titre varchar(80),
idChanteur int
);
create table Chanteurs (
idChanteur int auto_increment primary key,
nom varchar(80)
);
Page2

OCinformatique

create table Comporte (


idDVD int,
idChanson int
);
Pour tester la base de donnes cres, voici en bonus quelques donnes :
insert into DVD values(null, "A la poursuite d'Octobre Rouge");
insert into DVD values(null, "Thriller");
insert into DVD values(null, "Casino Royale");
insert into Chanteurs values(null,'Basil Poledouris');
insert into Chanteurs values(null,'Michael Jackson');
insert into Chanteurs values(null,'David Arnold');
insert into Chansons values(null,'Hymn To Red October',1);
insert into Chansons values(null,'Nuclear Scam',1);
insert into Chansons values(null,'Thriller',2);
insert into Chansons values(null,"The Name's Bond... James Bond",3);
insert into Chansons values(null,'African Rundown',3);
insert into Chansons values(null,'The End Of An Aston Martin',3);
insert into Comporte values(1,1);
insert into Comporte values(1,2);
insert into Comporte values(2,3);
insert into Comporte values(3,4);
insert into Comporte values(3,5);
insert into Comporte values(3,6);
2.
SGBD : Modlisation.
Une entreprise aimerait mettre en place un systme informatique pour grer
efficacement lun de ses secteurs dactivit : une chane dhtels situs dans
diverses grandes villes. Elle compte sur vous, analyste-concepteur de bases de
donnes pour traduire les rgles de gestion suivantes dans un modle entitassociation que vous transformerez ensuite en un schma de base de donnes
relationnelle.
-

Chaque HOTEL a plusieurs employs, dont un-e directeur-trice unique.

Chaque EMPLOYE est affect un seul htel.

Chaque HOTEL possde plusieurs CHAMBRES et une chambre appartient


toujours un htel.

Les htes noffrent que deux catgories de chambres mutuellement


exclusives, savoir :
o SIMPLE : Attributs spcifique : le type-de-salle-de-bain (valeurs
possibles : douche ou bain ).

Page3

OCinformatique

o DOUBLE : Attributs spcifique : le type-de-lit (valeurs possibles :


double ou jumeau ).
Les attributs communs aux deux catgories sont : le numro et la
description de la chambre.
-

Chaque employ peut (ou non) tre appel effectuer des services
(nettoyage, inspection du mini bar, rparation, ...) dans les chambres et
chaque chambre est servie de nombreuses fois durant lanne. Les
attributs spcifiques pour chaque service sont le type, la date et un
commentaire.

Sur une anne, chaque chambre est rserve par au moins un CLIENT
enregistr dans la base de donnes. Par contre, un client peut soit ne rien
rserver, soit rserver une ou plusieurs chambres. De plus, chaque
rservation doit offrir les informations supplmentaires suivantes : la datede-rservation, la date-d-arrive, la dure et le type-de-sjour (valeurs
possibles : basic , demi-pension , pension complte ).

Le modle entit-association est reprsent de manire incomplte par un


diagramme dans la figure de la page suivante.
a) Compltez ce diagramme entit-association. Noubliez pas dy indiquer,
conformment au formalisme tudi durant le cours :
o Le type (1, c, m ou mc) de chaque association,
o Les proprits de chaque structure EST UN (IS A) ou MEMBRE DE
(PART OF) ventuellement prsente dans le diagramme.
b) A partir du diagramme entit-association que vous venez de construire,
compltez le schma de base de donnes relationnelle de la page suivante
en y ajoutant un nombre minimum de tables selon les rgles de passage du
diagramme entit-association au schma relationnel.
-

Chaque attribut dfini comme cl primaire doit tre soulign et en gras.

Pour chaque cl trangre, il faut dclarer la contrainte dintgrit


rfrentielle sous la forme :
FOREIGN KEY ( nom_cl_trangre ) REFERENCES nom_table ( nom_cl_primaire )

Page4

OCinformatique

Rponses :
a) Diagramme entit-association

Direction
c

EMPLOYE
mc

HOTEL

CLIENT

mc

Affectation
Appartenance

Rservation

1
m

Service

CHAMBRE

disjoint complet

1
SIMPLE

DOUBLE

Page5

OCinformatique

b) Schma de base de donnes relationnelle ( complter)


En surlign jaune les rponses
1. HOTEL ( hotelID, nomHotel, adresseHotel, descriptionHotel, directeurID )
FOREIGN KEY ( directeurID ) REFERENCES EMPLOYE ( employeID )
2. EMPLOYE ( employeID, nomEmploye, fonction, hotelID )
FOREIGN KEY ( hotelID ) REFERENCES HOTEL (hotelID)
3. CLIENT ( clientID, nomClient, adresseClient, telephoneClient, emailClient )
Ajoutez la table CHAMBRE les attributs manquants et dclarez la contrainte
dintgrit rfrentielle pour chaque cl trangre ventuellement prsente :
4. CHAMBRE ( chambreID, numChambre, descriptionChambre,
categorieChambre, hotelID )
FOREIGN KEY (hotelID)
REFERENCES HOTEL(hotelID)

Ajoutez ci-dessous les tables manquantes en respectant les conventions de


notation dfinies au dbut de cette page pour mettre en vidence les cls
primaires et les contraintes dintgrit rfrentielle :
5. SERVICE ( employeID, chambreID, typeService, dateService, commentaire )
FOREIGN KEY (employeID) REFERENCES EMPLOYE(employeID)
FOREIGN KEY (chambreID) REFERENCES CHAMBRE(chambreID)
6. RESERVATION ( chambreID, clientID, dateReservation, dateArrivee, duree,
typeSejour )
FOREIGN KEY (chambreID) REFERENCES CHAMBRE(chambreID)
FOREIGN KEY (clientID)
REFERENCES CLIENT(clientID)
7. SIMPLE ( csimpleID, typeBain )
FOREIGN KEY (csimpleID) REFERENCES CHAMBRE(chambreID)
8. DOUBLE ( csoubleID, typeLit )
FOREIGN KEY (cdoubleID) REFERENCES CHAMBRE(chambreID)

Page6