De oo coo
l pea rae
eer
| EKAMEN DU BACGALAUREAT —- SESSION DE JUIN 2011
| SECTION: Sciences de I'informatique CORRIGE principale
i EPREUVE:
se de données
Exercice 1 : (3 points) (0,25 x 12)
Valider chacune de ces propositions, en mettant dans la case correspondante la lettre V si elle est juste
ou la lettre F dans le cas contraire.
1) Le Langage de Définition des Données (LDD) permet
F _| de modifier les données d'une base de données.
V_| de créer la structure d'une table.
V_| dajouter des contraintes d'intégrité a une table.
V_| de supprimer une table
2) Le Langage de Manipulation des Données (LMD) permet :
V_| de supprimer des données d'une table
V_| de rechercher des données dans une base de données,
F _| de modifier la structure d'une table.
V_| diinsérer des données dans une table.
L
3) Soit la description de la table Eleve décrite par la requéte SQL suivante :
CREATE TABLE Eleve (
Numero Int(4) PRIMARY KEY,
Nom VARCHAR(20) NOT NULL,
Age ——Int(2));
On voudrait créer !'éléve numéro 1000 dans la table Eleve, pour cela, on peut écrire la ou les
requéte(s) suivante(s) :
| F | INSERT INTO Eleve VALUES (1000, TRIKI Rayen’, 18) ;
F | INSERT INTO Eleve VALUES (Null, TRIKI Rayen’, 18) ;
V_| INSERT INTO Eleve (Numero, Nom) VALUES (1000, TRIKI Rayen)) ,
F | INSERT INTO Eleve (Numero, Age) VALUES (1000, 18) ;
NB: on accepte uniquement (V ; F ; vrai ; faux ; O ; N; oui; non ; True ; False)
1/6Exercice 2 : (3 points) (0,75 x 4)
Soit la base de données intitulée « Gestion_Magasin » implémentée et décrite par les requétes SQL
suivantes
CREATE TABLE Article ( | CREATE TABLE Rayon (
NumArt INT (3) PRIMARY KEY, CodeRay VARCHAR (3),
DesArt VARCHAR (20), DesRay VARCHAR (15) NOT NULL,
PrixArt DECIMAL (8,3), EtageRay INT (1),
‘TvaArt DECIMAL (3,2), PRIMARY KEY (CodeRay));
CodeRay VARCHAR (3)) ; |
Ci-dessous, on présente le contenu des deux tables « Article » et « Rayon » de cette base de données.
0.29 002 001 Informatique
100. Chemise 1
200 Tomate 0.18 004 {002 Vétement 2 |
400 Javel 0.18 | 006 003 Hygiéne 3
600. Thon 0.18 004 004 Alimentaire 3
900 Ordinateur | 1560.500 | 0.10 001
N.B. : La colonne « CodeRay » de la table « Article » est une clé étrangére relative & la clé primaire
« CodeRay » de la table « Rayon »
Question
En observant le contenu des tables « Article » et « Rayon », il apparait deux insuffisances. Compléter
le tableau ci-dessous en indiquant ces anomalies et proposer des requétes pour les corriger :
ALTER TABLE Article ADD CONSTRAINT
CHECK (PrixArt > 0);
Le prix de l'article numéro “200” est une
valeur négative (-1.550)
Ou bien anomalie dans la colonne PrixArt
Pour l'article numéro “400”, le rayon “006” ALTER TABLE Article ADD CONSTRAINT
n’existe pas dans la table « Rayon » CodeRay REFERENCES Rayon (CodeRay);
NB : 0,25 sila réponse conceme a ligne uniquement
0,5 : update
-0,25 par erreur
Loubli de ; ne sera pas penalise
2/6Exercice 3: (7 points) (1x 7)
Soit la base de données intitulée « Gestion_Publinet » permettant de gérer les connexions de différents
internautes d'un centre public d'internet. Elle est décrite par la représentation textuelle simplifiée
suivante :
POSTE (NumPoste, IPMachine, CodeMarque#)
MARQUE (CodeMarque, NomMarque)
INTERNAUTE (NumCIN, Nom, Genre, Age)
SESSION (NumPoste#, NumCIN#, DateSes, HeureDeb, NbrHeures)
N.B : Un internaute peut effectuer plusieurs sessions dans la méme journée.
Description des colonnes des tal
| Numéro du poste (entier de deux Genre de linternaute.
| chifires). | Genre (‘M’ : Masculin, ‘F’ : Féminin)
Une chaiine de caractéres indiquant | | ‘Age de Vinternaute exprimé en
adresse IP de la machine. nombre d'années.
Date de la session au format
CodeMarque | Code dela marque de la machine. | | DateSes | «) mayaaaa?
NumPoste
| IPMachine
NomMarque | Nom de la marque de la machine. HeureDed | Heure de début de la session.
[i niianiare cee Salto oriaanens | Nombre d’heures de connexion
NumCIN ‘f NbrHeures | avec deux chiffres aprés la
| nationale de I'internaute. irate
Nom Nom et prénom de Finternaute.
1
41) Pour satisfaire la demande croissante des clients, on a installé un nouveau poste ayant les propriétés
suivantes :
DE10
Ecrire une requéte SQL permettant d’ajouter ces informations a la table appropriée.
INSERT INTO Poste VALUES (15, ‘172.152.45.1’, ‘DE10’) ;
2) Etant donné la description de la colonne Genre (‘M’ ou ‘F’), écrire une requéte SQL permettant
d'ajouter la contrainte ayant comme nom ValidGenre pour vérifier la validité de ce champ.
ALTER TABLE Internaute ADD CONSTRAINT ValidGenre CHECK (Genre ="M’ OR Genre="t
Ou bien
ALTER TABLE Internaute ADD CONSTRAINT ValidGenre CHECK (Genre i
jon:
3) On se propose d’ajouter, dans cette base de données, la catégorie de |'internaute (exemple : éléve,
étudiant, enseignant, etc..). Ecrire une requéte SQL permettant d’ajouter cette colonne dans la table
appropriée.
ALTER TABLE Internaute
ADD COLUMN Profession VARCHAR(20) ;
3/64) Ecrire les requétes SQL permettant
a.c'afficher la liste des internautes (N°CIN, Nom et Age) dont |'age est compris entre 18 et 30 ans
triée selon lordre croissant des ages. Au moment de Taffichage, les pntétes des colonnes
doivent étre respectivement 'N® CIN’, 'Nom & Prénom' et ‘Age’
SELECT NumCIN ‘N°CIN’, Nom ‘Nom & Prénom’, Age ‘Age’
FROM Internaute
WHERE Age BETWEEN 18 AND 30
ORDER BY Age;
‘alias ‘Age’ n'est pas obligatoire
b.d'afficher le nombre diinternautes ayant effectué des connexions dans la journée du '30/05/2011'
SELECT COUNT (DINSTINCT (NumCIN))
FROM Session
WHERE DateSes = '30/05/2011’;
¢.de modifier adresse IP du poste numéro 10 par 'adresse suivante : '172.152.45.7'.
UPDATE Poste
SET IPMachine = 172,152.45.7°
WHERE NumPoste = 10;
d.d’afficher le montant total encaissé pendant la journée du ‘01/06/2011' sachant que le prix d'une
heure de connexion est fixé 41,5 DT.
SELECT SUM(1,5 * NbrHeures)
FROM Session
WHERE DateSes = 01/06/2011’;
NB : L‘oubli de ; ne sera pas pénalisé
L'éléve ne sera pénalisé qu'une seule fois pour ‘oubli de ‘apostrophe
- 0,25 par erreur
On accepte tout format de date correct
4/6Exercice 4 : (7 points)
On se propose d'implémenter une base de données pour gérer un site web dynamique permettant aux
différents internautes inscrits, de télécharger des fichiers.
Chaque utlisateur de ce site est caractérisé par un nom, un prénom, une date de naissance et une
adresse email est identiié par un login unique et posséde un mot de passe pour se connecter au site
afin de télécharger un ou plusieurs fichiers.
Un fichigr est identifé par un code unique, portant un nom, une taille, un lien hypermédia et une date
de création. Chaque fichier & télécharger appartient & une catégorie caractérisée par un code unique et
tune désignation (fim, logiciel, musique, document,...), et peut étre stocké dans plusieurs serveurs de
fichiers.
Chaque serveur posséde un matricule unique, un nom (Megaupload, RapidShar, Hottie, ), une
adresse web (www.megaupload.com, www.rapidshar.com, ...) et une localisation (le nom du pays oui se
trouve le serveur).
Travail a faire
‘fin de créer la structure de ceite base de données, on se propose d'établir :
1) Liste des colonnes :
15 Utilisateur
NomUt ‘Nom de l'utilisateur Texte
PrenomUt Prénom de l'utilisateur Texte 15 Utilisateur |
DatNaisUt Date de naissance de l'utilisateur Date Utilisateur
EmailUt ‘Adresse Email de l'utilisateur Texte 20 Utilisateur
LoginUt Login de Tutilisateur Texte 10 Utilisateur
‘MpUt ‘Mot de passe de Vutilisateur Texte 10 Utilisateur
CodeFich| Code du fichier Texte 5 Fichier
NomFich Nom du fichier Texte [20 Fichier
TailleFich Taille du fichier Numérique 8 Fichier
LienFich Lien hypermédia du fichier Texte 30 Fichier
DateFich Date de création du fichier | Date Fichier
| CodeCat Code de la catégorie du fichier Texte 5 Catégorie |
DesignCat Désignation de la catégorie du fichier | Texte 20 Catégorie
MatServ Mairicule du serveur de fichiers Texte 5 ‘Serveur
NomServ Nom du serveur de fichiers Texte 20 ‘Serveur
UriServ ‘Adresse URL du serveur de fichiers | Texte 130 ‘Serveur
LocalServ Localisation du serveur de fichiers Texte 20 ‘Serveur
5/62) Liste des tables
Utilisateur | Regroupe l'ensemble des utilisateurs du site
Fichier Regroupe l'ensemble des fichiers a télécharger Fichier
Categorie | Regroupe l'ensemble des catégories des fichiers Categorie
Serveur | Regroupe l'ensemble des serveurs de fichiers ‘Serveur
3) Liens entre les tables
Categorie ichier CodeCat ‘CodeCat
Utilisateur | Telecharger LoginUt LoginUt
Fichier Telecharger CodeFich | CodeFich
‘Serveur Telecharger MatServ MatServ
Fichier ‘Stocker CodeFich —_| CodeFich
| Serveur Stocker MatServ MatServ
4) Représentation textuelle :
Utilisateur (LoginUt, MpUt, NomUt, PrenomUt, DatNaisUt, EmailUt)
Ficher (CodeFich,NomFich, TailleFich, LienFich, DateFich, CodeCat# )
Categorie (CodeCat, DesignCat)
Telecharger (LoginUt#, CodeFich#, MatServ#)
Serveur (MatServ, NomServ, UrlSery, LocalServ)
Stocker (MatServ#, CodeFich#)
5 Représentation
Liste des colonnes | Liste des tables Liens eta
0,75x4 0,25 x4 | 025x6 0,25x6 |
NB : -0,25 par erreur par sujet
Léleve ne sera pas pénalisé deux fois pour la méme erreur.
On accepte Telecharger (LoginUt#t, CodeFich#, MatServ#, dateTel , HeureTel)
Telecharger (NumTem,LoginUt#, CodeFich# MatServ#)
6/6