Académique Documents
Professionnel Documents
Culture Documents
données
Rappel de cours
La gestion des accès une base de données étant multiutilisateur. Le SGBD gère l’accès
concurrents simultané à la BD.
le SGBD permet de gérer les droits d’accès à la base : droit de
La confidentialité
consultation, de modification, de mise à jour…..
La sécurité de le SGBD fournis des mécanismes afin d’assurer la sécurité et la reprise
fonctionnement après panne.
Notion de contrainte d’intégrité :
Une contrainte d’intégrité est une règle appliquée à une colonne ou à une table et qui doit être
toujours vérifiée.
Les contraintes de Elles permettent de fixer le caractère obligatoire ou pas d’une colonne et
domaines les règles de validité des valeurs qui peuvent être prises par cette colonne.
Les contraintes Elles permettent de s’assurer que chaque table à une clé primaire.
d’intégrité de tables
Elles permettent de s’assurer que les valeurs introduites dans une
Les contraintes colonne figurent dans une autre colonne en tant que clé primaire. La
d’intégrité référentielles suppression d’un enregistrement d’une table mère A utilisé par une table
fille B est interdite.
-2-
Langage SQL
-3-
Langage SQL
Exemple :
Si dans cette table on souhaite récupérer la liste des clients qui ont commandé plus de
40DT, toutes commandes confondues alors il est possible d’utiliser la requête suivante :
SELECT client, SUM(tarif) FROM achat GROUP BY client HAVING SUM(tarif) >
40 ;
Langage de définition des données LDD
CREATE TABLE nom_table
(définition_Colonne | définition_contrainte, …)
La clause définition colonne permet de préciser les caractéristiques d’une
colonne :
Nom_colonne type [[NOT] NULL][DEFAULT valeur][contrainte_colonne]
Type :
INT(n) numérique à n chiffres
DECIMAL (n,m) numérique à n chiffres dont m décimales
VARCHAR (n) chaine de caractères dont la taille maximale est n
DATE date ou heure
NULL : colonne n’est pas obligatoire
NOTNULL : colonne obligatoire
DEFAULT : permet d’attribuer une valeur par défaut à une colonne
L’option contrainte_colonne permet de préciser une contrainte d’intégrité
relative à une colonne.
PRIMARY KEY
REFERENCES nom_table [(nom_colonne)][ON DELETE CASCADE]
Création CHECK (condition)
d’une table PRIMARYKEY : spécifier que la colonne est une clé primaire.
REFERENCES : spécifier que la colonne est une clé étrangère.
CHECK : associer une condition qui doit être vérifiée pour chaque valeur
insérée.
Exemple : Contrainte de clé étrangère
-4-
Langage SQL
[ADDCONSTRAINT définition_contrainte] : permet d’ajouter une contrainte
[MODIFY définition_colonne] : permet de modifier les caractéristiques d’une
colonne
[DROPCOLUMN nom_colonne] : permet de supprimer une colonne
[DROPCONSTRAINT nom_contrainte] : permet de supprimer une contrainte.
[ENABLE|DISABLE nom_contrainte] : permet d’activer ou désactiver une
contrainte.
Langage de contrôle des données LCD
CREATE USER nom_utilisateur IDENFIED BY mot_de_passe ;
Création d’un Exemple :
CREATE USER nom_utilisateur IDENFIED BY mot_de_passe ;
utilisateur Créer l’utilisateur user1 avec le mot de passe ‘’123456’’.
CREATE USER user1 IDENFIED BY ‘’123456’’;
GRANT droit1, droit2, …, droitn
TO utilisateur1, utilisateur2, …, utilisateurp
[WITH ADMIN OPTION]
Il est à noter que toute table n'est initialement accessible que par l'utilisateur qui
l'a créée.
On peut utiliser ALL pour designer tous les droits et PUBLIC pour designer tous
les utilisateurs. L'option WITH ADMIN OPTION autorise le nouvel utilisateur
à accorder les droits reçus a d'autres utilisateurs
Exemple :
Donner tous les droit à l’utilisateur ‘’user1’’
Attribution GRANT ALL TO ‘’user1’’ ;
des droits Donner le droit de sélection et de à tous les utilisateurs :
GRANT SELECT TOPUBLIC ;
Des droits sur des objets de la base de données dits droits objet : Ce sont des droits
permettant à leurs détenteurs d'effectuer des opérations sur des objets la base de
données, tel que des tables, des vues.
La commande SQL permettant d'attribuer un droit objet a un utilisateur est la
suivante :
GRANT droit1, droit2, …, droitn
ON objet
TO utilisateur1, utilisateur2, …, utilisateurp
[WITH GRANT OPTION]
La commande qui permet de supprimer un ou plusieurs droits sur un objet est :
REVOKE droit1, droit2, …, droitn
[ON objet]
Retrait des
FROM utilisateur1, utilisateur2, …,utilisateurn
droits Cette commande permet de retirer des droits système ou objet. La clause ON
objet est utilisée uniquement en cas de retrait de droit objet.
Avec REVOKE aussi on peut utiliser ALL pour designer tous les droits et
PUBLIC pour designer tous les utilisateurs
-5-
Exercices
QCM
-7-
QCM
-8-
QCM
Exercice 5 :
1) Le Langage de Définition des Données (LDD) permet :
de modifier les données d’une base de données. C’est le rôle du LMD
de créer la structure d’une table.
d’ajouter des contraintes d’intégrité à une table.
de supprimer une table.
2) Le Langage de Manipulation des Données (LMD) permet :
de supprimer des données d’une table.
de rechercher des données dans une base de données.
de modifier la structure d’une table. C’est le rôle du LDD
d'insérer des données dans une table.
Exercice 6 :
1) Pour mettre à jour une base de données, on peut utiliser :
un formulaire.
un état.
une requête SQL.
2) En langage SQL, la clause ORDER BY est utilisée pour :
trier les données d’une table dans un ordre donné.
ordonner des lignes sélectionnées d’une table.
ordonner des colonnes sélectionnées d’une table.
3) Une colonne clé étrangère :
peut contenir des doublons
peut-être une partie d’une clé primaire d’une autre table.
peut contenir des valeurs "NULL".
4. En langage SQL, la clause DISTINCT appliquée à une colonne, permet
d’éliminer les doublons dans les résultats d’une requête de sélection.
de supprimer des données d’une table.
de rechercher les valeurs différentes dans une colonne.
Exercice 7 :
1) En langage SQL, la clause "ON DELETE CASCADE" permet :
de supprimer les doublons d’une table.
d’appliquer des contraintes d’intégrité référentielle de suppression en cascade.
de supprimer les lignes dépendantes dans la table "Fille" lorsqu’une ligne de la table "Mère"
est supprimée.
2) En langage SQL, la clause DEFAULT :
peut être appliquée à une colonne définie comme clé primaire.
permet d’attribuer une valeur par défaut comme valeur initiale à une colonne.
est appliquée lorsque la colonne est obligatoire.
3) En langage SQL, la clause CHECK :
permet de rechercher une valeur donnée dans la colonne.
est une contrainte qui doit être vérifiée par toutes les valeurs d’une colonne.
est optionnelle dans la description d’une table.
-9-
QCM
4) La confidentialité est l’une des piliers de la sécurisation des bases de données, elle se
base sur :
la définition d’un profil d’accès à la base de données pour chaque utilisateur.
la définition des droits et des privilèges de chaque utilisateur.
la gestion des mécanismes de sauvegarde et de restauration des données.
Exercice 8 :
1) Quelle clause SQL permet d’effectuer un tri sur les données sélectionnées
WHERE
ORDER BY
GROUP BY
2) A quoi sert une clé primaire ?
Rendre un champ non modifiable
Identifier chaque enregistrement de manière unique
Verrouiller la base de données
3) Dans une requête SQL, quel est le sens de l’expression WHERE Nom LIKE 'Be_' ?
Tous les noms qui commencent par Be
Tous les noms qui ne commencent pas par Be
Tous les noms de 3 caractères qui commencent par Be
4) La fonction COUNT permet-elle de réaliser le total des valeurs d’un champ numérique
?
OUI
NON
Exercice 9 :
1) Dans une requête SQL CHECK
permet de rechercher un attribut ayant une valeur donnée.
est une contrainte associée à une condition qui doit être vérifiée par toutes les valeurs de
l’attribut.
permet de rechercher un attribut clé ayant une valeur donnée.
2) Parmi les requêtes SQL suivantes, quelles sont celles qui donnent le nombre de tuples
dans la relation R (AC, A2, A3) ?
SELECT COUNT (*) FROM R ;
SELECT SUM (*) FROM R ;
SELECT COUNT (AC) FROM R ;
3) Parmi les requêtes SQL suivantes, quelles sont celles qui donnent la somme des
valeurs de l’attribut A2 de la relation R (AC, A2, A3) ?
SELECT AC , SOMME (*) FROM R GROUP BY AC ;
SELECT SUM (*) FROM R ;
SELECT SUM (A2) FROM R ;
4) La requête suivante appliquée sur la relation R (AC, A2, A3) :
SELECT COUNT (*) FROM R GROUB BY AC;
donne le nombre de tuples
donne la somme des tuples
ne donne rien
- 10 -
QCM
Exercice 10 :
1) Si on applique la requête suivante sur la table Ligne_Cmd (NCmd, NP, Qte) avec les
données ci-dessous quel sera le résultat :
SELECT NCmd, COUNT (*) FROM Ligne_Cmd WHERE Qte > 100 GROUB BY NCmd ;
Ligne_Cmd
NCmd NP Qte NCmd NP Qte
C001 P001 250 C004 P002 100
C001 P004 300 C004 P004 150
C001 P006 100 C004 P005 70
C002 P002 200 C004 P008 90
C002 P007 550 C005 P001 650
C003 P001 50 C005 P002 100
NCmd COUNT
C001 3
C002 2
C005 2
NCmd COUNT
C002 2
C005 1
NCmd COUNT
C001 2
C002 2
C004 1
C005 1
2) SELECT NCmd, COUNT (*) FROM Ligne_Cmd WHERE Qte > 100 GROUB BY
NCmd HAVING MAX(Qte)>300;
NCmd COUNT
C001 3
C002 2
C005 2
NCmd COUNT
C002 2
C005 1
NCmd COUNT
C001 2
C002 2
C004 1
C005 1
3) Si on applique la requête suivante sur la relation avec les données de la question
précédente, quel sera le résultat :
SELECT COUNT (*) FROM Ligne_Cmd WHERE Qte > 100;
COUNT 12
COUNT 9
COUNT 6
- 11 -
QCM
Exercice 11 :
1) Placer chaque commande de la liste suivante dans la colonne correspondante au
langage auquel elle appartient :
ALTER, GRANT, SELECT, REVOKE, CREATE, DROP, INSERT, DELETE, UPDATE
Langage de Définition de Langage de Manipulation Langage de Contrôle de
Données(LDD) de Données(LMD) Données(LCD)
- 12 -
QCM
Exercice 13 :
Le propriétaire d’une grande pharmacie souhaite installer une application développée autour
d’une base de données. Cette application permet de gérer les ventes et les stocks des
médicaments, des produits cosmétiques et parapharmaceutiques. Afin d’assurer une bonne
exploitation et sécurisation des données entre les différents agents de la pharmacie, le
propriétaire vous demande de l’aider à la mettre en place.
1. Après avoir consulté les applications disponibles sur le marché, le propriétaire a remarqué
que quelques-unes utilisent le mode « Monoposte » et d’autres utilisent le mode «
Client/Serveur ».
a) Quel mode choisissez-vous ? …………………….
b) Définissez ce mode :………………………………………………………….
2. Une fois l’application est installée avec succès et lors de la démonstration de ses
différentes fonctionnalités, on a constaté les deux interfaces suivantes. Donner le nom et la
définition de chaque interface.
- 13 -
QCM
Interface1 :
Nom : …………..
Définition :………………………………………………………………………………
…………………………………………………………………
Interface 2 :
Nom : …………..
Définition :………………………………………………………………………………
…………………………………………………………………
3. Après avoir implémenté la base de données, le propriétaire de la pharmacie souhaite
étudier les risques possibles pour garantir sa sécurité.
Compléter le tableau suivant par le mécanisme de sécurité approprié pour chaque risque
prévu
Exercice 14 :
Pour chacune des propositions citées dans le tableau ci-dessous, compléter la colonne
« validité » par la lettre V si la proposition est correcte ou la lettre F si elle est fausse. En cas
où la proposition est fausse, apporter une correction.
Proposition Validité Correction apportée
Une table peut comporter plusieurs …………………………………………
clés étrangères ……… …………………………………………
…………………………………………
L’authentification rend impossible le …………………………………………
déchiffrement d’une base de donnée ……… …………………………………………
…………………………………………
Le Langage de Définition de Données …………………………………………
(LDD) permet de manipuler le contenu ……… …………………………………………
d’une base de données …………………………………………
Le résultat d’une sélection est un sous- …………………………………………
ensemble de ligne d’une table ……… …………………………………………
…………………………………………
- 14 -
QCM
Exercice 15 :
Dans un contexte de base de données, utiliser les termes ci-dessous pour compléter la
première colonne du tableau en inscrivant devant chaque définition proposée le terme
correspondant.
Transaction, Pertinence, Disable, Contraintes, Attribut, Log, Enable, Enregistrement
Terme Définition
……………… Un fichier texte contenant l’historique des évènements relatif aux accès
à la base de données
……………… Les règles qu’un SGBD applique automatiquement pour garantir la
cohérence, la pertinence et la validité des données.
……………… Une propriété d’un sujet susceptible d’être enregistrée dans une base de
données
……………… Une option SQL permettant de désactiver une contrainte d’intégrité.
Exercice 16 :
Dans le contexte de base de données et pour chacune des propositions suivantes, mettre dans
la case correspondante la lettre V si la réponse est correcte ou la lettre F dans le cas contraire.
1- L’extraction d’un sous ensemble de colonnes d’une table correspond à une :
jointure
Projection
sélection
2- En SQL, pour automatiser la modification de la valeur d’une clé étrangère dans une
table fille à la suite de la modification de la valeur de la clé primaire de la table mère
correspondante, on ajoute la clause ON UODATE CASCADE à la définition de la :
Clé primaire dans la table mère
Clé étrangère dans la table fille
Clé primaire de la table fille
3- L’intégrité d’une base de données consiste à :
Garantir la cohérence des données
Définir un ensemble de règles (valeur, référence, unicité)
Définir les données d’une façon unique
En SQL, la clause GROUPE BY permet
De regrouper, selon un critère, des lignes d’une ou plusieurs tables
De regrouper, selon un critère, des colonnes d’une ou plusieurs tables
D’effectuer des calculs sur un groupe de résultats à l’aide des fonctions d’agrégat
- 15 -
Exercices SQL
Le langage LDD
Exercice 1 :
1 - Créer une table Personnes avec les champs suivants :
Champs Type
Réf Numérique
Nom Texte
Prenom Texte
DateNaiss Date
Genre texte
NB : Réf est la clé primaire.
2 - Ajouter un champ Ville de type texte à la table Personnes
3 - Supprimer le champ Prénom de la table Personnes
4- Supprimer la table Personnes
Exercice 2 :
On considère la représentation textuelle suivante :
Client (IdCli, NomCli, AdrCli, CPCli, VilleCli, TelCli, FaxCli)
Commandes (NumCom, DateCom, QteCom, MontantCom, #IdCli)
Questions :
1- Créer les deux tables correspondantes.
2- Supprimer le champ FaxCli de la table Client
3- Ajouter un champ TVACom à la table Commende. Il contiendra un nombre
correspondant au montant de la TVA pour cette commande.
4- Supprimer la table Client
Exercice 3 :
Soit la représentation textuelle suivante :
CLIENT (numC, nomC, pnomC, adC)
PRODUIT (numP, libelléP, pu, stock)
REPRESENTANT (numR, nomR, pnomR, tauxcom)
COMMANDE (numCom, dateCom, numC, numR)
LIGNE_COMMANDE (numCom, numP, qtecom)
Questions :
- Apporter les modifications suivantes à cette base de données
numP est une clef primaire dans la table PRODUIT
numC et numR dans la table COMMENDE sont deux clefs étrangères des tables
CLIENT et REPRESENTANT.
numCom et numP de la table LIGNE_COMMANDE sont deux clefs primaires
et étrangères faisons référence aux table COMMANDE et PRODUIT.
- 16 -
Exercices SQL
Exercice 4 :
Soit la liste des instructions en mode SQL suivante :
CREATE TABLE Segment nSalle varchar(7),
(indIP varchar(11), PRIMARY KEY (nPoste));
nomSegment varchar(20) NOT NULL,
etage INT(1), CREATE TABLE Logiciel
CONSTRAINT pk_Segment PRIMARY KEY (nLog varchar(5) PRIMARY KEY,
(indIP)); nomLog varchar(20) NOT NULL,
dateAch DATETIME,
CREATE TABLE Salle version varchar(7),
(nSalle varchar(7), typeLog varchar(9),
nomSalle varchar(20) NOT NULL, prix DECIMAL(6,2) CHECK (prix >= 0));
nbPoste INT(2),
indIP varchar(11), CREATE TABLE Installer
CONSTRAINT pk_salle PRIMARY KEY (nPoste varchar(7),
(nSalle)); nLog varchar(5),
numIns INT(5) AUTO_INCREMENT,
CREATE TABLE Poste dateIns DATE DEFAULT NOW(),
(nPoste varchar(7), delai DECIMAL(8,2),
nomPoste varchar(20) NOT NULL, PRIMARY KEY(numIns));
indIP varchar(11), CREATE TABLE Types
ad varchar(3) CHECK (ad BETWEEN '000' (typeLP varchar(9), nomType varchar(20),
AND '255'), PRIMARY KEY(typeLP));
typePoste varchar(9),
- 17 -
Exercices SQL
Exercice 5 :
Soit la base de données suivante :
Question :
- Créer les tables on mode SQL
- 18 -
Exercices SQL
Le langage LMD
Exercice 1 :
On considère la base de données relationnelle définie par les relations suivantes
CLIENT (numC, nomC, pnomC, adC)
PRODUIT (numP, libelléP, pu, stock)
REPRESENTANT (numR, nomR, pnomR, tauxcom)
COMMANDE (numCom, dateCom, #numC, #numR)
LIGNE_COMMANDE (#numCom, #numP, qtecom)
Formuler en SQL les requêtes suivantes
1- Quels sont les noms et prénoms des divers représentants ?
…………………………………………………………………………………
……………………………………………………………………………………
2- Quels sont les produits (numP, libelléP) qui sont en rupture de stock (la quantité en
stock est inférieure à 100) ?
……………………………………………………………………………………
……………………………………………………………………………………
3- Quels sont les représentants ayant vendu des produits au client de nom ‘’DRIDI’’ ?
……………………………………………………………………………………
……………………………………………………………………………………
4- Quel est le nombre de représentants ?
……………………………………………………………………………………
……………………………………………………………………………………
5- Quel est le montant de la commande numC = 112 ?
……………………………………………………………………………………
……………………………………………………………………………………
6- Quel est la quantité moyenne commandée de produit numP=15 par commande du
1/01/2012 au 31/12/2012 ?
……………………………………………………………………………………
……………………………………………………………………………………
7-Combien d’articles différents sont dans la commande numC = 112 ?
……………………………………………………………………………………
……………………………………………………………………………………
Exercice 2 :
Soit la base de données FABRICATION dont le schéma est donnée ci-dessous.
PIECE (NOP, DESIGNATION, COULEUR, POIDS)
SERVICE (NOS, INTITULE, LOCALISATION)
COMMANDE (NOP#, NOS#, QUANTITE)
Interrogation de la base de données en langage SQL :
1- Numéro des pièces, désignation qui ont une couleur rouge.
…………………………………………………………………………………………………………………
…………………………………………………………………………………
- 19 -
Exercices SQL
2- Numéro des pièces, désignation qui ont une couleur rouge et qui ont un poids > 100
Kg.
…………………………………………………………………………………………………………………
…………………………………………………………………………………
3- Numéro des services, intitulé qui se trouvent dans la ville de ‘’Tunis’’.
…………………………………………………………………………………………………………………
…………………………………………………………………………………
4- Numéro des services qui ont commandé la pièce P1 et la pièce P3.
…………………………………………………………………………………………………………………
…………………………………………………………………………………
5- Numéro des services qui ont commandé la pièce P3 avec une quantité inférieure à la
quantité moyenne commandée pour cette pièce.
…………………………………………………………………………………………………………………
…………………………………………………………………………………
6- Numéro des services qui se trouvent à ‘’Tunis’’ et qui ont commandé des pièces de
couleur ‘’bleu’’.
…………………………………………………………………………………………………………………
…………………………………………………………………………………
Exercice 3 :
On considère la base de données relationnelle définie par les relations suivantes :
Compagnie (Comp, Nrue, Rue, ville, nomComp)
Pilote (Brevet, Nom, nbVole, Comp#)
1) Ecrivez l’instruction d’insertion de l’occurrence suivante dans la table Pilote :
(‘PL-3’, ‘LASSOUED Salah’, 1000, ‘TA’)
…………………………………………………………………………………………………
…………………………………………………………………………………………………
2) Ecrivez l’instruction d’insertion de l’occurrence suivante dans la table Compagnie :
(‘TA’, 12,’LAC NORD’, ’Tunis’, ‘Tunis Aire’)
…………………………………………………………………………………………………
…………………………………………………………………………………………………
3) Ecrivez l’instruction qui permet de transformer à 50 le Nrue de l’occurrence ‘TA’ de
la table compagnie.
…………………………………………………………………………………………………
…………………………………………………………………………………………………
4) Nous considérons dans notre schéma la tables Avion
Avion (immat, typeavion, nbHvol, Comp#)
Immat typeAvion nbHVol Comp
F-Wtss Concorde 6570 AF
F-Glfs A320 3500 AF
F-Gtmp A340 3000 AF
T-Ansi A320 104500 TA
- 20 -
Exercices SQL
- 21 -
Sujets
- 22 -
Sujets
- 23 -
Sujets
Exercice 3 :
L’entreprise ENNAJDA se propose d’implémenter une base de données afin de gérer la
vente et la pose de capteurs en matière de protection contre les incendies, les intrusions et les
inondations. Toute activité commerciale de l’entreprise fait l’objet d’un contrat.
Pour chacun de ses clients, la société ENNAJDA retient les informations suivantes : un code,
une raison sociale et un numéro de téléphone.
On note également, qu’un client peut avoir plusieurs locaux. Pour cela, chaque contrat, est
identifié par un numéro, il est établi à une date précise, et il spécifie pour chaque local, le ou
les capteurs à installer. Chaque local, identifié par deux coordonnées GPS, est caractérisé par
un numéro de téléphone.
Pour chaque capteur, identifié par un code, on fixe un tarif et on définit un libelle qui peut
être : incendie, intrusion ou inondation.
Travail demandé :
Afin de concevoir cette base de données ; on vous demande de :
1. Déduire la liste des colonnes (nom de la colonne, description, type et sujet)
2. Donner une représentation textuelle de la base de données tout en précisant les clés
primaires et les clés étrangères.
- 24 -
Sujets
Exercice 2 :
Soit la représentation textuelle simplifiée d'une base de données qui gère les annonces de
ventes de véhicules publiées par des clients sur un site de ventes en ligne.
CONSTRUCTEUR (IdConst, NomConst)
MODELE (IdMod, NomMod, IdConst#)
VEHICULE (ImmatVeh, PuisFisc, Energie, Couleur, IdMod#)
VENDEUR (IdVend, Email, Tel, NomReg)
ANNONCE (RefAnn, DateAnn, PrixVente, IdVend#, ImmatVeh#)
- 25 -
Sujets
- 26 -
Sujets
………………………………………………………………………………………………….
………………………………………………………………………………………………….
………………………………………………………………………………………………….
6. afficher, pour chaque modèle, son identifiant et le nombre d'annonces correspondant.
………………………………………………………………………………………………….
………………………………………………………………………………………………….
………………………………………………………………………………………………….
………………………………………………………………………………………………….
Partie B :
Après analyse de la structure de la base, il s'avère nécessaire de recourir à la création d'une
nouvelle table décrite par : REGION (IdReg, Libelle).
1. Nommer la contrainte d'intégrité à respecter pour prendre en compte l'ajout de cette table
dans la base.
………………………………………………………………………………………………….
2. Suite à la création de la table REGION par l'administrateur, des modifications devront
être apportées sur une autre table de la base.
a) Donner la nouvelle représentation textuelle de la table concernée.
………………………………………………………………………………………………….
b) Écrire l'ensemble des requêtes SQL permettant ces modifications.
………………………………………………………………………………………………….
………………………………………………………………………………………………….
………………………………………………………………………………………………….
………………………………………………………………………………………………….
Exercice 3 :
Les prix Nobel sont des récompenses décernées chaque année à des lauréats. Ces prix sont
attribués par catégorie, pour les travaux réalisés par ces lauréats.
On se propose de créer une base de données qui gère l’historique des prix Nobel. Pour cela,
on vous donne les règles de gestion suivantes :
1. Il existe 6 catégories de prix Nobel :
Physique,
Chimie
Médecine ou physiologie
Littérature
Paix
Economie
2. Chaque année, les prix sont attribués à un (ou plusieurs) lauréat(s) pour avoir réalisé
une action déterminée. Nommée ‘’Objet’’ dans l’annexe.
3. Chaque objet de prix Nobel est classé sous l’une des catégories présentées
précédemment.
4. Le pays désigne la nationalité officielle de chaque lauréat ou l’origine géographique
de l’institution lauréate.
Pour illustrer le dictionnaire des données qui devra être pris en compte dans la conception de
la base de données, on donne en annexe, le tableau qui résume l’attribution des prix Nobel
- 27 -
Sujets
par catégorie pour les années 2015 et 2016 : l’année d’obtention, la catégorie du prix. L’objet
du prix, le nom du (ou des) lauréat(s) et le pays officiel de rattachement du (ou des)
lauréat(s).
Travail demandé :
Afin de concevoir cette base de données, on vous demande :
1. Déduire la liste des colonnes (Nom de la colonne, description, type et sujet)
2. Dresser dans un autre tableau, la liste des colonnes représentant les identifiants des
sujets dégagés dans la question précédente (Nom de l’identifiant, description, type et
sujet)
3. Donner une représentation textuelle de la base de données tout en précisant les clés
primaires et les clés étrangères.
Annexe :
Année Catégorie Objet Lauréat pays
Découverte sur les oscillations de Takkaki Kajita japon
Physique neutrinos qui démontre que les
neutrinos ont une masse Arthur B McDonald canada
Tomas Lindahi Suède
Etude mécanistiques de la réaction de
Chimie Paul Modrich USA
l’ADN
Aziz Scacar Turquie
Médecine William C Campbell Irlande
Pour leurs travaux de recherche contre
Ou Satoshi Omura Japon
le paludisme
Physiologie Tu Youyou RPC
2015 Pour son œuvre polyphonique,
Littérature mémorial de la souffrance et du Svetlan Aleksievitch Russie
courage à notre époque
LTDH Tunisie
Pour leur succès dans la mission qui a
abouti à la tenue des élections UTICA Tunisie
Paix présidentielles et législatives ainsi qu’à Conseil de l’ordre national des
la ratification de la nouvelle Tunisie
avocats
constitution en 2014
UGTT Tunisie
Pour son analyse de la consommation,
Economie Angus Deaton Royaume Uni
de la pauvreté et du bien être
David Thouless Royaume Uni
Physique pour leurs recherches sur la matière. F. Duncan Haldane Royaume Uni
J. Michael Kosterlitz, Royaume Uni
Jean-Pierre Sauvage France
inventeurs de minuscules "machines
Chimie Fraser Stoddart Royaume Uni
moléculaires".
néerlandais Bernard Feringa Pays bas
Médecine
Ou pour ses recherches sur l'autophagie Yoshinori Ohsumi Japon
2016 Physiologie
créé, dans le cadre de la grande
tradition de la musique américaine, "de
Littérature Bob Dylan USA
nouveaux modes d'expression
poétique"
pour l'accord de paix signé avec les
Paix Forces armées révolutionnaires de Juan Manuel Santos Colombie
Colombie (FARC)
pour leurs contributions à la théorie du Oliver Hartz USA
Economie
contrat Bengt Holmström Finlande
- 28 -
Sujets
Exercice 1 :
Soit la table avion suivant :
Avion (code, firme, nb_passagee, date_cir)
Question
1- Ecrire les commandes SQL qui permettent :
- Ajouter une colonne nbr_AV (nombre d’avion disponible) à cette table
………………………………………………………………………………………………….
- Modifier la taille de la colonne firme pour qu’elle soit une chaîne de 100 caractères.
………………………………………………………………………………………………….
- La colonne nb_passagee est un entier compris entre 100 et 800.
………………………………………………………………………………………………….
- La colonne firme est une colonne obligatoire.
………………………………………………………………………………………………….
2- Soit les données suivantes dans la table avion :
Code Firme Nb_passagee Date_cir nbr
A320 Airbus 320 16/11/2000 2
A380 Airbus 680 10/10/2009 3
B747 Boeing 700 01/01/2013 4
- Ajouter les informations suivantes à cette table (‘B730’, ‘Boeing’, 200, 03/11/2010, 4)
………………………………………………………………………………………………….
- Donner le résultat des requêtes suivantes :
a- select distinct (firme) from avion ;
………………………………………………………………………………………………….
b- select sum(nbpassagee) from avion where firme =’airbus’;
………………………………………………………………………………………………….
c- select * from avion where date between ‘01/01/2010’ and ‘31/12/2031’;
………………………………………………………………………………………………….
d- select SUM(nb_passagee) from avion group by firme;
………………………………………………………………………………………………….
3- Donner la requête permettant d’obtenir le résultat suivant :
Firme Nombre d’avion
Airbus 5
Boeing 7
………………………………………………………………………………………………….
- 29 -
Sujets
Exercice 2 :
Soit la base de données "Gestion_Contrats" comportant la table CONTRAT.
L'administrateur de cette base se propose de gérer les privilèges attribués aux utilisateurs
User1, User2 et User3.
Pour ce faire, il lance dans l'ordre chronologique les requêtes SQL suivantes :
- GRANT Select ON CONTRAT TO User1 ;
- GRANT Insert, Update ON CONTRAT TO User2 WITH Grant Option ;
- GRANT ALL ON CONTRAT TO User3 ;
- GRANT Delete ON CONTRAT TO Public ;
- REVOKE Delete ON CONTRAT FROM User1 ;
1- Après l’exécution de toutes les requêtes ci-dessus, indiquer les droits attribués à chaque
utilisateur sur la table CONTRAT en mettant une croix (X) dans les cases
correspondantes.
Utilisateurs Lecture Insertion Modification Suppression
User1
User2
User3
2- L'utilisateur User2 se propose de lancer les requêtes présentées dans le tableau ci-dessous.
En tenant compte des droits attribués ou retirés précédemment, mettre une croix (X) devant
chaque requête qui engendrera un message d'erreur.
Réponse Requête
GRANT Update ON CONTRAT TO User1 ;
GRANT Select ON CONTRAT TO Public ;
GRANT Delete ON CONTRAT TO User1 ;
Exercice 3 :
On souhaite concevoir une base de données relative à une auto-école. Cette auto-école
organisée des leçons identifiées par un numéro, une date et une heure de début.
Chaque leçon est assurée par un moniteur identifier par un numéro, un nom et une date
d’embauche.
Le client qui vas prendre des cours est identifié par un numéro, nom, prénom, adresse, ville,
date de naissance et téléphone.
Chaque leçon se déroule sur une voiture identifier par un matricule, date d’achat, nombre de
kilomètres, une voiture appartient à un model caractérisé par un code, nom, cylindrée et sa
puissance.
Un moniteur peut assurer une ou plusieurs leçons, une leçon est assurée par un seul moniteur
à un seul client. Un client peut pondre une ou plusieurs leçons. Une voiture peut assurer une
ou plusieurs leçons.
Après un nombre de séance chaque client passe un examen identifié par un code sur une voiture
et avec un ingénieur pour une date donnée. Le client peut passer un ou plusieurs examens qui
s’arrêtent lorsqu’il réussit l’examen.
Un ingénieur est identifié par un code, un nom et un prénom.
- 30 -
Sujets
Questions :
1. Etablir la liste des colonnes (nom colonne, description, type)
2. Donner la représentation textuelle tout en précisant les clés primaires et les clés
étrangères.
- 31 -
Sujets
Exercice 1 :
Soit la base de données simplifiée "Gestion_Rallye" permettant à une ligue d'amateurs
de rallye moto de gérer les différentes étapes d'un rallye.
Cette base de données est décrite par la représentation textuelle suivante :
PILOTE (NumPil, NomPil, PrePil, DateNaisPil)
VILLE (CodeVil, NomVil)
ETAPE (NumEtp, CodeVilDep#, CodeVilArr#, DisEtp, DateEtp, CodeType#)
TYPE_ETAPE (CodeType, DesType)
TEMPS (NumEtp#, NumPil#, TempsReal)
1) Suite aux travaux d'entretien entamés sur l'itinéraire de l'étape numéro 5 ayant comme
désignation du type de l'étape "Asphalte", la ligue décide de changer cet itinéraire par un
autre de type "Forêt". Pour prendre en charge cette modification, écrire les requêtes SQL
permettant :
a) de supprimer la contrainte de domaine nommée CD.
……………………………………………………………………………………………….
- 32 -
Sujets
3) Pour éviter le changement des résultats des étapes du rallye, l’administrateur de la base de
données décide de retirer de l’utilisateur User1 le droit de modification sur la table TEMPS.
Sachant que l’utilisateur User1 est déjà créé et bénéficie de tous les droits, écrire une requête
SQL permettant d’effectuer cette tâche.
……………………………………………………………………………………………….
Exercice 2 :
Soit une base de données qui contient les trois tables article, client et facture. Cette base
présente quelques anomalies. Le contenu des tables est le suivant :
table Client table article
code_cl non_cl pre_cl code_art des_art prix_art
123 driri arbi A001 souris 2,500
325 salhi ahmed B111 clavier -15,000
123 rebhi khalil A003 écran 250,000
table facture
num_fact date_fact code_cl code_art
1 10/10/2012 123 A001
2 11/10/2012 325 A001
3 01/01/2013 325 B111
4 02/01/2013 123 B111
5 03/01/2013 123 C235
6 04/01/2013 325 A001
1) Donner les anomalies qui existent dans cette base de données ainsi que la contrainte
d’intégrité non respectée.
…………………………………………………………………………………….……………
…………………………………………………………………………………….……………
…………………………………………………………………………………….……………
…………………………………………………………………………………….……………
…………………………………………………………………………………….……………
…………………………………………………………………………………….……………
…………………………………………………………………………………….……………
2) Ecrire les requêtes SQL permettant de corriger les structures des tables puis donner la
représentation textuelle de la base de données.
…………………………………………………………………………………….……………
…………………………………………………………………………………….……………
…………………………………………………………………………………….……………
…………………………………………………………………………………….……………
…………………………………………………………………………………….……………
…………………………………………………………………………………….……………
…………………………………………………………………………………….……………
…………………………………………………………………………………….……………
…………………………………………………………………………………….……………
…………………………………………………………………………………….……………
- 33 -
Sujets
Exercice 3 :
Le stockage en ligne est l’un des multiples services du « Cloud Computing » recouvrant
l’ensemble des solutions de stockage distant. En effet, vos données, au lieu d’être stockées sur
vos disques durs ou mémoires, sont disponibles sur des serveurs distants qui sont accessibles
par Internet et gérés par des prestataires (appelés aussi fournisseurs Cloud). Chacun des
prestataires est identifié par un matricule et est caractérisé par un nom, une adresse et un
numéro de téléphone.
Les serveurs, d’un prestataire donné, possèdent chacun une adresse IP unique, un DNS, une
fréquence du processeur et une capacité de stockage.
Les prestataires fournissent chacun des offres à leurs clients. Pour chaque offre, on trouve un
code, un slogan sous forme d’un texte, une capacité de stockage, un prix forfaitaire annuel et
une taille maximale par fichier. Pour s’abonner chez un prestataire, un client doit choisir l’une
des offres fournies en fonction de ses besoins puis signer un contrat. Il doit mentionner son
nom, son prénom, son adresse et son numéro de téléphone avant qu’un identifiant unique ne
lui soit automatiquement attribué.
Un client peut signer plusieurs contrats pour des offres différentes. Chaque contrat est identifié
par une référence unique, une date de début et une période de validité exprimée en nombre de
mois.
Questions : On se propose d’implémenter une base de données simplifiée permettant la
gestion des prestataires Cloud. Pour cela, on vous demande :
1) d’élaborer la liste des colonnes (nom de la colonne, description, type de données).
2) une représentation textuelle de la base de données.
- 34 -
Sujets
Exercice 1 :
A. Pour chacune des propositions suivantes, répondre par (V) si la réponse est juste ou par (F)
si elle est fausse.
a. Une requête de sélection peut :
- extraire plusieurs lignes.
- renvoyer un seul résultat.
- modifier les données obtenues suite à son exécution.
b. La commande ALTER TABLE permet :
- d’ajouter une table à la base de données.
- de modifier les données d’une table de la base de données.
- de modifier la structure d’une table de la base de données.
c. La suppression d’une table est réalisée avec la commande :
- ERASE.
- DELETE.
- DROP TABLE.
d. Le cryptage d’une base de données consiste à :
- créer un mot de passe pour accéder à la base de données.
- compresser les données de la base.
- coder la base de données.
B. Pour chacun des traitements suivants, mettre une croix (X) dans la colonne du langage de
base de données qui lui correspond :
N.B. : Un langage de base de données peut être :
• L.D.D. : Langage de Définition de Données
• L.M.D. : Langage de Manipulation de Données
• L.C.D. : Langage de Contrôle de Données
Langage de base de données
Traitement
L.D.D. L.M.D. L.C.D.
Ajouter une contrainte de domaine à une table.
Ajouter des données dans une table.
Retirer les privilèges d’un utilisateur.
Supprimer une table.
Modifier des lignes d’une table.
Créer un utilisateur.
Sélectionner des lignes d’une table.
Modifier la taille d’un champ.
- 35 -
Sujets
Exercice 2 :
Soit la base de données intitulée "Gestion_Hébergements" permettant à un fournisseur
de services Internet de gérer les hébergements des sites web de ses clients dans les différents
serveurs. Elle est décrite par la représentation textuelle simplifiée suivante :
SITE (CodeSite, UrlSite, DescSite, TailSite, DHebSite, CodeCat#, CinCl#, NumServ#)
CATEGORIE (CodeCat, LibCat)
CLIENT (CinCl, NomCl, PrenCl, EmailCl, TelCl)
SERVEUR (NumServ, LibServ, IPServ)
N.B. :
- Un site web ne peut être hébergé qu'une seule fois dans le même serveur.
- Un site web doit être d'une seule catégorie.
- Un site web appartient à un seul client.
Nom de la Description de la colonne Nom de la
Description de la colonne
colonne colonne
CodeSite Code du site web NomCl Nom du client
UrlSite Adresse URL du site web (Exemple : www.edunet.tn) PrenCl Prénom du client
Description du site web (Exemple : Portail de EmailCl Adresse Email du client
DescSite l'éducation nationale) TelCl Numéro du téléphone du client
TailSite Taille occupée par le site web exprimée en MégaOctets NumSer Numéro du serveur web
DHebSite Date d'hébergement du site web dans le serveur LibServ Libellé du serveur web
CodeCat Code de la catégorie du site web (Exemple : 'E', 'C', ...) Adresse IP du serveur web
IPServ
Libellé de la catégorie du site web (Exemple : (Exemple : 192.168.16.1)
LibCat
Educatif, Commercial, ...)
CinCl Numéro de la carte d'identité nationale du client
Questions :
1. L’administrateur désire ajouter à cette base de données un nouvel utilisateur, identifié par
Candidat1 et ayant le mot de passe "BacSI".
Ecrire la requête SQL permettant d’ajouter cet utilisateur.
…………………………………………………………………………………………………
2. Ecrire une requête SQL permettant d'attribuer à l'utilisateur déjà crée Candidat1, tous les
droits d'insertion et de sélection sur la table SITE, en lui autorisant d'accorder ces droits reçus
à d'autres utilisateurs.
…………………………………………………………………………………………………
3. L'utilisateur Candidat1, veut modifier l’adresse IP du serveur numéro 10. Un message
d’erreur s’affiche. Dites pourquoi ?
…………………………………………………………………………………………………
4. Un nouveau site éducatif vient d’être hébergé dans le serveur numéro 5.
Ecrire une requête SQL permettant d'ajouter les informations suivantes à la base de données :
CodeSite UrlSite DescSite TailSite DHebSite CodeCat CinCl NumServ
Bac Sciences de
S10 www.BacSI.tn l’Informatique 50 10/05/2018 E 01234567 5
…………………………………………………………………………………………………
- 36 -
Sujets
5. L’administrateur de cette base de données désire ajouter une contrainte sur la colonne CodeCat
de la table CATEGORIE vérifiant la validité des valeurs suivantes : ‘E’, ‘C’, ‘A’ et ‘N’.
Ecrire une requête SQL permettant de réaliser cette tâche.
…………………………………………………………………………………………………
6. Ecrire les requêtes SQL permettant d'afficher :
a. tous les sites web (Url, Description et Taille) appartenant au client identifié par son numéro de
la carte d'identité nationale "12345678", et triés dans l'ordre décroissant de leurs tailles.
…………………………………………………………………………………………………
…………………………………………………………………………………………………
b. tous les sites web commerciaux et leurs clients (URL, Nom du client, Prénom, et Email).
…………………………………………………………………………………………………
…………………………………………………………………………………………………
c. le nombre de sites web éducatifs hébergés durant l'année 2018.
…………………………………………………………………………………………………
…………………………………………………………………………………………………
Exercice 3 :
- 37 -
Sujets
Exercice 1 :
N° Requête Résultat
- 38 -
Sujets
Exercice 2 :
Soit la base de données suivante :
Activité (codeAct, LibAct)
Coach (CodeCo, Nom, Prénom)
Seance (CodeAct#,CodeCo#,DateSe,HeureDeb, HeureFin)
Questions :
1) Ecrire une requête qui permet de créer la table Evaluation
Table Seance
champ type
CodeAct chaîne de 3 caractères
CodeCo Entier
DateSe Date
HeureDeb Heure
HeureFin Heure
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
……………………………………………
2) Est-ce qu’on peut insérer les occurrences suivantes dans la table Seance (‘’A01’’,1,10-05-
2017,10 :00,12 :00)(‘’A01’’,1,10-05-2017,14 :00,15 :00)
…………………………………………………………………………………………………………..
3) Écrire une requête qui permet d’afficher
Exercice 3 :
1) Pour chacune des commandes suivantes donner la liste des contraintes appliquées sur
la table :
Commandes Liste de contraintes
CREATE TABLE DELEGATION ( …………………………………………
CodeDel Varchar(3) PRIMARY KEY, …………………………………………
LibDel Varchar(40) NOT NULL, …………………………………………
DateDel Date, …………………………………………
PopDel Decimal(9,3), …………………………………………
SupDel Decimal(6,3), …………………………………………
CodeGouv Varchar(2), …………………………………………
CONSTRAINT FOREIGN KEY (CodeGouv) …………………………………………
REFERENCES GOUVERNORAT …………………………………………
(CodeGouv)); …………………………………………
ALTER TABLE DELEGATION ADD …………………………………………
CONSTRAINT CA CHECK SupDel > 0; …………………………………………
- 39 -
Sujets
Exercice 4 :
Soit la base de données décrite par le schéma suivant :
PIECE (NOP, DESIGNATION, COULEUR, POIDS)
SERVICE (NOS, INTITULE, LOCALISATION)
COMMANDE (NOP#, NOS#, QUANTITE)
Questions :
1) Créer la table COMMANDE en respectant les contraintes d’intégrité.
2) La QUANTITE est une valeur strictement positive. Ecrire la requête SQL permettant
d’apporter la modification à la table COMMANDE.
3) Ajouter les informations suivantes dans les tables correspondantes :
(‘’P1’’,’’four’’,’’rouge’’,15) (‘’P1’’,’’S01’’,12) (‘’S01’’,’Achat’’,’’Tunis’’)
4) Ecrire les requêtes SQL permettant d’afficher :
- Le nombre de services ayant des commandes.
- Liste des pièces commandées (DESIGNATION,POIDS) par le service ‘’S01’’
- Numéro des services qui ont commandé la pièce ‘P1’ et la pièce ‘P3’
- La quantité moyenne commandée pour la pièce ‘P3’.
- La moyenne des pièces commander par service(INTITULE,
DESIGNATION,moyenne)
5) L’administrateur de cette base de données désir ajouter un nouvel utilisateur pour cette
base dont le nom est ’’util1’’ et le mot de passe ‘’bac2017’’ ;
6) Attribuer les droits d’insertion, de suppression et d’affichage sur la table commande
pour l’utilisateur ‘util1’
7) Supprimer le droit de suppression attribué à l’utilisateur ‘util1’
- 40 -
Sujets
Exercice 5 :
Une agence privée souhaite faire un recensement pour analyser les tendances des jeunes entre
18 et 25 ans dans les domaines du sport et de l’Internet. Afin de collecter les informations
nécessaires, elle a procédé à travers ses agents, au choix d’un échantillon (ensemble de jeunes)
pris aléatoirement où chaque jeune remplit un questionnaire dont un exemple est ci-après :
Informations personnelles
N° CIN : 08194523
Nom : Ben salah Prénom : Mohamed Sexe : Masculin
Date de naissance : 29/09/1995 Adresse : Tunis Niveau d’enseignement :
Universitaire x Secondaire Primaire Analphabète
Sports pratiqués
Sports collectifs : Sports individuels :
x Football Tennis
Handball x Natation
Volleyball x Judo
Basketball Cyclisme
x Rugby Athlétisme
Internet
Service exploités :
Services Nombre d’heures hebdomadaire de connexion
x Réseaux sociaux 14
Message électronique
x Téléchargement de fichier 5
Jeux vidéo
x E-commerce 3
E-learning
Navigateurs :
x Internet explorer x Mozilla Firefox
Google chrome Autres
NB : les sports, les services et les navigateurs Internet sont identifiés par des codes.
Question :
On se propose d’implémenter une base de données permettant de gérer les données des
questionnaires collectées. Pour cela, on vous demande :
1. Etablir la liste des colonnes (nom colonne, description, sujet)
2. La représentation textuelle de cette base de données
- 41 -