Documente Academic
Documente Profesional
Documente Cultură
Bases de donnes
M1 conomie et Socit conomie et Management Finance
Anne 2010-2011
Jrme Darmont
Jour
Horaire
Salle
Vendredi 24/09/10
12h00-13h45
Amphi Say
Vendredi 08/10/08
12h00-13h45
Amphi Say
Vendredi 22/10/08
12h00-13h45
Amphi Say
Vendredi 05/11/08
12h00-13h45
Amphi Say
Vendredi 12/11/08
12h00-13h45
Amphi Say
Vendredi 19/11/08
12h00-13h45
Amphi Say
http://eric.univ-lyon2.fr/~jdarmont/
Bases de donnes
Plan du cours
http://eric.univ-lyon2.fr/~jdarmont/
Organisation en fichiers
Introduction
Modle UML
Modle relationnel
Langage SQL
Saisie
Traitement
Fichier
Utilisateur
Fichier
Utilisateur
Saisie
Traitement
tat de sortie
Utilisateur
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
Utilisateur
Saisie
+
Contrles
Base de
Donnes
Traitements
tats de sortie
Utilisateur
Utilisateur
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
Avantages de lorganisation BD
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
Dfinitions
Proprits de lorganisation BD
Conception a priori
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
Manipulation facile des donnes : un utilisateur noninformaticien doit pouvoir manipuler simplement les
donnes (interrogation et mise jour).
http://eric.univ-lyon2.fr/~jdarmont/
Bases de donnes
10
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
11
Bases de donnes
12
Monde
Monderel
rel
Analyse
Conception
Transformation en
modle logique
Bases de donnes
Bases de donnes
Schma
Schma
logique
logique
Langage de
Manipulation de
Donnes (LMD)
http://eric.univ-lyon2.fr/~jdarmont/
13
Introduction
Modle UML
Modle relationnel
Langage SQL
Schma
Schma
interne
interne
http://eric.univ-lyon2.fr/~jdarmont/
14
Gnralits
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
15
Classes et attributs
Bases de donnes
Spcifique un
SGBD
Conception
physique
Indpendant d'un
SGBD
Schma
Schma
conceptuel
conceptuel
Plan du cours
Spcifications
Spcifications
dedelalaBD
BD
http://eric.univ-lyon2.fr/~jdarmont/
16
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
17
Types dattribut
Type dattribut :
Nombre entier
Nombre rel
Chane de caractres
Date
http://eric.univ-lyon2.fr/~jdarmont/
Bases de donnes
18
Instances
Classe : ex. CLIENT
19
Identifiants
http://eric.univ-lyon2.fr/~jdarmont/
Bases de donnes
Albert Dupont
James West
Marie Martin
Gaston Durand
...
Prnom
Albert
James
Marie
Gaston
Justine
Nomie
Albert
Date de Naissance
01/06/70
03/09/63
05/06/78
15/11/80
28/02/75
18/09/57
23/05/33
Etc.
...
...
...
...
...
...
...
Bases de donnes
20
Identifiants
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
21
Identifiants
Bases de donnes
Nom
Dupont
West
Martin
Durand
Titgoutte
Dupont
Dupont
Prnom
Albert
James
Marie
Gaston
Justine
Nomie
Albert
http://eric.univ-lyon2.fr/~jdarmont/
Date de Naissance
01/06/70
03/09/63
05/06/78
05/11/80
28/02/75
18/09/57
23/05/33
22
Convention graphique :
NB : Ne pas confondre avec
les attributs de classe UML
dont cest la notation usuelle
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
23
Associations
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
24
1
0..1
0..* ou *
1..*
M..N
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
25
Associations 1-1
Un et un seul
Zro ou un
Zro ou plus
Un ou plus
De M N (M, N entiers)
Lire "Un client commande multiplicit (1) produit(s)".
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
26
Associations 1-N
http://eric.univ-lyon2.fr/~jdarmont/
http://eric.univ-lyon2.fr/~jdarmont/
27
Associations 0 ou 1-N
Bases de donnes
Bases de donnes
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
29
Associations M-N
Classes-associations
http://eric.univ-lyon2.fr/~jdarmont/
30
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
Exemple complet
Exemple complet
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
32
Exemple complet
1.
2.
3.
4.
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
31
33
Exemple complet
34
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
35
Plan du cours
Gnralits
Introduction
Modle UML
Modle relationnel
Langage SQL
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
36
Optimisation de requtes
37
38
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
39
Contraintes dintgrit
http://eric.univ-lyon2.fr/~jdarmont/
N-uplets
Bases de donnes
Relations et attributs
Bases de donnes
Indpendance physique
Traitement du problme de redondance des donnes
LMD non procduraux (faciles utiliser)
Devenir un standard
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
40
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
41
Contraintes dintgrit
Date
Lieu
Codemat#
ECOS101
15/01/2011
Amphi Say
ECO
ECOS102
16/01/2011
Amphi Say
ECO
GESS201
25/05/2011
Salle 201
GES
INFOS101
20/01/2011
Salle 101
INFO
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
42
Traduction UML-relationnel
1.
MATIERE
EPREUVE
Bases de donnes
Codemat
Intitul
ECO
conomie
GES
Gestion
INFO
Informatique
http://eric.univ-lyon2.fr/~jdarmont/
43
Traduction UML-relationnel
2.
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
44
Traduction UML-relationnel
3.
45
4.
http://eric.univ-lyon2.fr/~jdarmont/
http://eric.univ-lyon2.fr/~jdarmont/
Traduction UML-relationnel
Bases de donnes
Bases de donnes
46
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
47
Traduction UML-relationnel
Problme de la redondance
Quantit
300
1000
78
250
NumFour
901
902
904
901
Adresse
Quai des brumes
Quai Claude Bernard
Quai des Marans
Quai des brumes
http://eric.univ-lyon2.fr/~jdarmont/
48
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
50
Dpendances fonctionnelles
http://eric.univ-lyon2.fr/~jdarmont/
49
Objectifs de la normalisation
Bases de donnes
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
51
Proprits des DF
Rflexivit :
Si Y X alors X Y.
Augmentation :
Si W Z et X Y alors X, Z Y, W.
Transitivit :
Si X Y et Y Z alors X Z.
Bases de donnes
NumProd Dsi
Dsi Prix
http://eric.univ-lyon2.fr/~jdarmont/
52
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
53
Proprits des DF
Pseudo-transitivit :
Si X Y et Y, Z T alors X, Z T.
Union :
Si X Y et X Z alors X Y, Z.
Dcomposition :
Si Z Y et X Y alors X Z.
NB : La notation X, Y signifie X Y.
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
54
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
56
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
R2 (NoChanteur, Nom).
http://eric.univ-lyon2.fr/~jdarmont/
57
Bases de donnes
55
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
58
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
59
10
Algbre relationnelle
Oprateurs ensemblistes
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
60
Oprateurs ensemblistes
http://eric.univ-lyon2.fr/~jdarmont/
Bases de donnes
Oprateurs ensemblistes
Intersection : T = R S ou
T = INTERSECT (R, S)
R et S doivent avoir mme schma.
Notation graphique :
Notation graphique :
R
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
62
Oprateurs ensemblistes
61
http://eric.univ-lyon2.fr/~jdarmont/
Bases de donnes
63
Produit cartsien
Produit cartsien : T = R x S
ou T = PRODUCT (R, S)
ex.
NumProd
0
1
Dsi
P1
P2
NumFour
10
20
30
RaisonSoc
F1
F2
F3
NumFour
10
10
20
20
30
30
RaisonSoc
F1
F1
F2
F2
F3
F3
Notation graphique :
T
x
R
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
64
Bases de donnes
NumProd
0
1
0
1
0
1
Dsi
P1
P2
P1
P2
P1
P2
http://eric.univ-lyon2.fr/~jdarmont/
65
11
Oprateurs ensemblistes
Division
ex.
NumCli
1
1
1
2
3
3
Date
22/09/99
22/09/99
10/10/99
15/10/99
22/09/99
10/10/99
Quantit
1
5
2
9
1
2
Date
Quantit
22/09/99
1
10/10/99
2
R
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
66
Oprateurs spcifiques
Bases de donnes
NumCli
1
3
http://eric.univ-lyon2.fr/~jdarmont/
67
Oprateurs spcifiques
Notation graphique :
Notation graphique :
A, B, C
C
R
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
68
69
Nom, Date,
Quantite
Notation graphique :
T
A
R
NumCli
NumCli
=
CLIENT COMMANDE
B
S
*Requte
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
Exemple de requte*
Oprateurs spcifiques
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
70
Bases de donnes
: enchanement doprations
http://eric.univ-lyon2.fr/~jdarmont/
71
12
Exemple de requte
Exemple de requte
CO
NumCli
1
2
3
Nom
C1
C2
C3
NumCli
1
3
3
Date Quantit
22/09/99
1
22/09/99
5
22/09/99
2
http://eric.univ-lyon2.fr/~jdarmont/
Bases de donnes
72
Exemple de requte
CL >< CO
CL.NumCli
1
3
3
Nom
C1
C3
C3
Nom
C1
C3
C3
CO.NumCli
1
3
3
Date Quantit
22/09/99
1
22/09/99
5
22/09/99
2
http://eric.univ-lyon2.fr/~jdarmont/
74
Plan du cours
CO.NumCli
1
1
1
3
3
3
3
3
3
Date Quantit
22/09/99
1
22/09/99
1
22/09/99
1
22/09/99
5
22/09/99
5
22/09/99
5
22/09/99
2
22/09/99
2
22/09/99
2
http://eric.univ-lyon2.fr/~jdarmont/
73
http://eric.univ-lyon2.fr/~jdarmont/
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
75
Gnralits
Introduction
Modle UML
Modle relationnel
Langage SQL
Bases de donnes
Bases de donnes
Nom
C1
C2
C3
C1
C2
C3
C1
C2
C3
Bases de donnes
CL.NumCli
1
2
3
1
2
3
1
2
3
76
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
77
13
Contraintes dintgrit
Mot cl CONSTRAINT
Cl primaire :
PRIMARY KEY (cl)
Cl trangre :
FOREIGN KEY (cl) REFERENCES table(attribut)
Contrainte de domaine :
CHECK (condition)
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
78
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
79
Modifications structurelles
NumCli NUMBER(8),
Nom VARCHAR(1000),
DateNaiss DATE,
Salaire NUMBER(8,2),
NumEmp NUMBER(3),
Ajout dattributs
ALTER TABLE nom_table ADD (attribut TYPE, );
ex. ALTER TABLE Client ADD (tel NUMBER(8));
Modifications dattributs
ALTER TABLE nom_table MODIFY (attribut TYPE, );
);
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
80
Modifications structurelles
Suppression d'attributs
ALTER TABLE nom_table DROP COLUMN attribut, ...;
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
81
Index
Ajout de contrainte
ALTER TABLE nom_table
ADD CONSTRAINT nom_contrainte dfinition_contrainte;
ex. ALTER TABLE Client
ADD CONSTRAINT sal_ok CHECK (salaire > 0);
Exemple :
CREATE INDEX Idx_etu ON Etudiant (Nom);
Suppression de contrainte
ALTER TABLE nom_table DROP CONSTRAINT nom_contrainte;
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
82
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
83
14
Suppression de n-uplets
ex. DELETE FROM Etudiant
WHERE Ville = Lyon;
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
84
Tri du rsultat
ex. Par ordre alphabtique [inverse] de nom
SELECT * FROM Etudiant
ORDER BY Nom [DESC];
http://eric.univ-lyon2.fr/~jdarmont/
http://eric.univ-lyon2.fr/~jdarmont/
85
Projection et restriction
Champs calculs
ex. Transformation de notes sur 20 en notes sur 40
SELECT Note * 2 FROM Passe;
Bases de donnes
Bases de donnes
86
Oprateurs de restriction
Projection
ex. Noms et Prnoms des tudiants, uniquement (pas les
autres attributs)
SELECT Nom, Prnom FROM Etudiant;
Restriction
ex. tudiants qui habitent Lyon
SELECT * FROM Etudiant
WHERE Ville = Lyon;
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
87
Oprateurs de restriction
sur-Sane%
%sur%
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
88
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
89
15
Oprateurs de restriction
Fonctions dagrgat
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
90
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
91
Exemple
Table PASSE
NumEtu
1000
3000
3000
CodeEpreuve
InfoS2
EcoS1
InfoS1
Note
13.0
12.5
15.0
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
92
Jointure
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
93
Jointure
ex. Idem avec le numro d'tudiant en plus
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
94
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
95
16
Jointure
Prdicats dexistence
http://eric.univ-lyon2.fr/~jdarmont/
96
Prdicats de dnombrement
98
Groupement
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
99
Oprations ensemblistes
97
Attention :
http://eric.univ-lyon2.fr/~jdarmont/
http://eric.univ-lyon2.fr/~jdarmont/
Bases de donnes
Groupement
Bases de donnes
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
100
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
101
17
Tutoriel SQL
Plan du cours
Introduction
Modle UML
Modle relationnel
Langage SQL
http://eric.univ-lyon2.fr/~jdarmont/tutoriel-sql/
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
102
Bases de donnes
http://eric.univ-lyon2.fr/~jdarmont/
103
18