Vous êtes sur la page 1sur 7

4 SI 2

DEVOIR DE MAISON N°3

Exercice 1 :
Soit la table "MEDICAMENT" de la base de données "Gestion_pharmacie" :

CODE_ME PRÉSENTATIO ORDONNANC


NOM TRAITEMENT PRIX
D N E
Infections
N6737 Clamoxil sirop oui 8.500
bactériennes
Infections
N6745 Clamoxil comprimé oui 11.500
bactériennes
Z2343 Gripex sachet Etat grippaux non 6.900
G6777 Synthol gel Douleur local non 5.100
Désinfectant
R8098 Hextril Bain bouche non -3.000
buccale
Désinfectant
R7799 Synthol Bain bouche non 4.300
buccale

Questions :
a. Les informations insérées dans cette table présentent une anomalie. Identifier-la
b. Quelle est la contrainte qui n’a pas été respectée ?
c. On propose deux solutions pour corriger cette anomalie. Cocher la bonne solution :

ALTER TABLE MEDICAMENT MODIFY COLUMN PRIX decimal(7,3);

ALTER TABLE MEDICAMENT ADD CONSTRAINT C1 check (PRIX>0);

d. Donner la requête SQL permettant d’insérer la première ligne dans la table ‘MEDICAMENT’

Exercice 2 :

1) Compléter la grille ci-dessous avec les mots correspondant aux définitions données :
A B C D E F G H I J K

4 I

1 / 7
4 SI 2
1. Fonction SQL permettant d’extraire le mois d’une date.
2. Option SQL permettant de définir un ordre de tri croissant.
3. Mot clé SQL utilisé pour lister les valeurs à insérer dans un enregistrement.
4. Opérateur SQL permettant de filtrer une chaîne de caractères.
5. Option SQL permettant d’afficher les résultats d’une requête de sélection sans doublons.
6. Fonction d’agrégat SQL permettant de calculer la moyenne arithmétique d’une colonne
numérique

2) Mot trouvé dans la colonne F


Exercice 3 :
Mettre V devant la proposition juste et F devant la proposition fausse :

L’intégrité de domaine correspond à :


Un domaine de compétence
Un ensemble de valeurs admissibles
L’intégrité référentielle
La contrainte d’intégrité référentielle :
Interdit des valeurs différentes entre une clé étrangère et la clé primaire correspondante
Interdit des doublons dans une clé primaire
Interdit des doublons dans une clé étrangère
Le(s) quel(s), parmi, les types de colonnes proposés ne pouvant pas avoir des doublons :
Colonne déclarée comme clé primaire
Colonne déclarée comme clé étrangère
Colonne déclarée avec la contrainte UNIQUE
le principe du model relationnel consiste à :
Représenter les données dans une structure arborescente
Représenter les données et les liens par des tables
Représenter les données dans un fichier

Exercice 4 :
La description textuelle suivante est une description simplifiée d’une base de données de gestion
d’un parc d’animaux :

ANIMAL(CodeA,genreA,AnNaissA,EtatA,CodeF#,CodePays#)

FAMILLE(CodeF,DesignatF)

NOURRITURE(CodeN,DesignatN)

ORIGINE(CodePays,LibellePays)

REGIME(CodeA#, DateCh, CodeN#,QteN)

La table REGIME contient toutes les informations concernant le regime alimentaire d’un animal au
cours de son existence. Ce regime change d’un âge à l’autre.
Exemple : à la naissance, un lion se nourrit d’une certaine quantité de lait, puis à l’âge adulte il se
nourrit essentiellement de viande en quantité différente selon son âge. Ainsi à une date donnée
une seule nourriture est affectée à un animal donné et en quantité appropriée.
La table ANIMAL contient les informations concernant les animaux qui vivent dans le parc.
La table FAMILLE contient toutes les espèces animales répertoriées sur la terre.
On donne:

2 / 7
4 SI 2

CodeA: code de l’animal DesignatN: designation de la nourriture de


l’animal
GenreA: genre de l’animal (mâle ou femelle)
CodePays: code du pays d’origine de l’animal
AnNaissA: année de naissance de l’animal
LibellePays: nom du pays d’origine de l’animal
etatA: état de l’animal (Vivant ou Décédé)
DateCh: date de changement de regime
CodeF: code de la famille animale
alimentaire
DesignatF: designation de la famille animale
QteN: Quantité de nourriture journalière du
CodeN: code de la nourriture de l’animal régime alimentaire de l’animal
Questions :

1. Ecrire les requêtes SQL qui permettent d’afficher :


a. La liste de toutes les familles animales (code et désignation) triée dans l’ordre croissant des
codes
b. Le pays d’origine de l’animal de code ‘Serpent123’
c. Le nombre total d’animaux qui vivent dans le parc
d. Les codes et les années de naissance de tous les animaux qui vivent dans le parc et
appartenant à la famille de désignation ‘BOVIN’
e. Les origines distinctes (code et libellé du pays) de tous les animaux qui vivent dans le parc
f. Les codes des animaux qui vivent dans le parc et qui sont, soit nés en 2006 soit originaires
du pays dont le libellé est ‘Kenya’
g. L’historique du régime alimentaire (date, désignation de la nourriture et la quantité) de
chaque animal
2. Donner le rôle de chacune des requêtes suivantes 
a. UPDATE Animal
SET EtatA=’D’
WHERE codeA=’panda45’
b. SELECT genreA from Animal A, Regime R
WHERE CodeN=(SELECT CodeN from Regime where CodeA=’Lion32’)

Exercice 5 :
Valider chacune des propositions ci-dessous, en mettant dans la case correspondante
la lettre "V" si elle est correcte ou la lettre "F" dans le cas contraire.
Soit le contenu de la table "chomage" Soit la page "affiche.php" avec le code suivant :
de la base de données "test" : <?php
//Connexion vers le serveur
//Choix de la base de données test
$req="SELECT * FROM chomage WHERE CodePay='Ger'";
$res=//exécution de la requête $req
$chom=mysql_fetch_array($res);
// Affichage des résultats
?>
 La commande Mysql_fetch_array() permet de :

3 / 7
4 SI 2
Remplir un tableau par des valeurs aléatoires.
Parcourir les résultats d’une requête de select.
Vider le contenu d’un tableau.
 Pour afficher le taux de chômage en Allemagne on utilise l’instruction PHP:
echo $chom[2];
echo $chom['Taux'];
echo $chom['Allemagne'];
En SQL, quelle commande permet de mettre à jour des enregistrements dans une base de
données :
UPDATE
MODIFY
ALTER TABLE
En PHP, La connexion au serveur se fait à l’aide de la fonction :
Mysql_select_server(‘localhost’,’root’,’’) ;
Mysql_connect_server(‘localhost’,’root’,’’) ;
Mysql_connect(‘localhost’,’root’,’’) ;
Exercice 6:
I. Pour chaque proposition de la colonne Bloc, compléter la colonne Réponse par la
lettre qui correspond au Langage approprié (2 points)
Bloc Réponse Langage

1 <script src= ‘contrôle.js’></script> 1
a JAVASCRIPT
2 alert (“<b> Texte </b>“ ) ; 2
b PHP
3 $i++; 3
c HTML
4 for (i=0 ; i<n ; i++) 4

II. Soit le formulaire Suivant :

1. L’élève doit saisir sa date de naissance sous la forme : JJ/MM/AAAA.

4 / 7
4 SI 2
Ecrire le code d’une fonction JavaScript intitulée Verif( ) qui permet de contrôler la saisie
de cette dernière

2. Soit le script PHP suivant :


<?php
$Dn=$_POST['T4'];
$Nc=$_POST['T1'];
$Nm=$_POST['T2'];
$Pr=$_POST['T3'];
Mysql_connect('localhost','root','');
Mysql_select_db(‘lycee’);
$req="insert into eleve values('','$Nc','$Nm','$Pr','$Dn')";
$res=mysql_query($req);
if($res != NULL)
{
echo"Inscription effectuée avec succès";
}
else
{
echo"Inscription non effectuée !!! Vérifier vos informations";
}
?>

Question : Compéter le script ci-dessus permettant d’ajouter les informations de l’élève


dans la table "eleve" de la base de données "Lycee"

Exercice 7 :
Table INFIRMIER Table SERVICE
CodeSe
NumInf NomInf PreInf SallInf CodeSer LibSer TelSer
r
1542458 Abidi Fadoua 780.368 40 10 Cardiologie 75222111
1221221 Tounsi Amel 1200.125 20 20 Radiologie 75222112
2145487 Beji Yemen 890.524 10 30 Maternité 75222113
1221221 Saidi Chahd 898.585 20 40 Pédiatrie 75222114
1552845 Haji Rayen 750.021 30
1648215 Baldi Emna 1002.857 40
Soit la base de données simplifiée intitulée "Gestion_Infirmiers" permettant de gérer les
affectations des infirmiers au niveau des différents services d’un hôpital universitaire
nouvellement créé.

5 / 7
4 SI 2
1. Pour faciliter le contact avec les infirmiers en cas d’urgence, on a décidé d’enrichir cette
base de données par le numéro de téléphone personnel de chaque infirmier en ajoutant
un champ intitulé TelInf composé de 8 caractères.
Question : Ecrire la requête SQL permettant de réaliser cette tâche.
2. Un nouveau service identifié par le code 50, portant le libellé Urgence et ayant comme
numéro de téléphone 75222116 vient d’être créé.
Question : Ecrire la requête SQL permettant de réaliser cette tâche.

3. A ce service (Urgence), un nouvel infirmier a été affecté et ayant les informations


suivantes :

Question : Ecrire la requête SQL permettant de réaliser cette tâche.

4. Pour satisfaire les besoins du nouveau service (Urgence), l’infirmier ayant le numéro
‘1648215’ a été transféré à ce service.
Question : Ecrire la requête SQL permettant de réaliser cette tâche.
5. Ecrire les requêtes SQL permettant d’afficher :
a. La liste des services (CodeServ,LibSer,TelSer) triée en ordre croissant des libellés.
b. La liste des infirmiers (NumInf, NomInf, PreInf) dont le salaire est supérieure à la
moyenne des salaires
c. Pour chaque service, son code et le nombre d’infirmiers qui lui sont affectés

Exercice 8 :
Soit la représentation graphique suivante représentant la gestion d’un parc d’animaux :

Famille Regime
1
CodeF CodeA
DesignatF Animal DateCh Nourriture
CodeA 1 CodeN ∞ 1 CodeN
GenreA QteN DesignatN
AnNaissA ∞
EtatA
LibellePays
∞ CodeF

On donne :
Champ Description Champ Description
Désignation de la famille
CodeA Code de l’animal DesignatF
animale
Code de la nourriture de
GenreA  Genre de l’animal CodeN
l’animal
Année de naissance de Désignation de la nourriture de
AnNaissA DesignatN
l’animal l’animal
Date de changement de régime
EtatA Etat de l’animal DateCh
alimentaire

6 / 7
4 SI 2
Quantité de nourriture
Nom du pays d’origine
LibellePays QteN journalière du régime
de l’animal
alimentaire de l’animal
Code de la famille
CodeF
animale

1. Après avoir terminé la création de cette base, on s’est rendu compte qu’on a oublié de
définir la contrainte d’intégrité référentielle relative à la colonne CodeF de la table
Animal.
Question : Ecrire la requête SQL qui permet d’ajouter cette contrainte d’intégrité (1point)
2. Ci-dessous un extrait de la table animal :
CodeA GenreA AnNaissA EtatA LibellePays CodeF
Lion32 M 2006 Décédé Kenya F01
Zèbre123 F 2020 Vivant Kenya F02
Rhinocéros56 M 2018 Vivant Kenya F03
Kangourou12 M 2019 Vivant Australie F04
Koala20 F 2019 Vivant Australie F05

Après avoir rempli la table animal, on s’est rendu compte que l’information LibellePays
présente une anomalie :
a. Identifier cette anomalie.
b. Proposer une solution pour remédier à cette anomalie
3. Donner la représentation textuelle de cette base suite à la rectification réalisée dans
la question2

7 / 7

Vous aimerez peut-être aussi