Vous êtes sur la page 1sur 46

Base de

donner
Chap. I : Dictionarie de donne

* Les donne d'une base d'une formation de contenir les driver d'enseignement :
* l'annonce d'descripteurs des objectifs
* Les document
Le cahier de la charge est un ensemble d'une formation et leur description ainsi que la liaison entre c'est
Information, pour déduire le dictionnaire de donne d'un cahier de charger il suffit de désigner un
Tableau qui contient les informations des participant de cahier de charge ainsi que leur type

Champs Type
Nom d 'exploitation Caractére
Ville d 'exploitation " "
Nom comptable " "
Ville d'agence " "
Nom d'agence " "
SAU d 'exploitation " "
L 'age de comptable Entire
Numéro Tele Comptable Entire
Chap. II : modèle conceptuel

I ) système d'information
est un ensemble d'information liée par des règle de gestion :
II ) règles de gestion
est un ensemble de contraintes de système d'un formation
exemple :
---> un enseignement peut enseigner plusieurs matières.
---> une matière ne peut être Ensigné que par seul enseignant.
III ) Modèle conceptuel de donnes :
1 ) Entité : Nom d’entité
Enseignant
Num
Nom
Prénom
Ville

Champ = attributes

Entité
2 ) Association

Enseignant Matire

Associatio Enseignan
Numero t Numero
n Nom Nom
Prenom Prenom
Date
3 ) Cordialités Enseignant Matière
1.N
Enseignan
0.N Numéro t 1.
Numéro
Nom N 1 Nom
1.1 1.
Prénom Prénom
0.1 Date

on considère le système d'information suivant :


un ensinant peut enseigner plusieurs matière.
un matière ne peut être enseigner par un seul
enseignant .
l’enseignant se caractérise par code matière libelle
Exemple 2:
*un enseignant ne peut
enseigner que un seul matière. Enseignant Matière

*la matière peut être enseigner Enseignan


par plusieurs enseignant . Numéro
Nom 1
t 1.
N
Numéro
Nom
1.
Prénom Prénom
Date
Exemple 3 :
*un enseignant peut
enseigner plusieurs matière
Enseignant Matière
, et existe des enseignant
n’enseigner pas Numéro
Enseignan
t Numéro
1.
Nom N 1 Nom
0.
*une matière ne peut être Prénom Prénom

enseigner par un seul Date


Exemple 4 :
*un enseignant peut être
enseigner plusieurs matière
Enseignant Matière
il existe des enseignant
disponsives . Numéro
Enseignan
t Numéro
0.
Nom N 1 Nom
0.
*une matière ne peut être Prénom Prénom

enseigner que par un seul Date

enseignant et il existe des


matière n’enseigner pas
Exemple 4 : Comptable Exploitation

Gérer Numéro
Nom 1. Commune ou se
N 1
Numéro de 1. situe
téléphone Date SAU

1.1

Gérer

Date

1.N

Agence

Nom
Directeur
Ville
Exemple MCD 5 : Logment

Address logment
1.N 1 1.
Client
Gére 0. Superficies 1
Gére
0.N Type logment
Prix loyer
r r
Nom client Code type
Prenom client
Dns client
Libelle type
1.1 Type logment
Date N

Gére
r

0.N

Quartier Commune

0.N Commune
Code quartier 1.1 Gére
r Nom d ’habitude
Libelle Desire entre agence et commune
Nom commune
Exemple MCD 5 : Chambre

Numero
1.N 1
Maison
Gére 1. Habitants
position
r
Numero
Etage
localisation

Per Commune
Ram Commune
1.1 Gére 0.N
Vram r Nom d ’habitude
Carte graphique Desire entre agence et commune
CPU Nom commune
Exemple MCD 6 : Voyage

Client
Numero Ville
Numero
Nom 1.N Nom
Prix
Nom
Prenom
L’organisatio 1.N Numero
Depart
n
Address Arrive
Escale
1.1

N
1.
1.N i sa L’organisatio
n
ga n n
L’organisa o r
tion L’ tio

1.1 0.N
1
1.

Reservation Transport

Numero de Numero
reservation Type
Chap. III: Règles de passage MCD  MLD

I)0.N/1.N 0.1/1.1
Modèle logique de donner  Base de Donne
Cle premaire Enseignant Matière

Code E Code Math


1.N
1.1 #Code E
Nom Enseignan Libelle
t

Date
• La cle de l’entie N a la fin va etre migre dans l’entite 1 a la fin .

Enseignant Matière

CodeMath
Code E
Libelle
# Code E
Nom
Date

Cle Étranger
• Le modele relationnel
Enseignant (CodeE ,Nom )
Matière (CodeMath , Libelle, #CodeE , Date)
• Dans le cas la premiere table a remplir est la table qui ne possede pas cle
étranger
Ensiegnant
CodeE Nom

1 Karimi
2 Nabili
3 Hafidi

Codemath Libelle CodeE Date

1 Physique 1 01/01/23
2 Math 1 01/01/23
3 Info 2 02/01/23
II ) 0 . N / 1 . N 0.N/1.N
Modèle logique de donner  Base de Donne
Cle premaire Enseignant Matière

Code E Code Math


1.N
1.N
Nom Enseignan Libelle
t

Date
• Il est obligator de definer autre entite
• Le Module logique de donnes (MLD)

Enseignant EM Matière

Code E #CodeMath
# Code E CodeMath
Nom Date Libelle

• Le modele relationnel
Enseignant (CodeE ,Nom )
Matière (CodeMath , Libelle)
EM(#CodeE, #CodeMat, Date)
• Dans le cas la premiere table a remplir est la table qui ne possede pas cle
étranger
Ensiegnant Matière
CodeE Nom CodeMath libelle

1 Karimi 1 Math
2 Nabili 2 Physique
3 Hafidi 3 info

Matière
Codemath CodeMath Date

1 1 01/01/23
1 2 01/01/23
2 2 02/01/23
Solution MLD

Client EM Matière

Code E #CodeMath
# Code E CodeMath
Nom Date Libelle

• Le modele relationnel
Enseignant (CodeE ,Nom )
Matière (CodeMath , Libelle)
EM(#CodeE, #CodeMat, Date)
MLD
Chap. IV: Graphe de dépendance fonctionnelle

I)
Enseignant NumE
NumE determine Nom et NumE determine prenom.
NumE  Nom depend fonctionnellement de NumE et prenom
depend fonctionnellement de NumE
Nom Graphe de dependance fonctionnelle.
prenom Nom Prenom
II)
Enseignant Matier

NumE
CodeMath
MCD 1.N CodeMath
Nom Enseignan 1.1 libellee
prenom t

Date Libellee Date NumE


Enseignant Matier

NumE CodeMath
Libellee Nom Prenom
Nom #NumE
MLD prenom Date
II)
Enseignant Matier

NumE
CodeMath
MCD 1.N NumE CodeMath
Nom Enseignan 1.1 libellee
prenom t

Date Nom Prenom Libellee


Matier
Enseignant
EM CodeMath
NumE Libellee
#NumE Date
MLD Nom #NumE
Date
prenom #CodeMath
Date
Logment

Id_Quartier Id_Client Superficie Address Prix Id_Type logment

Libelle
Code Libelle Nom Prenom Date N
Dns

Id_Commune

Nom Nom d ’habitude Distance C et A


Exemple MCD 6 :

Reservation Voyage Vo_Vill Ville

Num_Voyage Nom
Nom Numero_Ville
Num_reservation Prix #Num_voyage Depart
#Num_Client Reservation #Num_Villle Arrive
#Num_Voyage Ville Escale
#Num_Transport

Client Transport

Num_Client
Nom Num_Transport
Prenom Type
Address
Numero_Ville Num_reservation

Escale Arrive Depart Num_Voyage Num_Client

Num_Transport Nom Prix Nom


Prenom Address

type
Exercice a class :
Module
Formateur

CodeM
CodeF Massehoriare 1.N
Nom Enseignant
Prenom

1
1.

1.
Tel N Date
Enseignant

Date

1.N
Salle

CodeS
libelleS
Exercice a class :

Formateur

CodeF
Nom
Prenom
Tel

Module Ms Salle

CodeM #CodeM CodeS


Massehoriare #CodeS libelleS
#codeF Date
CodeS CodeM

codeF
Date Massehoriare
libelleS
Prenom Nom Tel
Remplissage de table

Formateur
CodeF Nom Prenom Tel

1 Razkaoui Yassine 0691248754

2 Hadach Yassine 0666481752

Salle Module MS
CodeS libelleS CodeM Massehoriare CodeF CodeS CodeM Date
5 Dev101 1 75H 1 5 1 1/2/23
7 Dev102 2 40H 2 7 2 1/3/23
Exercice De Hospital :
On considère le GDF suivant

CodeMedecin CodePatient

Codelit CodeChambre CodeService

TelM PrenomM NomM TelP PrenomP NomP

Date libelleChambre libelleLit


libelleService

1) Donner le Modele relationnel?


2) Donner MCD
3) Donner MLD
4) Remplir les tableau de MLD par deux enseignement?
1-Modele Relationnel

 Medecin (Codemedecin ,NomM , PrenomM , TelM).


 Patient (Codepatient , #Codelit , NomP , PrenomP , TelP).
 Lit(CodeLit , #CodeChambre , LibelleLit).
 Chambre(CodeChambre, #CodeService , LibelleChambre).
 Service(CodeService , LibelleService).
 Soigne(#CodeMedecin , #CodePatient , Date).
2) MCD

Patient
Medecin

CodePatient
CodeMedecin
NomP 1.N
NomM
PrenomP
PrenomM 1.
N TelP Soigne

N
TelM

1.
Date
Soigne

Date

1.N
Lit

CodeLit
Libelle
Afficher les noms des animateurs – 1
**(SELECT nom FROM animateurs) pour selecter les nom
2 – Afficher les noms et prénoms des animateurs
** (SELECT nom et prénom FROM animateurs) pour selecter les nom,
prénom
3 – Afficher tout les information des animateur
**(SELECT * FROM animateur) pour selecter toutes les informations
4 – Afficher les noms des animateurs tries se l’order croissant
**(SELECT nom FORM animateur ORDER BY nom ASC)
5 – Afficher les noms des animateur tries se l’order decroissant de
nom
**(SELECT nom FORM animateur ORDER by nom DESC)
6 –Afficher les nom des animateur dont prénom et KARIM
**(SELECT nom FROM animateur WHERE prénom = ‘KARIM’)
7 – Afficher les noms des animateur dont prénom et HAFID ou NABIL
**(SELECT nom FROM animateur WHERE prénom =‘HAFID’ OR prénom=‘NABIL’ )
8 – Afficher nom et prénom des animateur don’t nom = ‘KARIMI’ et prénom
= ‘HAFID’
**(SELECT nom, prenom FROM animateur WHERE nom =‘KARIMI’ and prenom=
‘HAFIDI’)
9 – Afficher toutes les information dont prenom et HAFID tries se l’order
croissant de nom
**(SELECT * FROM animateur WHERE prenom = ‘HAFIDI’ ORDER BY nom ASC)
10- Afficher toutes les information de enterprise de code 1
**(SELECT * FROM entreprise WHERE code_entreprise = 1)
11- Afficher toutes les information de cours qui ont eu lieu le
“22/02/2023”
**(SELECT * FROM cours WHERE date= ‘2023-02-22’)
12- Afficher les code_cours qui ont lieu 02-01-2023 et 25-01-2023
**(SELECT code_cours FROM cours WHERE date=‘2023-01-02’ OR
date=‘2023-01-25’)
Afficher les droit d ’inscription est la prime des responsibilities des cours -13
dont droit d ’inscription est en dessous de 6000DH et le prime de
responsibility est superieur a 100DH **(SELECT
droit_inscrip, prime_resp FROM cours WHERE droit_inscrip<'6000' AND
' prime_resp>'100
)
14 – Afficher toutes les information des cours don’t droit
d’inscription entre 300Dh et 400Dh
**(SELECT *FROM cours WHERE droit_inscrip BETWEEN 300 and 400)
15 – Afficher nom, prénom des participants don’t nom
commence par A
**(SELECT nom,prenom FROM participant WHERE nom LIKE 'A%’)

16 – Afficher nom,prénom des animateur don’t nom se termin


par A
**(SELECT nom,prénom FROM animateurs WHERE nom like ‘%A’)
17- Afficher nom,prénom des participants dont trozieme letter se nom et A
**(SELECT nom,prenom FROM participant WHERE nom LIKE '___A%')
18- Afficher nom,prénom des participant dont douzieme et trozieme sont
nom est SH
**(SELECT nom,prenom FROM participant WHERE nom like '__SH%' or '___SH%’)
19 – Afficher le Localite des participant de entreprise 1 dont nom se
termine par CH
**(SELECT localite FROM participant WHERE nom LIKE '%CH' AND code_entreprise='1’)
20- Afficher nom,prénom des participant dont nom deput par A et se
termine par F et prénom se termin par CH
**(SELECT nom,prenom FROM participant WHERE nom LIKE 'A%F' AND prenom LIKE '%CH’)
21-Afficher les adress des entreprise dont nom ne deput pas par A
**(SELECT adress FROM entreprise WHERE nom NOT LIKE 'A%')
22 – Compte le number de participant
**(SELECT COUNT(matricule) AS "nombre participant" FROM participant )

23 – pour afficher number des nom


**(SELECT COUNT(DISTINCT nom) AS 'NNP' FROM participant)

24 – Compter le nombre de participant de l’entreprise 1


**(SELECT COUNT(matricule) AS 'Nombre' FROM participant WHERE code_entreprise = 1)

25– Compter le nombre de participer de cours 26


**(SELECT COUNT(DISTINCT matricule) AS 'nombre' FROM participer WHERE code_cours = 3)

26 – Calculer la moyenne de tous les droit de l ’inscription


**(SELECT AVG(droit_inscrip) AS 'AVg' FROM cours WHERE code_cours = 2)

27– Calculer la moyenne des prime_resp de cours 26


**(SELECT AVG(prime_resp) AS 'avg' FROM cours = 2)
28 – Afficher code_cours dont droit_inscrip et plus eleve?
**(SELECT code_cours FROM cours WHERE droit_inscrip=(SELECT MAX(droit_inscrip) FROM cours))

29– Quel est le minimum de prime_resp ?


**(SELECT MIN(prime_resp) FROM cours)

30 – Quel le code_cours dont droit_inscrip et le plus Bas ?


**(SELECT code_cours FROM cours WHERE droit_inscrip=(SELECT MIN(droit_inscrip) FROM cours)

31 – Quel est le total de presteg par tout les animateur


**(SELECT SUM(nbre_heures) FROM animer)

32 – Quel est le total de presteg par animateur 1 pour le cours 26


**(SELECT SUM(nbre_heures) FROM animer WHERE matricule_animateur = 1 and code_cours = 1)
33– Afficher note total 2 presteg par chaque animateur
**(SELECT matricule_animateur,SUM(nbre_heures) FROM animer GROUP BY (matricule_animateur))

34– Afficher le total de prestes par chaque animateur pour les


animateur ayant prestes plus de 20 heures
**(SELECT matricule_animateur,SUM(nbre_heures) FROM animer GROUP BY (matricule_animateur)
HAVING SUM(nbre_heures)>20)

35 –Afficher le nombre de participant pour chaque entreprise


selon l’order deconden
**(SELECT code_entreprise, COUNT(matricule) FROM participant GROUP BY (code_entreprise)
ORDER BY(code_entreprise) DESC)
36 – Afficher le nombre de theme de chaque categorie pour les
categorie ayant plus de 3 theme et leur designation theme se
termen par B**(SELECT code_categorie, COUNT(code_theme) FROM theme WHERE designation
LIKE '%b' GROUP BY code_categorie HAVING COUNT(code_theme)>3
**(SELECT code_categorie, COUNT(code_theme) FROM theme WHERE designation LIKE '%b'
GROUP BY code_categorie HAVING COUNT(code_theme)=1

37 – Afficher pour chaque cours le code_cours nom,prenom


de animateur responsable
**(SELECT cours.code_cours, animateurs.nom, animateurs.prenom
FROM cours, animateurs
WHERE animateurs.matricule_animateur = cours.matricule_animateur)
script_ecole.sql

37 – Afficher pour chaque cours le code_cours nom,prenom


de animateur responsable
**(SELECT C.code_cours, A.nom , A.prenom
FROM cours C INNER JOIN animateurs A
ON A.matricule_animateur = C.matricule_animateur)
**(SELECT C.code_cours, A.nom , A.prenom
FROM cours C, animateurs A
WHERE A.matricule_animateur = C.matricule_animateur;)

38 – Afficher pour chaque participant le nom, address de son


entreprise
**(SELECT participant.nom, entreprise.adress
FROM participant , entreprise
WHERE entreprise.code_entreprise = participant.code_entreprise;)
39 – Pour chaque participant afficher le nom, prénom ansi que le
nbre_cours auxquels il a participe
**(SELECT COUNT(participer.code_cours), participer.matricule, participant.nom, participant.prenom
FROM participant , participer
#WHERE participer.matricule = participant.matricule
GROUP BY participer.matricule;)

40 – Afficher pour chaque cours le niveau designation de theme ,


et libelle de categorie
**(SELECT cours.niveau,theme.designation,categorie.lebelle
FROM cours ,theme , categorie
WHERE cours.code_theme = theme.code_theme AND theme.code_categorie =
categorie.code_categorie;)
41 – Afficher le matricule, nom, prénom ainsi que le nombre
total de prestege par chaque animateur
**(SELECT SUM(animer.nbre_heures), animateur.nom, animateur.prenom,
animer.matricule_animateur
FROM animateur , animer
WHERE animateur.matricule_animateur = animer.matricule_animateur;)

**(SELECT SUM(animer.nbre_heures), animateur.nom, animateur.prenom,


animer.matricule_animateur
FROM animateur , animer
WHERE animateur.matricule_animateur = animer.matricule_animateur
GROUP BY matricule_animateur;)

(Right and left) homework

Vous aimerez peut-être aussi