CHAPITRE I
Structurer les données
Contenu du chapitre : Objectifs du chapitre :
SGBD Exemples traités
Ce chapitre a comme objectifs de :
ODBC Gestion d’un lycée x
MySQL Gestion de livres x montrer la réalisation d’une base
x
SQL Server Gestion des examens x de données simple ;
ACCESS Gestion d’un stock x x énoncer les règles simples de
Gestion d’un organisme de conception.
x
formation Il permet au lecteur d’avoir les
Gestion d’une compagnie éléments de base pour réaliser un
Env. De dev. x
d’assurances schéma de base de données cohérent.
Gestion d’une salle de La conception de celui-ci est une étape
Visual Studio x
spectacles décisive sur laquelle repose tous les
Qt Creator Gestion d’un cabinet médical x développements informatiques. Ce
Netbeans chapitre n’est pas un cours sur
Eclipse « Comment réaliser un bon schéma de
XCode base de données ?» mais uniquement un
rappel des points clés à connaître pour
Langage éviter de commettre des erreurs
C/C++ C# grossières lors de l’analyse d’un
Java PHP problème.
JavaScript SQL Systèmes
Objective C Windows x Linux x Mac x
1. Conception d’une base de données
1.1 Notions de bases
Une base de données est un ensemble structuré de données enregistrées avec le minimum de
redondance pour satisfaire simultanément plusieurs utilisateurs de façon sélective en un temps
opportun. Concevoir une base de données consiste à déterminer à partir d’un énoncé quelles
sont les entités présentes et quelles relations existent entre elles. Les entités correspondent à la
notion de classe de l’approche « objets » et sont caractérisées par des attributs. Elles sont
d’abord décrites (présentées) dans un schéma nommé MCD pour Modèle Conceptuel de
Données. Puis ces mêmes entités sont transformées en tables (ou relations) dans un schéma
MLD pour Modèle Logique de Données. La Figure 1–1 donne le principe de conception d’une
base de données.
De manière générale les différentes étapes sont :
x analyse de la situation existante et des besoins ;
x création du MCD puis du MLD qui permettent de représenter tous les aspects importants ;
2 Chapitre 1
x implémentation de la Base De Données (BDD) ou l’élaboration du modèle physique de
données.
Problème BDD
Analyse MCD MLD
Figure 1–1. Principes de conception d’une base de données
Le MCD fait référence à tous les objets du système d'information et aux relations/associations
entre ces objets. Le formalisme utilisé est le formalisme Entité-Association. Ainsi, le MCD est
un schéma dans lequel on représente :
x des entités ;
x des associations (relations) entre les entités.
Créer un MCD suppose de :
x dégager les entités (ou concept) du problème ;
x lister leurs propriétés (information attachée) ;
x exprimer les relations qui les lient entre elles ;
x déterminer ensuite les cardinalités de ces relations.
Une entité est un élément de l’univers modélisé qui se caractérise par un nom et par des
propriétés. Cette entité permet de modéliser un ensemble d'objets concrets ou abstraits de même
nature. Généralement on représente une entité par un rectangle avec son nom en son centre et
les propriétés par des ovales « reliés » au rectangle (l’entité). On peut aussi avoir une
représentation plus proche de celle qu’on retrouve dans des langages orientés objet (UML pour
Unified Modeling Language par exemple) sous la forme d’un rectangle listant les propriétés de
l’objet. Il s’agit en fait d’une classe au sens classique du terme. Ces deux formalismes sont
représentés sur la Figure 1–2.
<propriété1> <NOM>
<Propriété1>
<Propriété2>
<Propriété3>
<propriété2> <NOM>
<propriété3>
Figure 1–2. Représentation d’une entité (d’une classe)
Lorsque la propriété est soulignée, elle permet d’identifier l’objet (c’est l’identifiant de l’entité
qui permet de caractériser de manière unique une occurrence de l’entité.
Structurer les données 3
NOM1 L’instance (occurrence) d’une classe est une
NOM2 entité particulière pour laquelle les
Valeur1
valeur2 NOM3 différentes propriétés sont des valeurs
Valeur1
valeur3
valeur2 valuées, définissant ainsi les caractéristiques
Valeur1
valeur3
valeur2 propres de l’entité comme le montre la
valeur3 Figure 1–3.
Figure 1–3. Représentation de plusieurs entités
(instances de la classe)
Une relation/association entre deux ou plusieurs entités est un regroupement d'entités traduisant
une certaine réalité.
<propriété> <propriété>
<propriété>
x2, y2 x1, y1
<propriété> <NOM1> RELATION <NOM2>
<propriété> <propriété>
Figure 1–4. Représentation d’une relation entre plusieurs entités
Le schéma de la Figure 1–4 introduit la notion de cardinalité au niveau d’une relation binaire
entre deux entités. Cette cardinalité se traduit comme suit : une entité NOM1 est reliée à au
moins x2 entités NOM2 et à au plus y2 entités NOM2 et de la même manière, une entité NOM2
est reliée à au moins x1 entités NOM1 et à au plus y1 entités NOM1. Attention à la lecture de
ces « cardinalités » (x1, y1 et x2, y2). Selon le formalisme utilisé la signification est différente.
Le modèle MCD est une partie de Merise, et la lecture des cardinalités suit ce formalisme.
1.2 Exemple de MCD : gestion d’un lycée
Considérons le secrétariat d’un lycée qui gère les élèves et les classes dans lesquelles ils sont
repartis. La liste des élèves par classe, la caractérisation des élèves (appartenance à une classe, à
un cycle d’étude) sont les informations qui vont être traitées. La première partie de l’analyse
consiste à identifier les entités. Ici deux groupes d’informations peuvent être identifiés. Celles
relevant de l’élève et celles relevant de la classe d’appartenance (Figure 1–5).
Figure 1–5. Liste des élèves du Lycée du Général de Gaulle
4 Chapitre 1
Ceci permet de mettre en évidence deux entités et la relation entre élève et classe. La relation
entre les deux est nommée « FREQUENTE ». Le schéma ci-dessous se lit : « un élève fréquente
1 (au minimum) et 1 (au maximum) seule classe » et « une classe est fréquentée au minimum
par un et au maximum par n (nombre non défini, potentiellement grand) élèves ».
1,1 Fréquente 1,n Classe
Eleve
Figure 1–6. Modélisation des deux entités avec la relation « fréquente »
La deuxième partie de l’analyse consiste à identifier les attributs des deux entités. Ici on peut
citer pour un élève :
x Matricule ;
x Nom ;
x Prenom ;
x Rue ;
x Domicile.
On trouve aussi pour une classe :
x Designation ;
x Cycle.
Ces informations sont rajoutées sur le schéma sous les deux formes possibles (Figure 1–7 et
Figure 1–8).
MATRICULE DOMICILE DÉSIGNATION
NOM
1,n 1,1 CLASSE
ELEVE FRÉQUENTE
CYCLE
PRÉNOM RUE
Figure 1–7. Modélisation du problème
1,1 1,n
ELEVE FREQUENTE CLASSE
MATRICULE DESIGNATION
NOM CYCLE
PRENOM
RUE
DOMICILE
Figure 1–8. Modélisation du problème
1.3 Exemple de MCD : gestion des livres
On considère la gestion d’une bibliothèque et en particulier la gestion des livres. On considère
qu’un livre est écrit par un seul auteur. Un auteur peut écrire plusieurs livres. On envisage aussi
Structurer les données 5
le cas où le nom d’un auteur est stocké dans la base de données alors qu’aucun de ses livres ne
figure dans celle-ci.
Après l’analyse et la spécification du problème on retrouve les différentes informations
structurées dans les listes ci-dessous (Tableau 1-1 et Tableau 1-2).
Tableau 1-1. Liste des livres Tableau 1-2. Liste des auteurs
Numéro Titre Prix Auteur Nom Prénom Domicile Numéro
10101 aaaaa 10 Emilie Castafiore Castafiore Emilie Paris 85478
11111 ee 54 Emilie Chambord Chambord Emilie Nice 3547
80808 cccc 45 Emilie Castafiore Dupont Pierre Avignon 542563
90909 ddddd 35 Roland Momo Fabière Sylvie Bordeaux 52136
202022 bb 25 Sylvie Fabière Momo Roland Toulouse 8547585
Tintin Thiery Clermont 78545
L’analyse du problème permet d’identifier deux entités :
x AUTEUR,
x LIVRE
Il existe une relation que l’on peut nommer Ecrire entre l’entité LIVRE et l’entité AUTEUR. Le
MCD correspondant est proposé sur la Figure 1–9
1,1 0,n
LIVRE ECRIRE AUTEUR
NUMERO_L NUMERO_A
TITRE NOM
PRIX PRENOM
DOMICILE
Figure 1–9. MCD du problème de gestion de la bibliothèque
Le schéma fait apparaître qu’un livre est écrit par un et un seul auteur alors qu’un auteur est à
l’origine de 0 à n livres. Ceci est modélisé par la relation ECRIRE entre les deux entités LIVRE
et AUTEUR sur le schéma de la Figure 1–9.
1.4 Exemple de MCD : gestion des résultats d’examen
On considère la gestion des résultats aux examens dans un lycée. Chaque élève est inscrit dans
une école particulière par exemple l’élève Tintin Thierry est inscrit au lycée Racine de Paris.
Dans son lycée, chaque élève suit des matières pour lesquelles on stocke les notes. Ainsi l’élève
Tintin du Lycée Racine a obtenu 8 en Chimie, 15 en Géographie et 10 en Math. Ceci représente
donc, compte tenu des coefficients, 512 points et permettrait de lui attribuer la mention Bien.
A la demande du recteur
CHIMIE
d’académie, on réalise
chaque année des
Tintin Thierry / Lycée Racine de Paris 08 statistiques par matière et
ceci pour l’ensemble des
Castafiore Béatrice / Lycée Fénelon de Clermont 17 écoles.
Dupont Patrick / PNM de La Flèche 12
Figure 1–10. Relevé des notes obtenues dans les différents lycées pour
la matière CHIMIE
6 Chapitre 1
Par exemple, pour la matière CHIMIE, les trois élèves (Tintin, Castafiore et Dupont), des
lycées Lycée Racine de Paris, Lycée Fénelon de Clermont et du Lycée PNM de la Flèche ont
obtenu les notes 8, 17,12 (Figure 1–10).
L’analyse du problème permet d’identifier trois entités : ELEVE, ECOLE et MATIERE (voir
Figure 1–11) et 2 relations nommées FREQUENTER et INSCRIRE.
1,1
FREQUENTER
1,n
ECOLE
Un élève fréquente une et
ELEVE
une seule école alors
NUMERO_Ec
NUMERO_El
NOM NOM qu’une école est
PRENOM RUE fréquentée par un à n
LOCALITE LOCALITE
élèves. Ceci est modélisé
par la relation Fréquenter.
Cette association est du
type un à plusieurs. Un
1,n élève est inscrit pour
INSCRIRE MATIERE suivre de une à n matières
et une matière est suivie
NUMERO_M
NOTE 1,n
DESIGNATION
par un à n élèves. Il s’agit
de la relation INSCRIRE
entre les deux entités
MATIERE et ELEVE qui
Figure 1–11. MCD du problème de gestion des résultats d’examen est du type plusieurs à
plusieurs.
1.5 Transformation du MCD en MLD
Le MLD contient toutes les informations du MCD, mais les représente à l'aide d'un formalisme
différent qui est très adapté aux structures d'une base de données. Un MLD est essentiellement
composé de tables logiques reliées entre elles par des flèches.
Le passage peut se faire en deux étapes :
x Une première étape qui consiste à traduire les entités : toute entité est transformée en table.
Les propriétés de l'entité deviennent les attributs de la table. L'identifiant de l'entité est la clé
de la table ;
x Une deuxième étape qui consiste à traduire les associations en appliquant plusieurs règles
simples.
Règle 1.
Dans le cas général toute association de la forme 1-1 / x-n (un à plusieurs) dans le MCD est
représentée dans le MLD par une copie de la clé primaire de l’entité qui se trouve du côté x-n
dans l’entité qui se trouve du côté 1-1. La copie de la clé primaire dans table destination est
appelée clé étrangère.
1, 1 1, n
ENTITE 1 RELATION ENTITE 2
<propriété21>
<propriété11> <propriété22>
<propriété12> <propriété23>
<propriété13> <propriété24>
<propriété14>
Figure 1–12. Relation 1-1 / x-n
Structurer les données 7
Considérons l’exemple de la Figure 1–12. Il s’agit d’une relation entre l’entité 1 et l’entité 2 de
type x, n (un à plusieurs) où x vaut 0 ou 1. On peut trouver cette relation par exemple entre un
livre et un auteur (Figure 1–13). En effet, un livre est écrit par un et un seul auteur alors qu’un
auteur a écrit de 0 à n livres.
1, 1 1, n
ENTITE 1 RELATION ENTITE 2
<propriété21>
<propriété11> <propriété22>
<propriété12> <propriété23>
<propriété13> <propriété24>
<propriété14>
Figure 1–13. Exemple de relation 1-1 / x-n (MCD)
Le passage du MCD au MLD consiste à recopier la clé <propriétés2> dans la table <ENTITE1>
ce qui donne le MLD de la Figure 1–14.
ENTITE 1 ENTITE 2 LIVRE AUTEUR
<propriété11> <propriété21> NUMERO_L NUMERO_A
<propriété21> <propriété22> NUMERO_A NOM
<propriété12> <propriété23> TITRE PRENOM
<propriété13> <propriété24> PRIX DOMICILE
<propriété14>
Figure 1–14. Exemple de relation 1-1 / x-n (MLD) Figure 1–15. Exemple de relation 1-1 / x-n
(MLD)
L’application de ces règles au MCD de la Figure 1–13 donne le MLD de la Figure 1–15. La clé
primaire de l’entité AUTEUR est recopiée dans l’entité LIVRE.
Règle 2.
Toute relation de la forme x-n / x-n (plusieurs à plusieurs) dans le MCD est représentée dans le
MLD par une table comportant la recopie de la clé primaire de chaque table participant à la
relation.
x, n x, n
ENTITE 1 RELATION ENTITE 2
<propriété21>
<propriété11> <propriété22>
<propriété12> <propriété23>
<propriété13> <propriété24>
<propriété14>
ENTITE 1 RELATION ENTITE 2
<propriété21>
<propriété11> <propriété11> <propriété22>
<propriété12> <propriété21> <propriété23>
<propriété13> <propriété24>
<propriété14>
Figure 1–16. Exemple de relation x-n - / x-n (MCD et MLD)
8 Chapitre 1
Un exemple d’application de cette règle est donné par la Figure 1–16. Le MLD comprend trois
tables : deux tables pour les deux entités et une troisième qui représente la relation. Cette
troisième table comprend les clés primaires des deux autres tables.
Reprenons l’exemple de la gestion des examens. Deux relations ont été identifiées : la relation
FREQUENTER et la relation INSCRIRE. La relation FREQUENTER est une relation de type
1-1 / x-n ce qui conduit à appliquer la règle numéro 1 c’est-à-dire à recopier la clé primaire de la
table ECOLE dans la table ELEVE. La relation INSCRIRE est une relation x-n / x-n et nécessite
l’application de la règle numéro 2.
ELEVE ECOLE
La relation devient une table qui comprend
les deux clés de chacune des deux tables
NUMERO_El NUMERO_Ec
NUMERO_Ec NOM qu’elle associe. Ainsi dans la relation
NOM RUE INSCRIRE, on trouve la clé primaire de la
PRENOM LOCALITE table ELEVE (NUMERO_EL) et la clé
LOCALITE
primaire de la table MATIERE
(NUMERO_M). Le MLD ainsi obtenu est
présenté sur la Figure 1–17.
INSCRIRE MATIERE
NUMERO_El NUMERO_M
NUMERO_M DESIGNATION
NOTE
Figure 1–17. Le MLD pour la gestion des examens
Règle 3.
Toute relation ternaire (faisant intervenir trois entités) devient une table. Si toutes les
cardinalités sont de la forme x-n / x-n / x-n dans le MCD alors la clé primaire de la table est
obtenue par la concaténation des clés tables associées.
Un exemple d’application de cette règle est donné par la Figure 1–18.
0,1 x, n
ENTITE 1 RELATION ENTITE 2
<propriété21>
<propriété11> <propriété22>
<propriété12> <propriété23>
<propriété13> <propriété24>
<propriété14>
x, n
ENTITE 3
<propriété31>
<propriété32>
<propriété33>
<propriété34>