Académique Documents
Professionnel Documents
Culture Documents
données relationnelle
---------------------------------
S
Objectifs :
• Insertion de lignes
• Modification de lignes
• Suppression de lignes
Exercice 1 30 min
Afin de gérer les opérations de don de sang au niveau des différents centres de
transfusion sanguine, on se propose d’utiliser la base de données simplifiée intitulée
"DonSang" décrite par la représentation textuelle suivante :
1) Compléter le tableau ci-dessous par la clé primaire et les clés étrangères de la table
"DON"
Clé primaire Clés étrangères
……………………………………………… ………………………………………………
1
2) Pour chacune des affirmations ci-dessous, mettre dans la case correspondante la
lettre « V » si la réponse est correcte ou la lettre « F » dans le cas contraire.
a) Pour s’assurer que les numéros de téléphone des donneurs ne se répètent pas,
on utilise la requête SQL :
ALTER TABLE Donneur ADD CONSTRAINT TelDonn DISTINCT
ALTER TABLE Donneur ADD CONSTRAINT TelDonn UNIQUE
ALTER TABLE Donneur ADD CONSTRAINT PRIMARY KEY (TelDonn)
b) Pour garantir que le champ "Genre" de la table "Donneur" n’accepte que les
valeurs suivantes "M" ou "F", on utilise la requête SQL :
ALTER TABLE Donneur ADD CONSTRAINT CHECK (Genre = "M" OR Genre = "F")
2
6) Le tableau suivant représente les informations relatives à un nouveau donneur :
CIN NomPrenom DateNaiss Genre GS TelDonn
05545499 Jerbi Lobna 13/08/2007 F A+ 20300300
En validant l’opération d’insertion de cette nouvelle ligne à la table « DONNEUR » un
message d’erreur s’affiche en interdisant cette opération. Expliquer pourquoi ?
7) À la suite d’une erreur de saisie lors de l’ajout du donneur ayant le numéro de CIN
'07887711', on souhaite modifier le groupe sanguin par 'B+'. Ecrire la requête SQL
correspondante.
8) Ecrire la requête SQL permettant de supprimer tous les dons ayant une quantité
inférieure à 500 ml.
Exercice 2 30 min
Afin de gérer les victoires des courses de la Formule1, on se propose d’utiliser la base
de données simplifiée intitulée "GestionFormule1" décrite par la représentation tex-
tuelle suivante :
MARQUE (CodeMarq, LibMarq)
PILOTE (IdPilote, NomPilote, DateNaiss)
CIRCUIT (CodeCircuit, NomCircuit, PaysCircuit, LongCircuit, NbTours)
VICTOIRE (IdPilote#, CodeCircuit#, Annee, CodeMarq#, TempsRealise)
3
2) On souhaite modifier la longueur et le nombre de tours du circuit ayant le code
"JED520" en attribuant les nouvelles valeurs suivantes : 6.174 Km et 50 tours. Ecrire
la requête SQL correspondante.
3) Afin d’alléger la table "VICTOIRE", on souhaite supprimer toutes les victoires qui
ont été enregistrées avant l’année 1950. Ecrire le requête SQL correspondante.
4) Ci-dessous un extrait du contenu des différentes tables de la base de données :
Table CIRCUIT
CodeCircuit NomCircuit PaysCircuit LongCircuit NbTours
JID520 Jiddah Corniche Circuit Arabie Saoudite 6.174 50
BAK250 Baku City Circuit Azerbaïdjan 6.003 51
MON120 Circuit de Monaco Monaco 3.337 78
RED850 Red Bull Ring Autriche 4.318 71
Table VICTOIRE
IdPilote CodeCircuit Annee CodeMarq TempsRealise
P001 MON120 2022 RB001 1:27:48
P003 BAK250 2023 FE002 1:29:32
P001 JED520 2023 RB001 1:26:12
P002 MON120 2021 FE002 1:32:48
L’exécution de chacune des requêtes suivantes génère une erreur. Indiquer pour
chaque requête la contrainte d’intégrité non respectée et justifier la réponse.
a) INSERT INTO PILOTE (IdPilote, NomPilote, DateNaiss) VALUES ('P002',
'George Russell', '15/02/1998');
b) INSERT INTO VICTOIRE VALUES ('P002', 'PAR630', 2023, 'ML008', '1:36:21');
c) UPDATE VICTOIRE SET TempsRealise = '1:31:48' WHERE IdPilote = 'P002'
AND CodeCircuit = 'JAP800' AND Annee = 2023;
d) INSERT INTO CIRCUIT VALUES ('BRE163', 'Brézil', 4.309, 71);