Académique Documents
Professionnel Documents
Culture Documents
Semestre 5
Pr. O. ZYTOUNE
2015
Droulement
2
Cours +TP=33h
Evaluation:
40%
Chap. 1
Notion de Bases de donnes
4
1.
2.
3.
4.
5.
6.
Plan de la leon:
Introduction;
Dfinition dune base de donnes et dun SGBD;
Diffrents types de bases de donnes;
Quelques SGBD existants;
Objectifs et avantages des BD et SGBD;
Conclusion.
Service clients :
Fichier client :
code client ;
Nom client ;
Adresse
Service commercial :
Ncommande ;
date de la commande ;
total de la commande ;
code client ;
Nom client ;
Adresse.
Introduction
6
Introduction:
Deux approches:
- Approche Fichiers: donnes en fonction du
traitement risque dincohrence;
- Approche base de donnes : intgration des
donnes dans un seul fichier/indpendance des
traitements.
Introduction: BD/Excel?
7
Redondance :
Rcriture
Une BD:
- Ensemble structur de donnes indpendant des
traitements effectuer.
- Reprsente le monde rel.
- Interroge et mise jour par des utilisateurs.
Un SGBD:
- logiciel permettant un utilisateur dinteragir avec une
BD.
- Interface entre la BD et les programmes dapplications
qui communiquent avec la BD.
- Permet:
-
Diffrents types de BD
10
Modle hirarchique
11
Modle hirarchique
12
Inconvnients :
Redondance
de donnes.
Manipulation difficile de donnes htrognes.
Modle rseau
13
Modle relationnel
14
Le modle Objet
15
Diffrents types de BD
16
Hirarchiques : IMS;
Les grosses BD
Oracle
Informix
Sybase
ProsgreSQL
DB2
Ingres
(SQLServer)
Bases objet :
O2
Gemstone
ObjectStore
Jasmine
Objectifs et avantages
20
Indpendance physique
21
Indpendance logique
22
Les donnes doivent tre protges des accs non autoriss ou mal
intentionns.
Il doit exister des mcanismes permettant dautoriser, contrler et
enlever des droits daccs certaines informations nimporte
quel usager.
Exemple, un chef de service pourra connatre les salaires des personnes quil
dirige, mais pas de toute lentreprise.
Exercice
28
Indiquer
b) Changer
c)
Exercice
29
tant
Nom de la plante
Instructions
de la plantation
Luminosit
ncessaire
Conditions
Cot
Conditions
de sol
Solution de lexercice N2
30
Ce
Il
Mais
Conclusion
31
Chap. 2
Modle Relationnel
32
Plan
Introduction
Concepts
de base
Algbre relationnelle
Rgle de passage du MCD au MLD
Exemple de tables
36
3 champs
Nom de la table
Commande NComman
de
4 enregistrements
DateCommande Montant
27
13/2/2007
120
65
12/1/2008
34
10/06/2006
27
34
14/12/2007
1500
Chaque
Soit lattribut Ai est une variable qui prend ses valeurs dans un domaine Di
Soit U = {A1 , A2, ..., An}
Une relation(table) r dfinie sur U est un sous-ensemble du produit
cartsien D1 D2 Dn
Tuple & cl
39
u, v r, i 1,2,..., n
u.Ai v.Ai
si
alors
uv
K A1, A2,..., An
u, v r , si
u.K v.K
alors
uv
Le
Le
Exemple de relations
42
Propritaires
numero
nom
prenom
naissance
5
13
76
Madani
Azzouz
Daoud
Hossame
Mohcine
Ali
04-fvr-80
15-mai-76
29-nov
Vhiculs
immatriculation
3452
9835
1234
9878
A
B
A
A
13
72
2
4
marque
BMW
Renault
Peugeot
BMW
proprietaire
13
76
5
76
La valeur NULL
44
Dans
INTGRIT DE DOMAINE
INTGRIT DE RELATION
INTGRIT DE RFRENCE
INTGRIT DE DOMAINE
46
QTE_COMMANDE
INTGRIT DE DOMAINE
Intgrit de la relation
48
Unicit de la cl primaire;
Aucun des attributs de la cl primaire ne doit tre NULL
(du fait que la cl primaire identifie de manire unique
les tuples dune relation).
Cl trangre
La connaissance dun numro de
commande nous permet de retrouver de
faon unique un numro de client.
Dpendance
fonctionnelle
Cls trangre
n
108
Cls trangre
Un
Dans
Dans
Relation
Exemples
Un
Un
IDREC
NOM
PRENOM
Benali
Wail
Touimi
Rahma
Table Recteur
IDUNIV
NOM
VILLE
IDREC
100
Mohamed V
Rabat
200
Hassan II
Mohamdia
Table Universit
IDPROP
NOM
PRENOM
Razi
Mohamed
Nafia
Mostafa
Adili
Said
Propritaire
MATRICULE
MODELE
IDPROP
1234 1
Peugeot 205
7588 48
Renault 19
25254 72
Hyundai Acc
25482 6
Toyota Cor
Voiture
Exercice
60
Considrons
N dpartement
NOM
LIEU
Effectif
20
Ventes
Rue FAR
10
10
Marketing
Rue Fs
10
R&D
Bd Oqba
15
15
Informatique Anfa
13
Comptabilit Agdal
23
Solution de lexercice
61
10
15
R&D
Bd Oqba
15
Informatique Anfa
13
Comptabilit Agdal
23
Normalisation
62
La normalisation : exemple
63
Une entreprise de vente de bateaux qui souhaite constituer un SI relatif son activit
Problmes potentiels
redondance de donnes :
un client potentiel ne peut tre enregistr dans la BD sil na pas encore achet de
bateau
lorsquun client vend son bateau, il est supprim du systme dinformation
Comment normaliser ?
64
Forme Normale
Une
Dpendance Fonctionnelle
65
Dfinition
une DF est une assertion sur toutes les extensions possibles dune relation et pas
uniquement sur ses n-uplets actuels
Condition
Premire Forme Normale
tous les attributs nappartenant pas la cl sont en
dpendance fonctionnelle lmentaire avec la cl
ds quun attribut non-cl dpend dune partie de la cl, la relation nest pas en 2FN.
Exemple
DF
num_livre titre_livre
Exemple
DF
num_dept nom_dept
dept(num_dept, nom_dept)
Tables,
entits/relations
Macros,
automatiser des actions excuter
Requtes,
interrogations
Formulaires,
visualisation de
tous les
attributs/Saisie
tats,
documents
publier
Tables, Requtes
Formulaires, tats
Tables,
entits/relations
Requtes,
interrogations
Formulaires,
visualisation de
tous les attributs
tats,
documents
publier
Contrainte de cl primaire :
Une fois que la cl primaire sera dsigne et
le champ dclar sans doublons, les saisies
de valeurs identiques seront impossibles.
Choix du type :
Il sagit de prciser quel type de valeurs sera
stock dans le champ.
Il existe trois grands types (numrique,
date, texte). Pour les champs de type texte, il
est possible dintervenir sur la taille du
champ, de manire optimiser la place
occupe sur le support de stockage.
Contrle de la saisie :
Pour faciliter la saisie, un masque, une valeur
par dfaut, peuvent tre mis en place.
Contrainte de domaine :
Il est possible, pour un champ donn, de
limiter les valeurs autorises la saisie.
Celles-ci sont indiques dans la case
Valide si , un message derreur peut y tre
associ.
4.
5.
6.
7.
8.
9.
Texte
max : 255 caractres
Mmo
max : 65 535 caractres
Numrique
entier, simple prcision, nombre dcimale, etc.
Date/Heure
anne 1009999, 12 ou 24 h
Montaire
nombres rels de 1 4 dcimales
NumroAuto
incrmentation automatique
Oui/Non
Vrai/Faux , Actif/inactif
Objet OLE (Object Linking and Embedding)
feuilles de calcul, sons, vidos, graphiques
Lien Hypertexte
chemin complet (local ou internet)
Symbole
Signification
Chiffre de 0 9 obligatoire
Chiffre ou espace ou + ou -
Lettre de A Z obligatoire
&
<
>
sens
exemples
00 00 00 00 00
Numro de tlphone
06 12 34 56 78
00 999
>CCCCCCCCCCCCCCC
CCCCC
>C<CCCCCCCCCCCCC
CCCCCC
Prnom de maximum 20
caractres, 1re lettre capitale,
lettres suivantes bas de casse
Ali ou Said
0 00 00 00 0000
1 53 06 07 0557
00/00/0099
07/06/1953 ou 22/02/53
(000) 000-0000
75 123 ou 59
(207)555-0199 ou
(165)345-2025
sens
exemples
(999) 000-0000!
(207)555-0199 ou ()3452025
(000) AAA-AAAA
#999
>L????L?000L0
(000) 000-0000
(206) 555-TELE
2345 ou -20
GREENGR339M3 ou
MAY R462B7
(207)555-0199 ou
(165)345-2025
GVdK = CUY
Les filtres
85
Normalisation: Inconvnients
86
Algbre relationnelle
87
Dfinition:
Collection doprations formelles qui agissent sur des
relations et produisent une relation en rsultat.
Dans la plupart des systmes relationnels, la rponse une
requte sobtient par lutilisation dun ou plusieurs
oprateurs relationnels.
Oprateurs unaires :
Oprateurs binaires :
Algbre relationnelle
88
Soit Filtrer :
une expression dans une algbre dite algbre relationnelle, i.e., des
oprations sur des tables
Slection (filtre / critres)
Projection (choix de colonnes)
Diffrence (suppression de lignes)
Soit Combiner :
Projection
(not R)
Projection
90
Slection
91
Slection
92
Oprateurs de comparaison :
, <, >,, , BETWEEN (entre), IN (dans),
LIKE(comme)
=,
or, not
Valeurs NULL
Union
La fusion de deux relations est considre
Diffrence
Les tuples dune relation qui nexistent pas dans une seconde relation sont considrs
Produit cartsien
Toutes les combinaisons entre tuples de 2 relations sont considres
Union
94
Diffrence
95
Produit cartsien
96
R R'
jointures
97
Jointure naturelle
Thta-produit dont la condition est une galit de valeurs entre des
attributs de deux relations
Jointure extrieure
Jointure naturelle laquelle on ajoute les tuples de chaque relation
nayant pas trouv de correspondance dans lautre
Semi-jointure
Jointure naturelle laquelle on ajoute les tuples de la premire
relation nayant pas trouv de correspondance dans lautre
Jointure naturelle
98
R C R'
Combinaison doprateurs
99
(
immatriculation
proprietairenumero
Nom_imb
Table Immeuble
Adresse
Nb
tage
Ann
e
Nomgrant
Table Personne
Nom
Ag Profession
e
Alami
54
Architecte
Atif
39
Mdecin
Barhou
m
58
Avocat
Dahbi
65
Retrait
Nom_imb
No_app
Nom_occ
Anne_h
Annakhil
22 Rue Azrou,
Rabat
10
2009
Alami
Firdaous
15 bd des Far, Fs
2000
Dahbi
Nom_imb
No_app
Superficie
Etag
e
Annakhil
150
Annakhil
100
Annakhil
Alami
2009
Annakhil
10
90
Annakhil
Dahbi
2009
Firdaous
120
Firdaous
Atif
2001
Firdaous
10
100
Firdaous
10
Barhoum
2005
Firdaous
11
80
Table Appartement
Table Occupant
Exercice
101
2- nom-Imb(Immeuble);
3- nom-Imb, No_app(superficie>100(Appartement));
6-nomgrant, Superficie
n o m,Age
(Im meuble
Appartement )
Exercice
102
2. Nom des personnes ayant emmnag avant 1994. 3. Qui habite le Annakhil?
103
CHAPITRE 3 :
INTRODUCTION SQL
Sommaire du chapitre 3
104
Prsentation
du langage SQL;
Types de donnes;
Requtes daction;
Requtes de slection;
Requtes de contrle.
18-dc.-15
18-dc.-15
Une troisime norme (SQL3) est sortie en 2003 par l'ANSI et l'ISO.
18-dc.-15
18-dc.-15
Utilisation de SQL :
En
18-dc.-15
Types de donnes
109
18-dc.-15
Types de donnes
110
18-dc.-15
Conventions
111
Les conventions relatives aux noms des tables et des champs varient
quelque peu d'un SGBD l'autre:
Le nombre de caractres ne doit pas tre trop grand (64 dans Access,
18 30 dans d'autres SGBD) ;
Certains SGBD requirent que le nom d'un champ commence par une
lettre, mais ce n'est pas le cas d'Access ;
18-dc.-15
Requtes daction
112
faut prciser :
Le
nom de la table;
La description de ses colonnes : nom, type de donnes et contraintes.
Linstruction
18-dc.-15
Cration de table
113
18-dc.-15
18-dc.-15
18-dc.-15
18-dc.-15
18-dc.-15
18-dc.-15
ADD
DROP
MODIFY
18-dc.-15
TABLE Nom_table
En
18-dc.-15
Exemples dajout :
Ajouter une colonne AGE (entier) dans la table CLIENT :
ALTER TABLE CLIENT
ADD AGE INTEGER;
Ou
ALTER TABLE CLIENT
ADD Column AGE INTEGER;
Ajouter une colonne DATECOMPTE (date) dans la table
COMPTE :
ALTER TABLE COMPTE
ADD DATECOMPTE DATE;
ENCG Knitra**Gestion des bases de donnes
18-dc.-15
Exemples de suppression :
Supprimer la colonne ADRAGENCE de la table AGENCE :
ALTER TABLE CLIENT
DROP ADRAGENCE;
18-dc.-15
Modifier
18-dc.-15
18-dc.-15
18-dc.-15
DROP
TABLE Nom_table
Exemples
DROP
TABLE CLIENT
DROP TABLE AGENCE
DROP TABLE COMPTE
18-dc.-15
18-dc.-15
Insertion denregistrements
128
18-dc.-15
Insertion denregistrements
129
Exemple:
18-dc.-15
Linstruction
On
Syntaxe
:
UPDATE table SET nouvelles valeurs WHERE critres
18-dc.-15
18-dc.-15
Exemples :
18-dc.-15
Suppression denregistrements
133
18-dc.-15
Suppression denregistrement
134
Exemples :
Effacez
Ou
DELETE
18-dc.-15
SELECT [Prdicat]
18-dc.-15
Interprtation:
Projection : SELECT FROM
Restriction ou Jointure : WHERE
Tri : ORDER BY ASC / DESC
[ ] signale une clause optionnelle, c..d on peut utiliser la requte SELECT sans
cette clause
Prdicat: Lun des prdicats suivants: ALL, DISTINCT, DISTINCTROW, TOP ou
PERCENT.
18-dc.-15
18-dc.-15
Exemples
Soit la table ACTEURS :
ACTEURS (N_act, Nom, Prnom, Nationalit, Salaire, Age, Films)
Donner une requte SQL pour afficher tous les champs et tous les enregistrements
de la table ACTEURS
SELECT * FROM ACTEURS;
18-dc.-15
AVG ()
MAX ()
MIN ()
COUNT (*)
18-dc.-15
18-dc.-15
18-dc.-15
18-dc.-15
: gal
<> : diffrent
< : infrieur strict
> : suprieur strict
<= : infrieur ou gal
>= : suprieur ou gal
Comment
Numriques
(ET) : conjonction.
OR (OU) : disjonction
NOT (NON) : ngation
L'oprateur
Afficher tous les noms dacteurs dont lge est suprieur ou gal 25
SELECT Nom FROM ACTEURS WHERE Age >=25;
Afficher tous les noms dacteurs dont la nationalit est amricaine et lge est
suprieur 25
SELECT Nom FROM ACTEURS WHERE (Nationalit="amricaine") AND (Age > 25);
Afficher tous les noms dacteurs dont la nationalit est amricaine ou lge est
suprieur 25
SELECT Nom FROM ACTEURS WHERE (Nationalit="amricaine") OR (Age >25);
18-dc.-15
Afficher tous les acteurs dont la nationalit est amricaine, marocaine ou gyptienne
SELECT * FROM ACTEURS WHERE Nationalit IN ("Amricaine", "Egyptienne",
"marocaine");
Afficher tous les noms dacteur ne commenant pas par D et ayant 4 lettres
SELECT Nom FROM ACTEURS WHERE Nom NOT LIKE "D*" AND Nom
LIKE "????";
18-dc.-15
Exemple 2
Soit les tables PRODUITS, COMMANDES, DETAILS et EMPLOYES cres sous
ACCESS:
PRODUITS (Rf , Nompr, Nfournisseur, Pu)
COMMANDES(Ncommande, Codecli, Nemploy, Date commande)
DETAILS(Ncommande, Rf , Quantit, Remise)
18-dc.-15
Les jointures
Jointure interne: utilise INNER JOIN. Ne sont incluses dans le rsultat
final que les lignes qui se correspondent dans les deux tables.
la jointure externe gauche, dans laquelle INNER JOIN est remplac
par LEFT JOIN. Toutes les lignes de la premire table sont incluses dans
le rsultat de la requte, mme s'il n'existe pas de ligne correspondante
dans la seconde table ;
la jointure externe droite, dans laquelle INNER JOIN est remplac par
RIGHT JOIN. Toutes les lignes de la seconde table sont incluses dans le
rsultat de la requte, mme s'il n'existe pas de ligne correspondante
dans la premire table.
ENCG Knitra**Gestion des bases de donnes
18-dc.-15
(Ou bien )
18-dc.-15
Afficher tous les produits (Rf, Nompr) qui ont t vendus par ordre dcroissant
selon le champ Rf
SELECT PRODUITS. Rf, Nompr
FROM PRODUITS , DETAILS
Par dfaut, le rsultat dune requte slection est tri selon lordre
18-dc.-15
En utilisant la table dtails, afficher pour chaque commande le total de quantits des
produits vendus
SELECT Ncommande, SUM(Quantit) AS [Totale quantits vendues]
FROM DETAILS
GROUP BY Ncommande ;
Afficher pour chaque commande le total de quantits des produits vendus et tel que ce
total est > 60
SELECT Ncommande, SUM(Quantit) AS [Totale quantits vendues]
FROM DETAILS
GROUP BY Ncommande
18-dc.-15
Afficher pour chaque commande le total de quantits des produits vendus avec une
remise de 6% et tel que ce totale est > 60
SELECT Ncommande, SUM(Quantit) AS [Totale quantits vendues]
FROM DETAILS
WHERE Remise=0.06
GROUP BY Ncommande
HAVING SUM(Quantit) > 60 ;
ENCG Knitra**Gestion des bases de donnes
18-dc.-15
Afficher les employs de la ville dAsilah qui ont vendu plus de 100 commandes
SELECT EMPLOYES.Nemploy, COUNT(*) AS [Nombre de commandes vendues]
FROM COMMANDES, EMPLOYES
WHERE EMPLOYES.Nemploy=COMMANDES.Nemploy AND Ville ="Asilah"
GROUP BY EMPLOYES.Nemploy
18-dc.-15
Nom_imb
Adresse
Nb tage
Anne
#Nomgrant
Nom
Age
Profession
Annakhil
10
2009
Alami
Alami
54
Architecte
Firdaous
15 bd des Far, Fs
2000
Dahbi
Atif
39
Mdecin
Barhoum
58
Avocat
Dahbi
65
Retrait
Table Immeuble
Table Personne
#Nom_imb
No_app
Superficie
Etage
Annakhil
60
#Nom_imb
#No_app
#Nom_occ
Anne_h
Annakhil
100
Annakhil
Alami
2009
Annakhil
10
90
Firdaous
120
Annakhil
Dahbi
2009
Firdaous
10
100
Firdaous
Atif
2001
Firdaous
11
80
Firdaous
10
Barhoum
2005
Table Appartement
ENCG Knitra**Gestion des bases de donnes
Table Occupant
18-dc.-15
Exercice
155
18-dc.-15
Exercice
156
10. Noms des personnes qui habitent au dernier tage de leur immeuble
18-dc.-15
Exercice
157
13. Qui habite dans un immeuble de plus de 10 tages et un appartement de plus de 100 m 2?
16. Le prix de location par mois et par mtre carr est de 40DH. Afficher la recette par mois;
18/12/2015