Vous êtes sur la page 1sur 29

Objectifs pdagogiques

Matriser les outils mthodologiques pour la conception de bases de


donnesSavoir mettre en pratique les outils technologiques classiques pour la
ralisation de bases de donnesAcqurir une exprience de conception et de
ralisation informatique en quipe travers un projet de dveloppement dunsite
webDcouvrir des projets industriels rels en rapport avec les bases de
donnesDvelopper un esprit critique face aux technologies (veille, valuation,
choix)Faire rflchir sur ce quest le mtier dingnieur (articulation mthodetechnique)
Rsum
L'objectif de l'UV est de d'amener les tudiants matriser la conception de base
s de donnes relationnelles etrelationnelles-objet. Cette matrise reposera sur des
comptences mthodologiques de modlisation conceptuelle et logique,ainsi que
sur des comptences technologiques de mise en oeuvre au sein de SGBD
typiques (tels que Access, MySQL, Oracleet PosgreSQL) et travers les langages
couramment utiliss en BD (tels que SQL, PHP ou Java). Les tudiants mneront
toutau long du semestre un projet qui servira de cadre d'application en situation
des concepts pralablement tudis etexpriments. Des prsentations de
projets rels de conception de BD seront galement proposs par des
intervenantspraticiens de la discipline

Section A3. Mapping E-A vers relationnelobjet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


173
1. Entit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
........
173
2. Attributs composites. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
...........
173
3. Attributs multi-valus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
............
173
4. Attributs drivs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
..........
173
5. Association 1:N. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
..........
173
6. Association N:M. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
..........
174
7. Hritage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
........
174
En rsum.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.............
174
Partie B. Quelques questions/rponses sur le relationelobjet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

174
Question Rponse 1. Association 1:N. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
..............
174
Question Rponse 2. Association M:N. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
..............
175
Question Rponse 3. Association M:N. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
..............
175
Exercice rcapitulatif X. Passage UML vers relationnelobjet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
175
IX- SGBDRO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . 177
Partie A. Implmentation du
RO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
177
Section A1. SQL3 (implmentation Oracle 9i). . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
..................
177
1. Les nouveaux types de donnes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
...............
177
2. Les types de donnes abstraits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
..............
177
3. Nested tables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
..........
178
4. Tables d'objets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
..........
178

5. Insertion
d'objets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
178
6. Slection dans des objets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
............
179
7. Slection dans des tables
imbriques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
179
8. Manipulation d'OID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
...........
180
Section A2. Exemples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
..............
181
1. Gestion de cours. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
...........
181
2. Gestion de cours simplifie (version avec
OID). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
183
Section A3. Pratique du relationnel-objet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
..................
184
Exercice n21. Une entreprise. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.............
184
Exercice n22. Des voitures et des hommes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.................
187
Exercice rcapitulatif XI. Attributs multi-valus :
Rflexion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

187
En rsum.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.............
189
Exercice rcapitulatif XI. Passage conceptuel
logique. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
189
X- Optimisation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . 191
Partie A. Optimisation du schma
interne. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
191
Section A1. Introduction l'optimisation des
BD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
191
Schma interne et performances des applications. . . . . . . . . . . . . . . . . . . . . . . . . .
..................
191
1. Evaluation des besoins de performance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
................
192
2. Indexation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
........
192
3. Dnormalisation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
..........
193
4. Groupement de tables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
............
194
5. Partitionnement de table. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.............
194

6. Vues concrtes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
..........
195
Section A2. Pratique de
l'optimisation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
195
Exercice n23. Big Brother is Watching You. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
................
195
14 Conception de bases de donnes

En rsum.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.............
196
XI- Web et Java. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . 197

Partie A.
Web. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
........
197
Section A1. Architecture trois tiers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.................
197
1. Notions d'achitecture client-serveur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
...............
197
2. Notions d'achitecture 3tier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
198
3. Notions de serveur Web. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.............
200
4. Architecture Web. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
...........
200
Section A2. Rappels
HTML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
201
1. Formulaires HTML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
..........
201
Section A3. Introduction
PHP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
202
1. Prsentation de
PHP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
202
2. Principes de PHP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
...........

202
3. Syntaxe PHP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.........
203
4. Variables en PHP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
..........
203
5. Structures de contrle en PHP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
..............
203
6. Boucles en PHP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.........
204
7. Fonctions en PHP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
..........
204
8. Objets en PHP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.........
204
9. Envoi de texte au navigateur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
..............
204
10. Formulaires HTML et PHP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
............
205
Section A4. PHP et
BD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
205
1. Interfaage avec Oracle (API ORA). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
..............
205
2. Interfaage avec Oracle (API
OCI). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

206
3. Architecture PHP/Oracle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
............
208
Partie B.
Java. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
........
208
Section B1. Java et BD (JDBC). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
...............
208
1. JBDC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.......
208
2. Structure globale d'un appel BD depuis
Java. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
209
3. Syntaxe d'un appel BD depuis
Java. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
209
4. Insertion et slection dans Oracle depuis Java. . . . . . . . . . . . . . . . . . . . . . . . . . .
.................
210
5. Espace de requte prpar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.............
210
6. Insertion en utilisant un espace prpar dans Oracle. . . . . . . . . . . . . . . . . . . . . .
...................
211
7. Appel Oracle PL/SQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
...........
211

8. Insertion en utilisant un appel Oracle PL/SQL. . . . . . . . . . . . . . . . . . . . . . . . . . . .


.................
212
Section B2. Introduction aux servlets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.................
212
1. Prsentation des servlets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.............
212
2. Implmenter une servlet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.............
213
3. Quelques mthodes de la classe HttpServlet. . . . . . . . . . . . . . . . . . . . . . . . . . . .
.................
213
4. Formulaires HTML et servlet (HttpServletRequest). . . . . . . . . . . . . . . . . . . . . . . .
..................
213
5. Cration de la rponse (HttpServletResponse). . . . . . . . . . . . . . . . . . . . . . . . . . .
.................
213
6. Cycle de vie d'une servlet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.............
214
Section B3. Servlets et
BD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
215
1. Exemple d'appel SQL depuis une servlet sous
Oracle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
215
2. Exemple d'appel Oracle PL/SQL depuis une
servlet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
216

3. Architecture servlet/Oracle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.............
216
Exercice rcapitulatif I. Retour sur les fonctions fondamentales des
SGBD. . . . . . . . . . . . . . . . . .219Table des matires 15

Exercice rcapitulatif I. Gestion de comptes


bancaires. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .221XII- Annexes. .
.........................................................
. . . . . . . . . . 225
Partie A. Technologie MySQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
...............
225
Section A1.
Gnralits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.....
225
1. Prsentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
..........
225
2. Notions d'achitecture client-serveur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
...............

225
Section A2. Gestion de
MySQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
227
1. Instructions spcifiques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.............
227
2. Gestion des droits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
...........
227
Section A3. Spcificits MySQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
...............
228
1. Types de donnes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
..........
228
2. BLOB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.......
228
3. Fonctions connatre. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
...........
228
4. Les tables InnoDB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
..........
229
Section A4. Extension MySQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
...............
229
1. Limites de MySQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
...........
229
2. MySQL Control Center. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
...........

230
3. Questions sur plusieurs BD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.............
231
Section A5. Pratique de
MySQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
231
Exercice n24. Dictionnaire de donnes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
...............
231
Section A6. MySQL et PHP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
..............
232
1. Interfaage avec MySQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.............
232
2. Architecture PHP/MySQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
............
232
Section A7. Quelques questions/rponses sur
MySQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
233
Question Rponse 1. Tables InnoDB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
..............
233
Exercice rcapitulatif XV. Gestion de projets dans une
association. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
233
Partie B. Exercices
complmentaires. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
..
236

Section B1.
Modlisation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.......
236
Exercice n25. Une agence immobilire. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
...............
236
Section B2.
Relationnel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.....
236
Exercice n26. Le chemin des coliers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
...............
236
Exercice n27. Le retour des coliers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
................
237
Exercice n28. Gestion du personnel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
...............
239
Section B3. Nomalisation, SQL LDD et
LCD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
240
Exercice n29. Avec modration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.............
240
Bibliographie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . 241Glossaire. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243Sign
ification des
sigles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 245Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247Fiche de synthse. . . .
.........................................................
. . . . . 257

Introduction
Les BD [Base de Donnes] sont ns vers la fin des annes 1960 pour combler les
limites des systmes de fichiers. Les BDrelationnelles, issues de la recherche de
Codd, sont celles qui ont connu le plus grand essor depuis plus de 20 ans, et qui
resteencore aujourd'hui les plus utilises. Le langage SQL [Structured Query
Language] est une couche technologique, idalementindpendante des
implmentations des SGBDR [Systme de Gestion de Bases de Donnes
Relationnelles], qui permet decrer et manipuler des BD relationnelles.Les usages
de BD se sont aujourd'hui gnraliss pour entrer dans tous les secteurs de
l'entreprise, depuis les "petites" BDutilises par quelques personnes dans un
service pour des besoins de gestion de donnes locales, jusqu'aux "grosses" BD
quigrent centralement pour toute l'entreprise des donnes partages par tous le
s acteurs de l'entreprise. Paralllementl'accroissement de l'utilisation du
numrique comme outil de manipulation de toutes donnes (bureautique,
informatiqueapplicative, etc.) et comme outil d'extension des moyens de commu

nication (rseaux) d'une part et les volutionstechnologiques (puissance des PC,


Internet, etc.) d'autre part ont la fois rendu indispensable et complexifi la
problmatiquedes BD.Les consquences de cette gnralisation et de cette
diversification des usages se retrouvent dans l'mergence de
solutionsconceptuelles et technologiques nouvelles et sans cesse renouvelles.Ce
cours se proposera de donner les bases conceptuelles et technologiques qui
permettront l'ingnieur de mobiliser descomptences gnrales pour la
ralisation de projets informatiques mobilisant les BD. Il ne cherchera pas, par
contre, fournir des comptences techniques spcialises (tel ou tel SGBD), ni
de cas d'exploitation privilgi (Internet, grossystmes, BD applicatives, etc.). Le
travail de l'lve-ingnieur consistera donc, partir des savoirs gnraux et
dessavoir-faire particuliers acquis, chercher prendre du recul sur le domaine
pour tre capable, lorsqu'il sera en situationprofessionnelle relle, d'apprendre
rapidement les comptences spcifiques qui seront alors ncessaires dans son
contexted'application.Ce support est structur en 11 cours, correspondant aux 11
cours magistraux de l'UV, en commenant par les
basesthoriques indispensables la conception des bases de donnes, en contin
uant par l'apprentissage du language SQLincontournable dans ce domaine, pour
prolonger sur l'application technologique travers deux SGBD trs diffrents
(Accesset Oracle) et pour finir sur des problmatiques plus avances des BD (le
relationnel-objet et l'usage dans le contexte Web).

Mes remerciements les plus sincres vont Dritan Nace


, enseignant-chercheur l'Universit de Technologie deCompigne, qui a
enseign NF17 avant moi jusqu'en 2002, et dont le fonds documentaire en terme
de cours et d'exercicesa t largement rcupr pour la constitution de ce
support ; ainsi qu' Yacine Challal, Achene Beneyache et Hamida Sebaqui
ont apport leur contribution travers quelques exercices et auto-valuation.
Mes remerciements enfin l'ensembledes acteurs trs dynamiques sur le Web
qui m'ont aid sans le savoir dans ce travail (on se reportera la
bibliographiepour les connatre).

Ce support ne saurait tre considr comme un travail achev ou suffisant pour


un auto-apprentissage. Il s'agit de notesorganises destines accompagner
le cours, ainsi que les activits de travaux dirigs de NF17. Il n'est certainement
pasexempt d'erreurs et j'invite les lecteurs, tudiants et enseignants, me faire
part de leurs remarques pour m'aider dans cetravail sans fin d'amlioration de ce
support.

Ce support est disponible l'adresse www4.utc.fr/~nf17

Cours
I
Modlisation
La
modlisation
est l'tape

fondatrice
du processsus de conception de BD. Elle consiste abstraire le problme rel
pos pouren faire une reformulation qui trouvera une solution dans le
cadre technologique d'un SGBD [Systme de Gestion de Basesde Donnes].
Aprs avoir rappel succintement les fondements et objectifs des SGBD, ce
chapitre proposera les outilsmthodologiques ncessaires la modlisation,
travers les formalismes E-A [Entit-Association] et UML [UnifiedModeling
Language].
Partie A. Introduction aux bases de donnes
Objectifs pdagogiques
Comprendre ce qu'est un SGBD.Comprendre l'utilit des BD.Connatre les
diffrences entre modle conceptuel, modle logique et implmentation
phyique.Comprendre l'importance de la modlisation conceptuelle.
Section A1. Vue d'ensemble
1. Qu'est ce qu'une BD ?
Base de donnes
Une BD est un ensemble volumineux, structur et minimalement redondant de
donnes, relies entre elles,
stockessur supports numriques centraliss ou distribus, servant pour les besoi
ns d'une ou plusieurs applications,interrogeables et modifiables par un ou
plusieurs utilisateurs travaillant potentiellement en parallle.
Exemple : Compagnie arienne
Une BD de gestion de l'activit d'une compagnie arienne concernant les
voyageurs, les vols, les avions, lepersonnel, les rservations, etc. Une telle BD
pourrait permettre la gestion des rservations, des disponibilits desavions en
fonction des vols effectuer, des affectation des personnels volants, etc.
2. Qu'est ce qu'un SGBD ?
Systme de Gestion de Bases de Donnes
Un SGBD est un logiciel qui prend en charge la structuration, le stockage, la mise
jour et la maintenance
d'unebase de donnes. Il est l'unique interface entre les informaticiens et les
donnes (dfinition des schmas,programmation des applications), ainsi qu'entre
les utilisateurs et les donnes (consultation et mise jour).

Exemples de SGBD


Oracle est un SGBD relationnel (et Relationnel-Objet dans ses dernires versions)
trs reconnu pour lesapplications professionnelles.

MySQL est un SGBD relationnel libre (licence GPL et commerciale), simple


d'accs et trs utilis pour laralisation de sites Web dynamiques. Depuis la
version 4 MySQL implmente la plupart des fonctions attenduesd'un SGBD
relationnel.

PosgreSQL est un SGBD relationnel et relationnel-objet trs puissant qui offre


une alternative open-source auxsolutions commerciales comme Oracle ou IBM.

Access est un SGBD relationnel Microsoft, qui offre une interface conviviale perm
ettant de concevoirrapidement des applications de petite envergure ou de
raliser des prototypes moindre frais.
3. Pourquoi des SGBD ?
Jadis...
Avant l'avnement des SGBD, chaque application informatique dans l'entreprise i
mpliquait sa propre quipe dedveloppement, ses propres supports physiques,
ses propres fichiers, ses propres normes, ses propres langages, etc.
Consquences...
L'existence conjointe et croissante de ces applications indpendantes a des effets
ngatifs, tels que :

La multiplication des tches de saisie, de dveloppement et de support


informatique

La redondance anarchique des informations dans les fichiers

L'incohrence des versions simultanes de fichiers

La non-portabilit des traitements en raison des diffrences dans les formats et


langages.


La multiplication des cots de dveloppement et de maintenance des
applications.
Problmes...
Les consquences prcdemment cites se rpercutent sur l'entreprise en
gnrant des problmes humains et matriels.Cots en personnels qualifis et en
formations

Remise des pouvoirs de dcision entre les mains de spcialistes informatiques

Tout changement matriel ou logiciel a un impact sur les applications

Tout changement de la structure des donnes ncessite de modifier les


programmes
Or...
En ralit les applications ne sont jamais totalement disjointes, des donnes
similaires (le coeur de l'information d'entreprise)sont toujours la base des
traitements.On peut citer typiquement :

Les donnes comptables

Les donnes clients et fournisseurs

Les donnes relatives la gestion des stocks

Les donnes relatives aux livraisons

Les donnes marketting et commerciales

Les donnes relatives au personnel

etc.
4. Caractristiques des SGBD
La conception d'un systme d'information pour tre rationnelle l'chelle d'une
entreprise se doit d'adopter un certain nombrede principes, tels que :

Une description des donnes indpendante des traitements

Une maintenance de la cohrence de donnes

Le recours des langages non procduraux, interactifs et structurants


22 Conception de bases de donnes

Dans ce cadre les SGBD se fixent les objectifs suivants :

Indpendance physique des donnes


Le changement des modalits
de stockage de l'information (optimisation, rorganisation, segmentation, etc.)
n'impliquepas de changements des programmes.

Indpendance logique des donnes


L'volution de la structure d'une partie des donnes n'influe pas sur l'ensemble
des donnes.

Manipulation des donnes par des non-informaticiens


L'utilisateur n'a pas savoir comment l'information est stocke et calcule par la
machine, mais juste pouvoir larechercher et la mettre jour travers des IHM
[Interface Homme Machine] ou des langages assertionnels simples.

Administration facilite des donnes

Le SGBD fournit un ensemble d'outils (dictionnaire de donnes, audit, tunning,


statistiques, etc.) pour amliorer lesperformance et optimiser les stockages.

Optimisation de l'accs aux donnes


Les temps de rponse et de dbits globaux sont optimiss en fonctions des
questions poses la BD.

Contrle de cohrence (intgrit smantique) des donnes


Le SGBD doit assurer tout instant que les donnes respectent les rgles
d'intgrit qui leurs sont imposes.

Partageabilit des donnes


Les donnes sont simultanments consultables et modifiables.

Scurit des donnes


La confidentialit des donnes est assure par des systmes d'authentification,
de droits d'accs, de cryptage des mots depasse, etc.

Sret des donnes


La persistence des donnes, mme en cas de panne, est assure, grce
typiquememnt des sauvegardes et des journauxqui gardent une trace
persistante des oprations effectues.
Section A2. Notions gnrales
1. Notion de donnes
Type de donnes
Ensemble d'objets qui possdent des caractristiques similaires et manipulables
par des oprations identiques.

Synonyme : Classe.
Donnes
Elment effectif, rel, correspondant une type de donnes.


Synonymes : Occurence, Instance.
Exemple : Type de donnes

Entier = { 0, 1, 2, ... , N }

Vhicule = (immatriculation, marque, type, couleur)


Exemple : Donnes

L'entier 486

Le vhicule (460HP59, Renault, Megane, Jaune)

Notion de modle de donnes


Modle de donnes
Ensemble de concepts et de rgles de composition de ces concepts permettant
de dcrire des donnes (Gardarin,1999).Un modle est souvent reprsent au
moyen d'un formalisme graphique permettant de dcrire les donnes (ou
plusprcisment les types de donnes) et les relations entre les donnes.On
distingue trois niveaux de modlisation pour les bases de donnes :

Le modle conceptuel
Il permet de dcrire le rel selon une approche ontologique, sans prendre en
compte les contraintes techniques.

Le modle logique
Il permet de dcrire une solution, en prenant une orientation informatique
gnrale (type de SGBD typiquement), maisindpendamment de choix
d'implmentation prcis.

Le modle physique
Il correspond aux choix techniques, en terme de SGBD choisi et de sa mise en
oeuvre (programmation, optimisation, etc.).
Exemple de formalisme de modlisation conceptuelle

Le modle Entit-Association (Chen, "The entity-Relationsheep Model - Towards a


Unified View of Data", "ACM Transactions on Database systems", mars-1976,
n.1) a t le plus rpendu dans le cadre de laconception de bases de donnes.

Le modle UML, qui se gnralise pour la conception en informatique, se fonde


sur une approche objet.
Exemple de formalisme de modlisation logique

Le modle relationnel est le modle dominant.


Le modle relationnel-objet (adaptation des modles relationnel et objet au
cadre des SGBD) est actuellement enpleine croissance.

Le modle objet "pur" reste majoritairement au stade exprimental et de la


recherche.

Des modles plus anciens (hirarchique, rseau, etc.) ne sont plus gure utiliss
aujourd'hui.
3. Notion de schma de donnes
Schma de donnes
Description, au moyen d'un langage formel, d'un ensemble de donnes dans le
contexte d'une BD.Un schma permet de dcrire la structure d'une base de
donnes, en dcrivant l'ensemble des types de donnes de labase. L'occurence
d'une base de donnes est constitue de l'ensemble des donnes correspondant
aux types duschma de la base.
Exemple : Schma de base de donnes
Etudiant (NumEtud, nom, ville)
Module(NumMod, titre)
Inscription(NumEtud, NumMod, date)
Exemple : Instance de base de donnes
Etudiant (172, 'Dupont', 'Lille')
Etudiant (173, 'Durand', 'Paris')
Etudiant (174, 'Martin', 'Orlans')
Module(1, 'SGBD')
Module(1, 'Systmes d'exploitation')
Inscription(172, 1, 2002)
Inscription(172, 2, 2002)
Inscription(173, 1, 2001)
Inscription(174, 2, 2002)
On distingue trois niveaux d'abstraction de schmas :


Le niveau conceptuel
Il permet de dcrire les entits et les associations du monde rel. Il s'agit du
schma global de la base de donnes, il enpropose une vue canonique.Le niveau
conceptuel correspond au modle conceptuel.

Le niveau externe
https://fr.scribd.com/doc/276459776/7205767-Conception-de-Base-deDonnee-pdf