Vous êtes sur la page 1sur 124

Conception et Dveloppement de BD

RT3
1
W. W. Drira Drira
Introduction aux bases de donnes
Introduction aux bases de donnes
2
Qu'est qu'une BD ?
Une BD est un ensemble d'informations structures,
intgres et partages par plusieurs applications et
utilisateurs diffrents.
Une BD est une reprsentation informatique des Une BD est une reprsentation informatique des
informations ncessaires la comprhension et utilisation
d'une certaine partie du monde rel.
Cette reprsentation est partielle, subjective et biaise.
3
Exemples classiques d'applications BD
Gestion des personnels, tudiants, cours, inscriptions..
Systme de rservation de places d'avion de Xair
Gestion des comptes clients d'une banque Gestion des comptes clients d'une banque
Gestion des commandes Amazon.com
Gestion des jeux olympiques,

4
Motivations
Systme informatique pour la gestion des
rservations des trains
5
Quelles donnes
Train
Numro
Gare de dpart
Gare destination
Heure de dpart
Billet
Nom client
Numro train
Numro Wagon
Numro place Heure de dpart
Jour de dpart
Numro place
Classe
Date
Gare de dpart
Heure dpart
Gare darrive
Heure darrive
Arrt
Numro Arrt
Gare
Heure dpart
Heure darrive
6
1. Comment proposer une modlisation des donnes qui ne
fait pas de rfrence une solution informatique
particulire?
Dcrire le donnes de lapplication
Comment dcrire les donnes?
Dcrire le donnes de lapplication
Modlisation Conceptuelle.
Formalisme conceptuel (UML, objet, )
7
2. Comment traduire cette modlisation en un modle
logique de stockage de donnes?
Elaborer une description quivalente pour le
stockage des donnes dans le SGBD choisi
Comment dcrire les donnes?
stockage des donnes dans le SGBD choisi
Modlisation logique (relationnelle, objet-
relationnel)
Langage de Description de donnes (LDD).
8
On cherche les donnes dune rservation bien
dtermine.
On veut connatre sil reste des places vide dans un
train donn.
On dsire connatre si le train n 1 sarrte la Gare
Comment chercher une information?
On dsire connatre si le train n 1 sarrte la Gare
X.
Langage de requte (langage dinterrogation) pour
interroger les donnes.
9
Comment mettre au pralable lensemble des trains et
des gares?
Un client veut annuler une rservation sur une
destination.
On veut ajouter une nouvelle destination, offre,
Comment modifier une information?
On veut ajouter une nouvelle destination, offre,
promotion, etc.
Langage de Manipulation de donnes (LMD)
10
On ne peut pas faire une rservation sur un train qui
nexiste pas.
On ne peut pas rserver la mme place deux fois!
Toutes les arrts sont comprises entre la gare de dpart
et celle darrive.
Comment contrler les donnes?
et celle darrive.
Le 30 fvrier 2013 nexiste pas.
Langage dexpression des contraintes dintgrit
11
Optimisation
Fiabilit (scurit)
Il faut viter que les informations (rservations, clients,)
soient perdues lors de dysfonctionnements, pannes, ou
Dautres besoins
soient perdues lors de dysfonctionnements, pannes, ou
problmes
erreur de programmation
panne physique de lordinateur
coupure de courant

12
Gestion des accs concurrentiels
Il faut viter que si plusieurs utilisateurs accdent au
systme en mme temps, une modification des donnes
soit faite de manire incorrecte.
Quel genre de modifications incorrectes?
Dautres besoins
Quel genre de modifications incorrectes?
Action faite double : rservation de la mme place en mme
temps par deux personnes conduit la rservation double
de la place.
Action non faite : la rservation de la mme place conduit
aucune rservation.
Action faite de manire incohrente : aucun client nobtient la
rservation, mais le systme la enregistr
13
Base de donnes: ensemble cohrent, intgr, partag
de donnes structures dfini pour les besoins dune
application.
Dfinitions
SGBD (Systme de Gestion de Bases de Donnes):
Logiciel permettant de stocker les donnes, de les
mettre jour et de les consulter.
En anglais DBMS.
14
Architecture
15
Interface utilisateur: permet aux utilisateurs de
dialoguer avec le SGBD et dexprimer leurs requtes.
Interface daccs physique: permet au SGBD
Architecture
Interface daccs physique: permet au SGBD
d'accder aux donnes sur les supports (disques, ...).
16
Architecture en couches
Couche
externe
Couche
logique
Couche
interne
1 2
Utilisateurs
SGBD
Donnes
Dialogue Contrle Stockage
1. Interface utilisateur
2. Interface daccs physique
17
Niveau Interne:
stockage des donnes dans les supports physiques
gestion des structures de mmorisation (fichiers) et d'accs
(gestion des index, des cls, ...)
Niveau externe: prend en charge le problme du dialogue avec
Architecture en couches
Niveau externe: prend en charge le problme du dialogue avec
les utilisateurs:
l'analyse des demandes de l'utilisateur,
le contrle des droits d'accs de l'utilisateur,
la prsentation des rsultats
18
Niveau intermdiaire (logique): assure les fonctions de contrle
global:
optimisation globale des requtes
gestion des conflits d'accs simultans de la part de plusieurs
utilisateurs
Architecture en couches
utilisateurs
contrle gnral de la cohrence de l'ensemble
coordination et suivi des processus en cours
garantie du bon droulement des actions entreprises mme en
cas de panne
19
Modle de donnes:
ensemble des concepts qui permettent de dcrire les donnes d'une
base et les rgles d'utilisation de ces concepts.
Un schma pour chaque couche
Schmas dune BD:
Descriptions dune base de donnes obtenues en employant un
modle de donnes.
20
Le niveau conceptuel
Description des donnes dont les utilisateurs ont besoin
modle conceptuel, orient utilisateur
Support du dialogue concepteurs / utilisateurs
Indpendant de la solution informatique
Un schma pour chaque couche
Indpendant de la solution informatique
Deux parties couvertes par le modle:
statique (la structure des donnes)
dynamique (rgles et oprations)
Contraintes d'intgrit
inhrentes aux donnes ou traduisant les rgles des applications
21
Le niveau interne (implantation)
Choix des structures de stockage des donnes par les
administrateurs systme
Schma interne : description des choix denregistrement des
donnes dans les fichiers.
Un schma pour chaque couche
donnes dans les fichiers.
Fait appel un nouveau modle, le modle interne, o les
concepts sont ceux de fichier, organisation de fichier, index,
chemin d'accs, cl, ...
22
Le Schmas externes (SE): utilisation
Un schma externe par groupe dutilisateurs, dfinissant la vue
de la base pour ces utilisateurs
Avantages de cette approche :
simplicit
Un schma pour chaque couche
simplicit
protection (confidentialit)
Dans les SGBD actuels, le schma externe d'un utilisateur est
une collection de vues. Chaque vue dcrit un objet virtuel qui
peut tre calcul par le SGBD quand l'utilisateur en a besoin.
Le modle de donnes employ pour dcrire les vues est le
mme que celui du schma logique
23
Schma logique
Train
Numro
Gare de dpart
Billet
Nom client
Numro train
Numro Wagon
Numro place
Arrt
Numro Arrt
Architecture en couches (exemple)
Gare de dpart
Gare destination
Heure de dpart
Jour de dpart
Numro place
Classe
Date
Gare de dpart
Heure dpart
Gare darrive
Heure darrive
Numro Arrt
Gare
Heure dpart
Heure darrive
24
Schmas externes
Lemploy qui gre les trains a laccs la vue Gestion_trains
qui contient les donnes de tous les trains.
Architecture en couches (exemple)
Lemploy qui fait les rservations a un accs la vue
Gestion_billets qui autorise la lecture/criture sur les donnes
des billets et la lecture de trains et arrts.

25
Architecture en couches (exemple)
Schma interne:
Fichier trains contient numro, gare de dpart, gare
destination, heure de dpart, jour de dpart
+ index sur numro
+ index secondaire sur numro et gare de dpart + index secondaire sur numro et gare de dpart
Fichier arrts
Fichier billets
26
Cycle de vie dune base de donnes
Implmentation
de la base de donnes
(Niveau logique)
Conception
dune base de donnes
(Niveau conceptuel)
1
2
Maintenance
(correction et volution)
Utilisation
(Interrogation, mise jour)
3
4
27
Dfinitions
Une base de donnes est une collection de donnes inter-relies. C'est
une entit cohrente logiquement et vhiculant une certaine smantique,
Un Systme de Gestion de Bases de Donnes (SGBD) est un ensemble
de programmes qui permettent des utilisateurs de crer et maintenir une
base de donnes. Les activits supportes sont la dfinition d'une base de
donnes, la construction d'une base de donnes et la manipulation des donnes, la construction d'une base de donnes et la manipulation des
donnes,
Les SGBD commerciaux les plus connus sont Oracle, MySQL, Sybase,
Ingres, Informix et DB2,
Un SGBD spare la partie description des donnes, des donnes elles
mmes. Cette description est stocke dans un dictionnaire de donnes et
peut tre consulte par les utilisateurs,
28
Dfinitions
Un modle de donnes est un ensemble de concepts permettant de
dcrire la structure d'une base de donnes. La plupart des modles de
donnes incluent des oprations permettant de mettre jour et
questionner la base. Le modle de donnes le plus utilis est le modle
relationnel,
Un schma de base de donnes est la description des donnes grer. Il
est conu dans la phase de spcification et est peu volutif,
Une extension d'une base de donnes correspond aux donnes de la
base un instant donn. Par dfinition cet tat est dynamique.
29
Fonctionnalits du SGBD
Contrler la redondance d'informations:
La redondance d'informations diffrents problmes (cot en temps, cot
en volume et risque d'incohrence entre les diffrentes copies).
Contrler voire supprimer la redondance en offrant une gestion unifie des
informations complte par diffrentes vues pour des classes d'utilisateurs
diffrents. diffrents.
Partage des donnes:
Accder la mme information par plusieurs utilisateurs en mme temps:
Inclure un mcanisme de contrle de la concurrence bas sur des
techniques de verrouillage des donnes.
Le partage des donnes se fait galement par la notion de vue utilisateur:
Dfinir pour chaque classe d'utilisateurs la portion de la base de donnes
qui l'intresse.
30
Fonctionnalits du SGBD
Grer les autorisations d'accs:
BD multi-utilisateurs Problme de la confidentialit des donnes.
Des droits doivent tre grs sur les donnes, droits de lecture, mise
jour, cration, ... qui permettent d'affiner la notion de vue utilisateur.
Offrir des interfaces d'accs multiples. Offrir des interfaces d'accs multiples.
Offrir plusieurs interfaces d'accs, correspondant aux diffrents types
d'utilisateurs pouvant s'adresser lui.
1. Interfaces orientes utilisateur final : langages de requtes
dclaratifs comme SQL avec mise en uvre graphique,
interface de type formulaire, ...
2. Interfaces orientes programmeurs d'applications : interface
avec des langages de programmation classiques.
31
Fonctionnalits du SGBD
Reprsenter des relations complexes entre les donnes.
Reprsenter des donnes inter-relies de manire complexe.
Cette facilit s'exprime travers le modle de donnes sous-jacent au
SGBD. Chaque modle de donnes offre ses propres concepts pour
reprsenter les relations.,
Vrifier les contraintes d'intgrit. Vrifier les contraintes d'intgrit.
Un schma de base de donnes se compose d'une description des donnes
et de leurs relations ainsi que d'un ensemble de contraintes d'intgrit.
Une contrainte d'intgrit est une proprit de l'application modliser qui
renforce la connaissance que l'on en a.
Contraintes structurelles et contraintes dynamiques.
Les SGBD commerciaux supportent automatiquement un certain nombre
de contraintes structurelles, mais ne prennent pas en compte les
contraintes dynamiques
32
Fonctionnalits du SGBD
Assurer la scurit et la reprise aprs panne:
BD vitale dans le fonctionnement d'une organisation : il n'est pas tolrable
qu'une panne puisse remettre en cause son fonctionnement de manire
durable.
Des mcanismes pour assurer cette scurit : Des mcanismes pour assurer cette scurit :
Le mcanisme de transaction : assurer un comportement atomique
une squence d'actions.
Une transaction est une squence d'oprations qui fait passer la base
de donnes d'un tat cohrent un nouvel tat cohrent.
33
Architecture logique d'un SGBD
La plupart des SGBD suivent l'architecture standard Ansi/Sparc qui
permet d'isoler les diffrents niveaux d'abstraction ncessaires pour un
SGBD.
Larchitecture Ansi/Sparc est dfinie sur trois niveaux :
Niveau interne ou physique : dcrit le modle de stockage des donnes et
les fonctions d'accs les fonctions d'accs
Modle conceptuel ou logique : dcrit la structure de la base de donnes
globalement tous les utilisateurs (limite la redondance). Le schma
conceptuel est produit par une analyse de l'application modliser et par
intgration des diffrentes vues utilisateurs. Ce schma dcrit la structure
de la base indpendamment de son implantation
Niveau externe : correspond aux diffrentes vues des utilisateurs. Chaque
schma externe donne une vue sur le schma conceptuel une classe
d'utilisateurs.
34
Architecture logique d'un SGBD
Le SGBD doit tre capable de faire des transformations entre chaque
niveau, de manire transformer une requte exprime en terme du
niveau externe en requte du niveau conceptuel puis du niveau
physique.
La plupart des SGBD ne sparent pas compltement ces trois niveaux, La plupart des SGBD ne sparent pas compltement ces trois niveaux,
mais respectent nanmoins ces principes de sparation
35
Architecture logique d'un SGBD
36
Architecture logique d'un SGBD
L'architecture trois niveaux : supporter le concept d'indpendance
donnes programmes la capacit de modifier le schma de la base
de donnes un niveau donn, sans remettre en cause le schma aux
niveaux suprieurs :
Indpendance logique : changer le niveau conceptuel sans remettre en
cause les schmas externes ou les programmes d'application.
L'ajout ou le retrait de nouveaux concepts ne doit pas modifier des lments
qui n'y font pas explicitement rfrence,
Indpendance physique : changer le schma physique sans remettre en
cause le schma conceptuel (et les schmas externes).
Modifier l'organisation physique des fichiers, rajouter ou supprimer des
mthodes d'accs.
Le modle relationnel, contrairement ces prdcesseurs, permet un certain
niveau d'indpendance sans aller jusqu' une indpendance complte.
37
Fichiers et supports de stockage
Fichiers et supports de stockage
38
MS vs MC
MC MS
Coteuse Peu chre
Volatile Non volatile
Taille rduite Grande taille Taille rduite Grande taille
Rapide Lente
Lunit de transfert de la mmoire secondaire (MS) la
mmoire centrale (MC) est le bloc physique.
39
Disque magntique
40
Fichiers
Fichiers (file) : ensemble d'informations stock sur mmoire
secondaire (MS), structur en enregistrements.
Enregistrement (record) : lment d'un fichier, qui est l'unit
logique de transfert MC-MS, et l'unit de traitement des
programmes exploitant ce fichier. programmes exploitant ce fichier.
Format: description de la liste des donnes contenues dans
chaque enregistrement.
41
Exemple de formats
tudiant (NCIN, Nom, Prnom, DateNaissance, Niveau,
Classe, Spcialit).
NCIN: entier 8
Nom, prnom: caractre 50 Nom, prnom: caractre 50
DateNaissance: entier 8
Niveau: entier 1
Classe: entier 1
Spcialit: entier 1
42
Organisation de fichiers
1. Organisation squentielle
2. Organisation relative
3. Organisation alatoire 3. Organisation alatoire
4. Organisation index
43
Organisation Squentielle
L'organisation squentielle consiste mettre les
enregistrements dans le fichier les uns aprs les autres
selon leur ordre d'arrive (de cration), sans mmoriser
l'endroit o ils ont t crits.
Accs squentiel seulement. Accs squentiel seulement.
Efficace si on veut lire une grande partie du fichier.
Enregistrement de taille variable ou non.
(+) Trs bien pour accs squentiel
(-) Pas daccs slectif
(-) Impossibilit de supprimer ou insrer : il faut recopier le
fichier
44
Organisation relative
Les enregistrements ont tous la mme longueur, et ont un
numro relatif, appel cl, qui est leur numro d'ordre dans
le fichier.
L'adresse relative dans le fichier de l'enregistrement de
numro i est : (i-1) * longueur de l'enregistrement. numro i est : (i-1) * longueur de l'enregistrement.
Mthodes d'accs: slective sur le numro et ventuellement
squentiellement.
(+) Trs bonne en accs slectif (1 E/S par lecture)
(-) La cl doit tre dense, ou presque,
(-) Les enregistrements doivent tre tous de mme taille
45
Organisation alatoire
Tous les enregistrements ont la mme longueur. Chaque
enregistrement possde un attribut (ou liste d'attributs) qui
identifie l'enregistrement, et qui est appel cl de
l'enregistrement.
Le fichier est constitu de blocs qui contiennent les Le fichier est constitu de blocs qui contiennent les
enregistrements.
Une fonction est associe au fichier qui, partir de la cl
d'un enregistrement, calcule le numro du bloc du fichier
dans lequel doit tre (logiquement) stock l'enregistrement.
46
Organisation alatoire
Cration : Le fichier est de taille fixe.
Lors de la cration du fichier, l'utilisateur doit dfinir la taille des
blocs et le nombre total de blocs en prvoyant du vide.
Il doit fixer aussi la fonction.
criture :
Le SGF calcule le N bloc = f(cl).
Puis il lit le bloc, y ajoute l'enregistrement (s'il y a assez de
place), et il rcrit le bloc.
S'il n'y plus de place, on dit que le bloc dborde. Quand un bloc
commence dborder, un bloc de dbordement lui est associ .
47
Organisation alatoire
Lecture :
le SGF calcule le N bloc = f(cl).
Puis il lit le bloc, et y cherche l'enregistrement.
Si l'enregistrement n'est pas dans le bloc, soit c'est une erreur
d'arguments, soit le bloc a dbord et l'enregistrement est d'arguments, soit le bloc a dbord et l'enregistrement est
dans le (un des) bloc de dbordement associ.
Le SGF lit donc le (les) bloc de dbordement la recherche
de l'enregistrement.
48
Organisation index
Chaque enregistrement possde un attribut (ou liste
dattributs) qui identifie lenregistrement, et qui est
appel cl de lenregistrement.
Une table associe au fichier est compose de doublets
<cl dun enregistrement, adresse de lenregistrement dans le
fichier> fichier>
La table est appele "index" du fichier selon telle cl; un
doublet est une "entre" de lindex.
Objectifs:
Accs slectif rapide un enregistrement partir de la valeur
dun (ou de plusieurs) de ses attributs, appel cl.
Accs squentiel efficace selon lordre des cls.
Taille du fichier variable au cours du temps.
49
Organisation index
La recherche dune entre dans un index comprenant n
blocs (chaque bloc contenant c cls), ncessite :
si lindex est non tri: n/2 lectures en moyenne
si lindex est tri et la recherche dichotomique: log 2(n)
lectures en moyenne 4
si on indexe les blocs dindex (lindex est tri et hirarchis
plusieurs niveaux): une E/S par niveau de lindex.
Cette solution est retenue ds que lindex est trop grand pour
tenir en MC, car la plus efficace.
(+) Recherche rapide dune entre de lindex dont on connat la cl.
(- ) Recherche rapide dans un index hirarchis et stock sur MS.
50
Le modle Entit/Association
Le modle Entit/Association Le modle Entit/Association
51
Principes gnraux
Modle utilis peu prs universellement pour la conception de bases de
donnes (relationnelles principalement)
(+) Simple et suffisamment puissant pour reprsenter des structures relationnelles
(+) Reprsentation graphique facilite considrablement sa comprhension.
(-) Ne proposer que des structures (pas dopration pour manipuler les
donnes, et pas (ou peu) de moyen dexprimer des contraintes.
(-) Mener certaines ambiguits pour des schmas complexes.
Dans le cadre de la conception dune base de donnes
Distinguer les entits qui constituent la base de donnes, et les
associations entre ces entits
Donner une structure la base, ce qui savre indispensable.
52
Table FilmSimple stockant des films avec quelques informations
de base, dont le metteur en scne
Exemple
53
Bons et mauvais schmas
Anomalies lors dune insertion
Reprsenter plusieurs fois le mme film.
il est possible dinsrer plusieurs fois le film Vertigo en le dcrivant
chaque fois de manire diffrente, par exemple en lui attribuant une fois
comme ralisateur Alfred Hitchcock, puis une autre fois John Woo, etc.
Comment distinguer deux films lun de lautre?
A quel moment on peut dire que la mme information a t rpte?
Peut-il y avoir deux films diffrents avec le mme titre par exemple ?
Si la rponse est non: Assurer quil ny a pas deux lignes dans la
table avec la mme valeur pour lattribut titre.
Si la rponse est oui: Dterminer quel est lensemble des attributs qui
permet de caractriser de manire unique un film.
54
Anomalies lors dune modification
La redondance dinformation des anomalies de mise jour.
Supposons que lon modifie lanne de naissance de Hitchcock pour la
ligne Vertigo et pas pour la ligne Psychose.
Des informations incohrentes.
Bons et mauvais schmas
Des informations incohrentes.
Jusqu quel point peut-on dire quil ny a quun seul ralisateur
nomm Hitchcock, et quil ne doit donc y avoir quune seule anne de
naissance pour un ralisateur de ce nom ?
55
Anomalies lors dune destruction
On ne peut pas supprimer un film sans supprimer du mme coup son
metteur en scne.
Exemple : Si on souhaite, ne plus voir le film Titanic figurer dans la
base de donnes
Bons et mauvais schmas
base de donnes
on va effacer du mme coup les informations sur James Cameron.
56
Bonne mthode
Une bonne mthode vitant les anomalies consiste ;
1. Etre capable de reprsenter individuellement les films et les
ralisateurs, de manire ce quune action sur lun nentrane pas
systmatiquement une action sur lautre ;
Bons et mauvais schmas
systmatiquement une action sur lautre ;
2. Dfinir une mthode didentification dun film ou dun ralisateur,
qui permette dassurer que la mme information est reprsente
une seule fois ;
3. Prserver le lien entre les films et les ralisateurs, mais sans
introduire de redondance.
57
Commenons par les deux premires tapes:
Distinguer la table des films et la table des ralisateurs.
Dcider que deux films ne peuvent avoir le mme titre, mais que
deux ralisateurs peuvent avoir le mme nom.
Attribuer un numro aux ralisateurs, dsign par id afin davoir un
Bons et mauvais schmas
Attribuer un numro aux ralisateurs, dsign par id afin davoir un
moyen de les identifier
58
Bons et mauvais schmas
59
Il ny a maintenant plus de redondance dans la base de donnes.
Par exemple , le ralisateur Hitchcock napparat plus quune seule fois,
ce qui limine les anomalies de mise jour voques prcdemment.
Reprsenter le lien entre les films et les metteurs en scne, sans
Bons et mauvais schmas
Reprsenter le lien entre les films et les metteurs en scne, sans
introduire de redondance :
Les identifiants un moyen simple pour indiquer quel est le metteur en
scne qui a ralis un film
Associer lidentifiant du metteur en scne au film: Ajouter un attribut
idMES dans la table Film
60
Bons et mauvais schmas
61
Reprsentation correcte : La redondance est rduite au minimum
puisque seule la cl identifiant un metteur en scne a t dplace
dans une autre table (on parle de cl trangre).
Anomalie dinsertion: Identifiant un film
Dterminer au moment dune insertion si elle va introduire ou non une
Bons et mauvais schmas
redondance.
Si cest le cas on doit interdire cette insertion.
Anomalie de mise jour: Pas de redondance
Toute mise jour affecte lunique instance de la donne modifier.
Anomalie de destruction
On peut dtruire un film sans affecter les informations sur le ralisateur.
62
Ce gain dans la qualit du schma na pas pour contrepartie une
perte dinformation.
Linformation initiale peut tre reconstitue intgralement.
En prenant un film, on obtient lidentit de son metteur en scne, et
cette identit permet de trouver lunique ligne dans la table des
ralisateurs qui contient toutes les informations sur ce metteur en scne.
Bons et mauvais schmas
ralisateurs qui contient toutes les informations sur ce metteur en scne.
Ce processus de reconstruction de linformation, disperse dans
plusieurs tables, peut sexprimer avec SQL.
La modlisation avec un graphique Entit/Association offre une
mthode simple pour arriver un bon schma, et ce mme dans des
cas beaucoup plus complexes.
63
Un schma E/A dcrit lapplication vise,
Abstraction dun domaine dtude, pertinente relativement aux objectifs viss.
Abstraction : choisir certains aspects de la ralit perue (liminer les autres).
Slection en fonction de certains besoins qui doivent tre prcisment dfinis.
Par exemple, pour la base de donnes Films, on na pas besoin de stocker
dans la BD lintgralit des informations relatives un internaute, ou un
Modle E/A : Prsentation informelle
dans la BD lintgralit des informations relatives un internaute, ou un
film : Seules comptent celles qui sont importantes pour lapplication:
1. Entits, reprsentes par des rectangles : Film, Artiste, Internaute et Pays
2. Associations entre entits reprsentes par des liens entre ces
rectangles.
Par exemple: Reprsenter le fait quun artiste joue dans des films, quun
internaute note des films, etc.
64
Chaque entit est caractrise par un ensemble dattributs, parmi
lesquels un ou plusieurs forment lidentifiant unique
Caractriser de manire unique une entit, de manire viter la
redondance dinformation.
Les associations sont caractrises par des cardinalits.
Le choix des cardinalits est parfois discutable : Laspect le plus
Modle E/A : Prsentation informelle
Le choix des cardinalits est parfois discutable : Laspect le plus
dlicat de la modlisation.
Exemple : lassociation Ralise entre film et metteur en scne
Film ralis par un seul metteur en scne on sinterdit les rares
situations o un film est ralis par plusieurs personnes.
Impossible de reprsenter une telle situation dans la BD.
Choix et compromis : Accepter une structure plus complexe (avec 0..* de
chaque ct) pour lassociation Ralise, pour prendre en compte un nombre
minime de cas ?
65
Les cardinalits sont notes par deux chiffres. Le chiffre de droite
est la cardinalit maximale, qui vaut en gnral 1 ou *. Le chiffre de
gauche est la cardinalit minimale.
Les cardinalits minimales (contraintes de participation) sont moins
importantes que les cardinalits maximales:
Elles ont un impact moindre sur la structure de la base de donnes
Modle E/A : Prsentation informelle
Elles ont un impact moindre sur la structure de la base de donnes
Elles peuvent plus facilement tre remises en cause aprs coup.
Elles ne reprsentent quun choix de conception, souvent discutable.
Dans la notation UML, il existe des notations abrges qui donnent
des valeurs implicites aux cardinalits minimales :
1. La notation * est quivalente 0..*
2. La notation 1 est quivalente 1..1
66
La modlisation conceptuelle est totalement indpendante de tout
choix dimplantation.
Il nest pas non plus question de type ou de structure de donnes,
dalgorithme, de langage, etc.
La partie la plus stable dune application.
Modle E/A : Prsentation informelle
La partie la plus stable dune application.
Le fait de se dbarrasser ce stade de la plupart des considrations
techniques permet de se concentrer sur lessentiel
Que veut-on stocker dans la base ?
67
Maniement des schmas E/A : La qualit du rsultat ne peut svaluer que
par rapport une demande souvent floue et incomplte
Difficult de valider le rsultat (en fonction de quels critres ?).
Par exemple peut-on affirmer que :
1. Toutes les informations ncessaires sont reprsentes ;
2. Quun film ne sera jamais ralis par plus dun artiste ;
3. Quil ny aura jamais deux films avec le mme titre.
Il faut faire des choix, en connaissance de cause, en sachant toutefois quil
Modle E/A : Prsentation informelle
Il faut faire des choix, en connaissance de cause, en sachant toutefois quil
est toujours possible de faire voluer une BD, quand cette volution
nimplique pas de restructuration trop importante.
Facilit dajout des informations pour dcrire un film ou un internaute
Difficult de modification de la base pour quun film passe de un, et un
seul, ralisateur, plusieurs.
Une des volutions les plus complexes raliser est de changer la cl
de Film
Les cardinalits et le choix des cls Des aspects dcisifs des choix de
conception.
68
Modle E/A : Exemple
69
Tout objet identifiable et pertinent pour lapplication.
La notion didentit est primordiale : distinguer les entits les unes des
autres, et donc dire quune information est redondante ou non.
Prvoir un moyen technique pour effectuer une distinction entre entits au
niveau de la BD: Identifiant ou cl.
La pertinence est essentielle : Prendre en compte que les informations
Modle E/A : Entit
La pertinence est essentielle : Prendre en compte que les informations
ncessaires pour satisfaire les besoins.
La 1
re
tape dune conception : identifier les entits utiles ( souvent en
considrant quelques cas particuliers).
La 2
me
tape : regrouper les entits en ensembles ( ne pas sintresser
un individu particulier mais des groupes).
Les films et les acteurs sont des ensembles distincts dentits.
Les ensembles de ralisateurs et des acteurs : les distinguer ou les assembler ?
Il est certainement prfrable de les assembler, puisque des acteurs peuvent aussi tre ralisateurs.
70
Les entits sont caractrises par des proprits :
le titre (du film), le nom (de lacteur), sa date de naissance,
ladresse, etc.
Ces proprits sont dnotes attributs dans la terminologie du
modle E/A.
Modle E/A : Attributs
Le choix des attributs relve de la mme dmarche dabstraction qui
a dict la slection des entits
Ne pas donner exhaustivement toutes les proprits dune entit :
Garder que celles utiles pour lapplication.
Un attribut est dsign par un nom et prend ses valeurs dans un
domaine numrable comme les entiers, les chanes de caractres,
les dates, etc.
71
Un attribut prend une valeur et une seule: Attribut atomique.
Certaines mthodes admettent lintroduction de constructions plus
complexes :
1. Les attributs multivalus : sont constitus dun ensemble de valeurs
prises dans un mme domaine : Rsoudre le problme des numros de
tlphones multiples ;
Modle E/A : Attributs
2. Les attributs composs : sont constitus par agrgation dautres
attributs ; un attribut adresse peut par exemple tre dcrit comme
lagrgation dun code postal, dun numro de rue, dun nom de rue et
dun nom de ville.
Pour une modlisation oriente vers un SGBD relationnel, les attributs
atomiques sont suffisants.
72
Dcrire un peu plus prcisment les entits par leur type, compos
des lments suivants :
1. son nom ;
2. la liste de ses attributs avec, optionnellement le domaine o lattribut
prend ses valeurs : les entiers, les chanes de caractres ;
Modle E/A : Types dentits
prend ses valeurs : les entiers, les chanes de caractres ;
3. lindication du (ou des) attribut(s) permettant didentifier lentit : ils
constituent la cl.
73
Un sous-ensemble minimal de lensemble des attributs permettant
didentifier de manire unique une entit parmi nimporte quelle
extension de un type dentit
Un internaute est caractris par plusieurs attributs : son email, son
nom, son prnom, la rgion o il habite.
Lemail constitue une cl naturelle puisquon ne trouve pas, en
principe, deux internautes ayant la mme adresse lectronique.
Modle E/A : Cl
principe, deux internautes ayant la mme adresse lectronique.
En revanche lidentification par le nom seul parat impossible
puisquon constituerait facilement un ensemble contenant deux
internautes avec le mme nom.
On pourrait penser utiliser la paire (nom,prnom),
Il faut utiliser avec modration lutilisation didentifiants composs de
plusieurs attributs: Peut poser des problmes de performance et
complique les manipulations par SQL.
74
Il est possible davoir plusieurs cls pour un mme ensemble dentits.
Choisir une comme cl primaire, et les autres comme cls secondaires.
Le choix de la cl (primaire) est dterminant pour la qualit du schma de la
base de donnes.
Les caractristiques dune bonne cl primaire sont :
sa valeur est connue pour toute entit ;
Modle E/A : Cl
on ne doit jamais avoir besoin de la modifier ;
Pour des raisons de performance, sa taille de stockage doit tre la plus petite
possible.
Il nest pas toujours vident de trouver un ensemble dattributs satisfaisant
ces proprits.
Le choix du titre pour identifier un film serait incorrect puisquon aura affaire
un jour ou lautre deux films ayant le mme titre. Mme en combinant le titre
avec un autre attribut (par exemple lanne), il est difficile de garantir lunicit.
75
Dans la situation frquente, o on a du mal dterminer quelle
est la cl dune entit : on cre un identifiant abstrait
indpendant de tout autre attribut.
Ajouter dans le type dentit Film un attribut id, correspondant
un numro squentiel qui sera incrment au fur et mesure des
insertions:
Modle E/A : Cl
insertions:
Meilleur choix : - On peut toujours lui attribuer une valeur,
- Il ne sera jamais ncessaire de la modifier,
- Elle a une reprsentation compacte.
76
Modle E/A: Avantage
Le modle Entit/Association est simple et pratique.
1. Il ny a que 3 concepts : entits, associations et attributs.
2. Il est appropri une reprsentation graphique intuitive, mme sil
existe beaucoup de conventions. existe beaucoup de conventions.
3. Il permet de modliser rapidement des structures pas trop
complexes.
77
Modle E/A: Inconvnients
Non-dterminisme : pas de rgle absolue pour dterminer ce qui est entit,
attribut ou relation.
Exp1: Est-il prfrable de reprsenter le metteur en scne (MES) comme un
attribut de Film ou comme une association avec Artiste ?
Rponse : comme une association ! Arguments :
1. On connat alors non seulement le nom, mais aussi toutes les autres proprits
(prnom, ge, ...). (prnom, ge, ...).
2. Lentit MES peut-tre associe beaucoup dautres films : on permet le partage
de linformation.
Exp2: Est-il indispensable de grer une entit Horaire ?
Rponse : pas forcment ! Arguments :
1. Pour. Permet de normaliser les horaires. Plusieurs sances peuvent alors faire
rfrence au mme horaire (gain de place, facilit de mise jour, cohrence, ...)
2. Contre. On alourdit le schma inutilement : un horaire est propre une sance. On
peut le reprsenter comme un attribut de Sance.
78
Pauvret du modle E/A: Difficile dexprimer des contraintes
dintgrit, des structures complexes.
Beaucoup dextensions ont t proposes, mais la conception de
schma reste en partie matire de bon sens et dexprience. On
essaie en gnral :
Modle E/A: Inconvnients
essaie en gnral :
Se ramener des associations entre 2 entits : au-del, on a
probablement intrt a transformer lassociation en entit ;
Eviter toute redondance : une information doit se trouver en un seul
endroit ;
Privilgier la simplicit et la lisibilit, notamment en ne reprsentant
que ce qui est strictement ncessaire.
79
Le modle E/A est utilis dans la plupart des mthodes
danalyse/conception : OMT, CASE, MERISE, etc.
La syntaxe varie, mais on retrouve toujours les mmes lments
fondamentaux.
Dans le cadre des bases de donnes, le modle E/A est utilis dans
Modle E/A
Dans le cadre des bases de donnes, le modle E/A est utilis dans
la phase de conception :
Spcifier la structure des informations qui vont tre contenues dans la
base
Offrir une reprsentation abstraite indpendante du modle logique qui
sera choisi ensuite.
Le modle E/A a linconvnient majeur de ne pas proposer
doprations sur les donnes.
80
Le modle relationnel
Le modle relationnel
81
Prsentation
Un modle de donnes dfinit un mode de reprsentation de linformation selon
trois composantes :
1. Des structures de donnes DLL
2. Des contraintes qui permettent de spcifier les rgles que doit respecter une BDDLL
3. Des oprations pour manipuler les donnes, en interrogation et en mise jour DML
Langage de Dfinition de Donnes dans un SGBD Dcrire le schma dune
base de donnes. base de donnes.
Langage de Manipulation de Donnes : le reprsentant le plus clbre est SQL.
Indpendance de la reprsentation physique Sparation totale des tches
respectives des administrateurs de la base, chargs de loptimisation de ses
performances, et des dveloppeurs dapplication ou utilisateurs finaux qui nont
pas se soucier de la manire dont le systme satisfait leurs demandes.
Le modle relationnel, venant aprs les modles hirarchique et rseau, offre une
totale indpendance entre les reprsentations logique et physique.
82
Dfinition dun schma relationnel
Un des grands avantages du modle relationnel est sa trs grande
simplicit : une seule structure la relation .
Une relation peut simplement tre reprsente sous forme de table.
Une relation a donc un nom (Film) et se compose dun ensemble de
colonnes dsignes par un nom dattribut.
Dans chaque colonne on trouve des valeurs dun certain domaine (chanes Dans chaque colonne on trouve des valeurs dun certain domaine (chanes
de caractres, nombres).
Chaque ligne (ou tuple) correspond une entit .
83
Un schma relationnel est constitu dun ensemble de schmas de
relations qui dcrivent le contenu dune relation, laide de ces
lments : domaines, attributs et noms de relation.
Exemple du schma de la relation :
Film (titre: string, anne: number, genre : string)
Dfinition dun schma relationnel
Film (titre: string, anne: number, genre : string)
84
Un domaine de valeurs est un ensemble dinstances dun type
lmentaire.
Exemple : les entiers, les rels, les chanes de caractres, etc.
Les attributs nomment les colonnes dune relation servent la fois
indiquer le contenu de cette colonne, et la rfrencer quand on
effectue des oprations.
Dfinition dun schma relationnel
effectue des oprations.
Un attribut est toujours associ un domaine.
Un schma de relation est simplement un nom suivi de la liste des
attributs, chaque attribut tant associ son domaine.
On peut trouver dans un schma de relation plusieurs fois le mme
domaine, mais une seule fois un nom dattribut:
Larit dune relation est le nombre de ses attributs.
85
Instance dune relation
Une relation se reprsente sous forme de table, et on emploie le plus
souvent ces deux termes comme des synonymes.
Lordre des lignes na pas dimportance car il ny a pas dordre dans un
ensemble ;
Dfinition dun schma relationnel
ensemble ;
On ne peut pas trouver deux fois la mme ligne car il ny a pas de
doublons dans un ensemble ;
Il ny a pas de case vide dans la table, donc toutes les valeurs de tous
les attributs sont toujours connues ;
86
La cl dune relation est le plus petit sous-ensemble des attributs
qui permet didentifier chaque ligne de manire unique.
Deux lignes sont toujours diffrentes, lensemble de tous les attributs est
lui-mme une cl mais on peut pratiquement toujours trouver un sous-
ensemble qui satisfait la condition.
Le choix de la cl est trs important pour la qualit du schma.
Dfinition dun schma relationnel
Choisir didentifier un film par son titre nest pas un trs bon choix!
Un tuple est une liste de valeurs o chaque valeur est la valeur dun
attribut de domaine.
Exemple : (Cyrano, 1992, Rappeneau)
Un tuple est donc simplement une ligne dans la reprsentation dune
relation sous forme de table.
87
Une base de donnes est un ensemble fini (dinstances) de relations.
Le schma de la base est lensemble des schmas des relations de cette base.
La cration dun schma de base de donnes est simple une fois que lon a
dtermin toutes les relations qui constituent la base.
le choix de ces relations est un problme difficile car il dtermine en grande partie
les caractristiques, qualits de la base : performances, exactitude, exhaustivit,
Dfinition dun schma relationnel
les caractristiques, qualits de la base : performances, exactitude, exhaustivit,
disponibilit des informations, etc.
Un des aspects importants de la thorie des bases de donnes relationnelles
consiste prcisment dfinir ce quest un bon schma et propose des outils
formels pour y parvenir.
En pratique, on procde dune manire moins rigoureuse mais plus accessible:
Concevoir le schma laide dun modle de donnes conceptuel ,
Transcrire le schma conceptuel obtenu en schma relationnel.
La technique la plus rpandue consiste partir dun schma Entit/Association.
88
Passage dun schma E/A un schma relationnel
On passe dun modle disposant de deux structures (entits et
associations) un modle disposant dune seule structure
(relations).
Logiquement, entits et associations seront donc toutes deux
transformes en relations.
la ncessit de prserver les liens existant explicitement dans un
schma E/A et qui semblent manquer dans le modle relationnel : Un
mcanisme de rfrence par valeur bas sur les cls des relations.
Le choix de la cl dune relation est un problme central dans la
conception de schma.
89
Rgles gnrales: Soit la Cl dfinie, pour chaque type dentit E, par un
identifiant abstrait, idE.
Passage dun schma E/A un schma relationnel
90
Rgles de passage : entits
Rappel : le schma dune relation est constitu du nom de la
relation, suivi de la liste des attributs.
Pour chaque entit du schma E/A:
Passage dun schma E/A un schma relationnel
1. On cre une relation de mme nom que lentit.
2. Chaque proprit de lentit, y compris lidentifiant, devient un
attribut de la relation.
3. Les attributs de lidentifiant constituent la cl de la relation.
91
Exemple 1 : A partir du schma E/A de la BD Films, lexception
des entits concernant les cinmas, les salles et les horaires, on
obtient les relations suivantes :
Film (idFilm, titre, anne, genre, rsum)
Passage dun schma E/A un schma relationnel
Film (idFilm, titre, anne, genre, rsum)
Artiste (idArtiste, nom, prnom, anneNaissance)
Internaute (email, nom, prnom, rgion)
Pays (code, nom, langue)
On a perdu pour linstant tout lien entre les relations.
92
Rgles de passage : Associations de un plusieurs
Soit une association de un plusieurs entre A et B. Le passage au
modle logique suit les rgles suivantes :
1. On cre les relations R
A
et R
B
correspondant respectivement aux
Passage dun schma E/A un schma relationnel
1. On cre les relations R
A
et R
B
correspondant respectivement aux
entits A et B
2. Lidentifiant de B devient un attribut de R
A
Lide est quune occurrence de A rfrence loccurrence de B
qui lui est associe laide dune cl trangre. Cette rfrence se
fait de manire unique et suffisante laide de lidentifiant.
93
Exemple 2 : Lassociation entre les types dentit Film, Artiste et Pays.
Les cls trangres sont en italiques.
Film (idFilm, titre, anne, genre, rsum, idArtiste, codePays)
Artiste (idArtiste, nom, prnom, anneNaissance)
Pays (code, nom, langue)
Le rle prcis tenu par lartiste dans lassociation disparat.
Passage dun schma E/A un schma relationnel
Le rle prcis tenu par lartiste dans lassociation disparat.
Lartiste dans Film a un rle de metteur en scne, mais il pourrait tout
aussi bien sagir du dcorateur ou de laccessoiriste. Rien nempche
cependant de donner un nom plus explicite lattribut.
Il nest pas du tout obligatoire en fait que les attributs constituant une cl
trangres aient le mme nom que ceux de le cl primaire auxquels ils se
rfrent.
Film (idFilm, titre, anne, genre, rsum, idMES)
94
Rgles de passage : associations avec type entit faible
Une entit faible est une entit qui ne peut exister quen troite
association avec une autre, et est identifie relativement cette autre
entit toujours identifie par rapport une autre entit.
Exemple : lAssociation en Cinma et Salle est de type un plusieurs
car lentit faible (une salle) est lie une seule autre entit (un cinma)
Passage dun schma E/A un schma relationnel
car lentit faible (une salle) est lie une seule autre entit (un cinma)
alors que, en revanche, un cinma peut tre li plusieurs salles.
Le passage un schma relationnel est donc identique celui dune
association 1-n classique. On utilise un mcanisme de cl trangre
pour rfrencer lentit forte dans lentit faible.
La seule nuance est que la cl trangre est une partie de lidentifiant
de lentit faible.
95
Exemple 3: Lassociation entre les types dentit Cinma et Salle.
On note que lidentifiant dune salle est constitu de lidentifiant du
cinma (ici on a considr que le nom du cinma suffisait
lidentifier), et dun numro complmentaire permettant de
Passage dun schma E/A un schma relationnel
lidentifier), et dun numro complmentaire permettant de
distinguer les salles au sein dun mme cinma.
La cl trangre est donc une partie de la cl primaire.
Cinma (nomCinma, numro, rue, ville)
Salle (nomCinma, no, capacit)
96
Rgles de passage : Associations binaires de plusieurs plusieurs
Soit une association binaire n-m entre A et B
1. On cre les relations R
A
et R
B
correspondant respectivement aux
entits A et B
Passage dun schma E/A un schma relationnel
2. On cre une relation R
A -B
pour lassociation
3. La cl de R
A
et la cl de R
B
deviennent des attributs de R
A -B
4. La cl de cette relation est la concatnation des cls des relations R
A
et R
B
5. Les proprits de lassociation deviennent des attributs de R
A -B
97
Exemple 4 : Toujours partir du schma BD Films, on obtient la
table Rle reprsentant lassociation entre les films et les acteurs.
Film (idFilm, titre, anne, genre, rsum, idMES, codePays)
Artiste (idArtiste, nom, prnom, anneNaissance)
Rle (idFilm, idActeur, nomRle)
Passage dun schma E/A un schma relationnel
De mme, on obtient une table Notation pour reprsenter
lassociation entre un internaute et les films quil a nots.
Film (idFilm, titre, anne, genre, rsum, idMES, codePays)
Internaute (email, nom, prnom, rgion)
Notation (email, idFilm, note)
98
Choix des identifiants
Il est prfrable en gnral de choisir un identifiant neutre qui ne soit
pas une proprit de lentit. En effet :
1. Chaque valeur de lidentifiant doit caractriser de manire unique une
occurrence.
Exemple : titre pour la relation Film ou nom pour la relation Acteur ne sont clairement pas
des bons choix.
Passage dun schma E/A un schma relationnel
des bons choix.
2. Si on utilise un ensemble de proprits comme identifiant, la rfrence une
occurrence est trs lourde.
Exemple : la cl de Cinma pourrait tre (nom, rue, ville).
3. Lidentifiant sert de rfrence externe et ne doit donc jamais tre modifiable
Linconvnient de lidentifiant neutre est quil ne donne pas
dindication sur loccurrence quil rfre.
Par exemple, quand on consulte la table Sance, on ne sait pas dire de quel
film il sagit sans aller rechercher la ligne de la table Film correspondant
lidentifiant du film.
99
Conception physique des bases de donnes
Selon les spcifications et les contraintes relatives aux accs, la
mise en uvre de la conception physique des bases de donnes
est comme suit :
Dnormaliser, si ncessaire ;
Partitionner les tables, si ncessaire ; Partitionner les tables, si ncessaire ;
Regrouper les tables dans des bases de donnes, si ncessaire ;
Dfinir l'utilisation des segments ;
Dfinir l'utilisation des devices ;
Mettre en uvre l'intgrit rfrentielle des contraintes.
100
Normalisation
Dans une base de donnes relationnelle, une forme normale dsigne un
type de relation particulier entre les entits.
Le but essentiel de la normalisation est d'viter les anomalies
transactionnelles pouvant dcouler d'une mauvaise modlisation des
donnes et ainsi viter un certain nombre de problmes potentiels tels
que les anomalies de lecture, les anomalies d'criture, la redondance que les anomalies de lecture, les anomalies d'criture, la redondance
des donnes et la contre-performance.
La normalisation des modles de donnes permet de :
Vrifier la robustesse de leur conception pour amliorer la modlisation
Faciliter la mmorisation des donnes en vitant la redondance et les
problmes sous-jacents de mise jour ou de cohrence.
La normalisation sapplique toutes les entits et aux relations
porteuses de proprits
101
Dans le modle relationnel, les tables sont en troisime forme normale. La
conception physique normalise permet une maintenance aise et ne pose
aucun problme de comprhension aux quipes de dveloppeurs.
Cependant, une conception totalement normalise ne donne pas toujours
des performances optimales : Mettre au point une conception adapte la
troisime forme normale et dnormaliser lorsque des problmes de
performances apparaissent.
Normalisation
performances apparaissent.
Chaque niveau de normalisation dpend du niveau prcdent. Ainsi, pour
tre conformes la deuxime forme normale, les entits doivent tre en
premire forme normale, etc.
Lorsque on dtermine si une base de donnes est en forme normale, on
part du postulat que la relation (ou table) n'est pas normalise. Ensuite on
lui applique les spcifications propres chaque forme normale.
102
Premire forme normale
Une relation est en premire forme normale si et seulement si tout
attribut contient une valeur atomique.
Normalisation

103
Deuxime forme normale
Une relation est en deuxime forme normale si et seulement si :
Elle est en premire forme normale ;
Chaque champ non-cl doit dpendre tout entire de la cl primaire et non
d'une partie de cl primaire compose.
Lorsqu'une base de donnes ne contient que des cls primaires champ
Normalisation
Lorsqu'une base de donnes ne contient que des cls primaires champ
unique, elle est automatiquement en deuxime forme normale.

104
Troisime forme normale
Une relation est en troisime forme normale si et seulement si:
Elle est en deuxime forme normale ;
Tout champ non-cl ne doit pas dpendre d'un autre champ non-cl.
Normalisation
105
Normalisation : Avantages
La production des tables de plus petite taille avec des lignes moins longues
plus de lignes par page (moins d'E/S logiques),
plus de lignes par E/S ,
plus de lignes contenues en mmoire cache (moins d'E/S physiques).
La recherche, le tri et la cration d'index sont plus rapides.
La recherche dans un index est souvent plus rapide, car les index sont plus
petits.
Un plus grand nombre de tables permet une meilleure utilisation des
segments pour contrler l'emplacement physique des donnes.
On dispose de moins d'index par table, les commandes de modification de
donnes sont donc plus rapides.
Le nombre de valeurs NULL et de donnes redondantes est rduit, ce qui
rend la base de donnes plus compacte.
Les anomalies de modification de donnes sont rduites.
La maintenance est plus facile et il est possible de la modifier selon les
besoins.
106
Aprs avoir crer la base de donnes sous une forme normalise, on
peut effectuer des tests de performances et dcider, ventuellement,
d'abandonner la normalisation pour amliorer les performances de
certaines applications ou requtes.
Le processus de dnormalisation :
peut tre effectu au moyen de tables ou de colonnes ;
suppose une normalisation pralable ;
Dnormalisation
suppose une normalisation pralable ;
implique de bien connatre la faon dont les donnes sont utilises.
Opter pour la dnormalisation en particulier si :
la totalit, ou presque, des requtes les plus frquentes ncessitent un accs
l'ensemble des donnes jointes ;
la plupart des applications effectuent des balayages de table lors des
jointures de tables ;
la complexit de calcul des colonnes drives requiert des tables
temporaires ou des requtes trs complexes.
107
La dnormalisation doit reposer sur une connaissance approfondie des
applications et n'tre effectue que si les performances en dpendent
La dnormalisation prsente les inconvnients suivants :
Gnralement, elle acclre les recherches mais ralentit les modifications de
donnes.
Elle est toujours spcifique d'une application et doit tre rvalue si l'application
volue.
Elle peut entraner un accroissement de la taille des tables.
Dnormalisation
Elle peut entraner un accroissement de la taille des tables.
Dans certains cas, elle simplifie la programmation, alors que dans d'autres elle la
rend plus complexe.
La dnormalisation peut amliorer les performances en :
Rduisant le nombre de jointures requises ;
Limitant le nombre de cls trangres sur les tables ;
Diminuant le nombre d'index, ce qui conomise l'espace de stockage et rduit le
temps de modification des donnes ;
Calculant au pralable les valeurs d'agrgat
Rduisant, dans certains cas, le nombre de tables.
108
Lorsque on dcide de dnormaliser, on doit analyser, pour les applications
de lenvironnement, les spcifications d'accs aux donnes ainsi que les
caractristiques de performances relles.
Une indexation correcte et quelques autres solutions rsolvent souvent de
nombreux problmes de performances.
Lorsque on envisage la dnormalisation :
Quelles sont les transactions critiques et quel est le temps de rponse voulu ?
Dnormalisation
Quelles sont les transactions critiques et quel est le temps de rponse voulu ?
Quelle est la frquence d'utilisation des transactions ?
Quelles tables ou colonnes ces transactions utilisent-elles ? a combien de lignes
accdent-elles chaque fois ?
Quelle est la combinaison des types de transaction : select, insert, update et delete ?
Quel est l'ordre de tri habituel ?
Quelle concurrence d'accs on veut mettre en uvre ?
De quelle taille sont les tables les plus frquemment utilises ?
Certains processus gnrent-ils des donnes agrges ?
Quel est l'emplacement physique des donnes ?
109
Dnormalisation : Techniques
Le terme de dnormalisation sapplique avec deux objectifs principaux :
1. Simplifier le schma relationnel en rduisant le nombre dlments qui le
composent (fichiers ou segments ou records ou relation).
2. Faciliter laccs aux donnes en introduisant un certain degr de redondance.
Exemple :
- Duplication de colonnes pour liminer les jointures frquentes
Les problmes soulevs par cette solution sont les suivants : Les problmes soulevs par cette solution sont les suivants :
Elle ncessite la mise jour de la nouvelle colonne. Toutes les modifications doivent
tre effectues dans deux tables et peut-tre sur de nombreuses lignes dans une table.
Elle requiert davantage d'espace disque.
- Ajout de colonnes drives: pour liminer les jointures et rduire le temps
ncessaire pour gnrer des valeurs d'agrgat
Ces techniques reviennent introduire des anomalies dans le schma. Il
faut donc systmatiquement comparer le gain attendu avec les risques
courus !
110
Si la plupart des utilisateurs ont besoin de visualiser l'ensemble des
donnes jointes de deux tables, la destructuration des deux tables
permettant d'en crer une seule peut amliorer les performances en
liminant la jointure.
On peut supprimer les entits qui portent peu dattributs en les dplaant
vers une autre relation.
Exemple : si le schma de Cinema est simplement Cinma (nom, adresse),
Dnormalisation : Techniques
Exemple : si le schma de Cinema est simplement Cinma (nom, adresse),
on peut supprimer la relation et placer ladresse dans Salle.
Salle (nomCinma, noSalle, adresse)
Ladresse dun cinma est duplique autant de fois quil y a de salles. Cette
option implique une perte de place due la redondance, un effort de saisie
supplmentaire, et des risques dincohrences.
Elle ne peut tre valable que tant quil ny a pas dattributs ajouter pour
qualifier un cinma. Quand ce sera le cas, il faudra finalement se dcider
1. Crer la relation Cinma
2. Supprimer les attributs mal placs dans Salle.
111
Langage de Dfinition de Donnes
Le langage de dfinition de donnes permet de spcifier le schma
dune base de donnes relationnelle.
Ce langage correspond une partie de la norme SQL (structured query
language), lautre partie tant relative la manipulation des donnes
(LMD).
La dfinition dun schma logique comprend essentiellement deux La dfinition dun schma logique comprend essentiellement deux
parties
la description des tables et de leur contenu
les contraintes qui portent sur les donnes de la base.
La spcification des contraintes est souvent place au second plan bien
quelle soit en fait trs importante :
Elle permet dassurer, au niveau de la base des contrles sur lintgrit des
donns qui simposent toutes les applications accdant cette base.
112
La norme SQL ANSI propose un ensemble de types
Langage de Dfinition de Donnes
113
Cration des tables
La commande principale est CREATE TABLE.
Exemple : cration de la table Internaute.
CREATE TABLE Internaute ( email VARCHAR (50) NOT NULL,
nom VARCHAR (20) NOT NULL,
Langage de Dfinition de Donnes
prenomVARCHAR (20),
motDePasse VARCHAR (60) NOT NULL,
anneeNaiss DECIMAL (4) )
La syntaxe se comprend aisment. La seule difficult est de choisir
correctement le type de chaque attribut.
Le NOT NULL dans la cration de table Internaute indique que
lattribut correspondant doit toujours avoir une valeur.
114
Cration des tables
Loption NOT NULL oblige toujours indiquer une valeur.
garantir que tout internaute a un mot de passe.
Une autre manire de forcer un attribut toujours prendre une
Langage de Dfinition de Donnes
Une autre manire de forcer un attribut toujours prendre une
valeur est de spcifier une valeur par dfaut avec loption
DEFAULT.
CREATE TABLE Cinma (nom VARCHAR (50) NOT NULL,
adresse VARCHAR (50) DEFAULT Inconnue)
115
Contraintes
La cration dune table vue prcdemment est extrmement sommaire :
elle nindique que le contenu de la table sans spcifier les contraintes que
doit respecter ce contenu.
Il y a toujours des contraintes et il est indispensable de les inclure dans le
schma pour assurer lintgrit de la base, dans la mesure du possible.
Langage de Dfinition de Donnes
schma pour assurer lintgrit de la base, dans la mesure du possible.
Voici les rgles (ou contraintes dintgrit) que lon peut demander au
systme de garantir :
1. Un attribut doit toujours avoir une valeur. Cest la contrainte NOT NULL
2. Un attribut (ou un ensemble dattributs) constitue(nt) la cl de la relation.
3. Un attribut dans une table est lie la cl primaire dune autre table (intgrit
rfrentielle).
4. La valeur dun attribut doit tre unique au sein de la relation.
5. Toute rgle sappliquant la valeur dun attribut (min et max par exemple).
116
Cls dune table
La cl primaire est spcifie avec loption PRIMARY KEY.
CREATE TABLE Internaute (email VARCHAR (50) NOT NULL
nom VARCHAR (20) NOT NULL,
prenomVARCHAR (20),
motDePasse VARCHAR (60) NOT NULL,
Langage de Dfinition de Donnes
anneeNaiss INTEGER,
PRIMARY KEY (email))
Une cl peut tre constitue de plusieurs attributs
CREATE TABLE Notation (idFilm INTEGER NOT NULL,
email VARCHAR (50) NOT NULL,
note INTEGER DEFAULT 0,
PRIMARY KEY (titre, email))
Tous les attributs figurant dans une cl doivent tre dclars NOT NULL.
117
On peut galement spcifier que la valeur dun attribut est unique pour
lensemble de la colonne. Cela permet dindiquer des cls secondaires.
On peut par exemple indiquer que deux artistes ne peuvent avoir les mmes nom et
prnom avec loption UNIQUE.
CREATE TABLE Artiste(id INTEGER NOT NULL,
nom VARCHAR (30) NOT NULL,
prenomVARCHAR (30) NOT NULL,
Langage de Dfinition de Donnes
anneeNaiss INTEGER,
PRIMARY KEY (id),
UNIQUE (nom, prenom));
On ne peut pas trouver deux cinmas la mme adresse
CREATE TABLE Cinema
(nom VARCHAR (30) NOT NULL,
adresse VARCHAR(50) UNIQUE,
PRIMARY KEY (nomCinema))
Il est plus facile de supprimer cette contrainte de cl secondaire.
118
Cls trangres
On peut spcifier les cls trangres avec loption FOREIGN KEY.
CREATE TABLE Film (idFilm INTEGER NOT NULL,
titre VARCHAR (50) NOT NULL,
annee INTEGER NOT NULL,
idMES INTEGER,
Langage de Dfinition de Donnes
idMES INTEGER,
codePays INTEGER,
PRIMARY KEY (idFilm),
FOREIGN KEY (idMES) REFERENCES Artiste,
FOREIGN KEY (codePays) REFERENCES Pays);
La commande FOREIGN KEY (idMES) REFERENCES Artiste
indique que idMES rfrence la cl primaire de la table Artiste.
Le SGBD vrifiera alors, pour toute modification pouvant affecter le lien entre les
deux tables, que la valeur de idMES correspond bien une ligne de Artiste.
119
numration des valeurs possibles avec CHECK
Loption CHECK (condition) exprime des contraintes portant soit sur un attribut,
soit sur une ligne. La condition elle-mme peut tre toute expression suivant la
clause WHERE dans une requte SQL.
Exemple qui restreint les valeurs possibles des attributs annee et genre dans la
table Film.
CREATE TABLE Film (titre VARCHAR (50) NOT NULL,
Langage de Dfinition de Donnes
CREATE TABLE Film (titre VARCHAR (50) NOT NULL,
annee INTEGER
CHECK (annee BETWEEN 1890 AND 2000) NOT NULL,
genre VARCHAR (10)
CHECK (genre IN (Histoire,Western,Drame)),
idMES INTEGER,
codePays INTEGER,
PRIMARY KEY (titre),
FOREIGN KEY (idMES) REFERENCES Artiste,
FOREIGN KEY (codePays) REFERENCES Pays);
120
Modification du schma
La forme gnrale de la commande permettant de modifier une table est :
ALTER TABLE nomTable ACTION description
ACTION peut tre principalement ADD, MODIFY, DROP ou RENAME
description est la commande de modification associe ACTION.
La modification dune table peut poser des problmes si elle est incompatible
Langage de Dfinition de Donnes
La modification dune table peut poser des problmes si elle est incompatible
avec le contenu existant.
Par exemple passer un attribut NOT NULL implique que cet attribut a dj des valeurs
pour toutes les lignes de la table.
On peut ajouter un attribut region la table Internaute avec la commande :
ALTER TABLE Internaute ADD region VARCHAR(10);
On peut lagrandir avec MODIFY, et la dclarer NOT NULL par la mme
occasion :
ALTER TABLE Internaute MODIFY region VARCHAR(30) NOT NULL;
121
Modification du schma
Il est galement possible de diminuer la taille dune colonne, avec le risque dune
perte dinformation pour les donnes existantes.
On peut mme changer son type, pour passer par exemple de VARCHAR
INTEGER, avec un rsultat imprvisible.
Loption ALTER TABLE permet dajouter une valeur par dfaut.
Langage de Dfinition de Donnes
Loption ALTER TABLE permet dajouter une valeur par dfaut.
ALTER TABLE Internaute ALTER region SET DEFAULT EUROPE;
On peut dtruire un attribut avec DROP.
ALTER TABLE Internaute DROP region;
122
Cration dindex
Un index offre un chemin daccs aux lignes dune table qui est considrablement
plus rapide que le balayage de cette table du moins quand le nombre de lignes
est trs lev.
Les SGBD crent systmatiquement un index sur la cl primaire de chaque table.
Il y a deux raisons cela ;
1. lindex permet de vrifier rapidement, au moment dune insertion, que la cl nexiste pas
Langage de Dfinition de Donnes
1. lindex permet de vrifier rapidement, au moment dune insertion, que la cl nexiste pas
dj ;
2. beaucoup de requtes SQL, notamment celles qui impliquent plusieurs tables (jointures), se
basent sur les cls des tables pour reconstruire les liens. Lindex peut alors tre utilis pour
amliorer les temps de rponse.
La commande pour crer un index est la suivante
CREATE [UNIQUE] INDEX nomIndex ON nomTable (attribut1 [, ...])
La clause UNIQUE indique quon ne peut pas trouver deux fois la mme cl.
123
Cration dindex
On peut crer un index de nom idxNom sur les attributs nom et
prenom de la table Artiste. Cet index a donc une fonction quivalente
la clause UNIQUE dj utilise dans la cration de la table.
CREATE UNIQUE INDEX idxNom ON Artiste (nom, prenom);
Langage de Dfinition de Donnes
On peut crer un index, cette fois non unique, sur lattribut genre de
la table Film.
CREATE INDEX idxGenre ON Film (genre);
Excuter trs rapidement des requtes SQL ayant comme critre de
recherche le genre dun film.
SELECT *
FROM Film
WHERE genre = Western
124