Bases de Données: Modélisation Des
Bases de Données: Modélisation Des
Bases de Données: Modélisation Des
ec
Christian Soutou ins 30 ex
C. Soutou
pir e
Avec la contribution de Frédéric Brouard és rcice
de s
cas corr
rée igé
4e édition ls s
Modélisation des
bases de données
4e édition
Concevoir une base de données Maître de conférences rattaché au département Réseaux
à l’aide d’UML ou d’un formalisme entité-association
Modélisation des
S’adressant aux architectes logiciels, chefs de projet, analystes, développeurs,
responsables méthode et étudiants en informatique, cet ouvrage explique aussi consultant indépendant chez Orsys et auteur de
comment créer un diagramme conceptuel pour concevoir une base de données nombreux ouvrages aux éditions Eyrolles.
optimisée via le langage SQL. La démarche est indépendante de tout éditeur MVP SQL Server depuis plus de dix ans, Frédéric Brouard
de logiciel et aisément transposable, quel que soit l’outil de conception choisi.
bases de données
dirige la société SQL Spot qui fournit des services
Le livre décrit d’abord la construction d’un modèle conceptuel à l’aide de règles d’assistance, de conseil, d’audit et de formation sur
de validation et de normalisation. Tous les mécanismes de dérivation d’un SQL Server et l’architecture de données. Enseignant
modèle conceptuel dans un schéma relationnel sont clairement commentés dans différentes écoles d’ingénieur, il a écrit plusieurs
à l’aide d’exemples concrets. Le modèle logique peut être ensuite optimisé livres consacrés à SQL et rédigé de nombreux articles,
avant l’écriture des scripts SQL. Les règles métier sont implémentées par des notamment sur le site developpez.com.
contraintes SQL, déclencheurs, ou dans le code des transactions. La dernière
étape consiste à définir les vues pour les accès extérieurs. Le livre se clôt par
une étude comparative des principaux outils de modélisation sur le marché. Au sommaire
En grande partie réécrite pour prendre en compte les formalismes entité-
association tels que Merise ou Barker, cette quatrième édition est commentée Le niveau conceptuel. Analyse des besoins. Concepts UML et les modèles entité-association
par Frédéric Brouard, expert SQL Server et auteur de nombreux ouvrages et majeurs. Identifiants. Associations binaires et n-aires.
articles sur le langage SQL. Émaillée d’une centaine de schémas et d’illus- Couples à rattacher et avec doublons. Identification relative.
trations, elle est complétée par 30 exercices inspirés de cas réels. Héritage. Aspects temporels. Démarche à adopter. Règles
métier et contraintes. Règles de validation. Le niveau
29,90 €
Conception de couverture :
Studio Eyrolles © Éditions Eyrolles
C. Soutou
pir e
Avec la contribution de Frédéric Brouard és rcice
de s
cas corr
rée igé
4e édition ls s
Modélisation des
bases de données
4e édition
Concevoir une base de données Maître de conférences rattaché au département Réseaux
à l’aide d’UML ou d’un formalisme entité-association
Modélisation des
S’adressant aux architectes logiciels, chefs de projet, analystes, développeurs,
responsables méthode et étudiants en informatique, cet ouvrage explique aussi consultant indépendant chez Orsys et auteur de
comment créer un diagramme conceptuel pour concevoir une base de données nombreux ouvrages aux éditions Eyrolles.
optimisée via le langage SQL. La démarche est indépendante de tout éditeur MVP SQL Server depuis plus de dix ans, Frédéric Brouard
de logiciel et aisément transposable, quel que soit l’outil de conception choisi.
bases de données
dirige la société SQL Spot qui fournit des services
Le livre décrit d’abord la construction d’un modèle conceptuel à l’aide de règles d’assistance, de conseil, d’audit et de formation sur
de validation et de normalisation. Tous les mécanismes de dérivation d’un SQL Server et l’architecture de données. Enseignant
modèle conceptuel dans un schéma relationnel sont clairement commentés dans différentes écoles d’ingénieur, il a écrit plusieurs
à l’aide d’exemples concrets. Le modèle logique peut être ensuite optimisé livres consacrés à SQL et rédigé de nombreux articles,
avant l’écriture des scripts SQL. Les règles métier sont implémentées par des notamment sur le site developpez.com.
contraintes SQL, déclencheurs, ou dans le code des transactions. La dernière
étape consiste à définir les vues pour les accès extérieurs. Le livre se clôt par
une étude comparative des principaux outils de modélisation sur le marché. Au sommaire
En grande partie réécrite pour prendre en compte les formalismes entité-
association tels que Merise ou Barker, cette quatrième édition est commentée Le niveau conceptuel. Analyse des besoins. Concepts UML et les modèles entité-association
par Frédéric Brouard, expert SQL Server et auteur de nombreux ouvrages et majeurs. Identifiants. Associations binaires et n-aires.
articles sur le langage SQL. Émaillée d’une centaine de schémas et d’illus- Couples à rattacher et avec doublons. Identification relative.
trations, elle est complétée par 30 exercices inspirés de cas réels. Héritage. Aspects temporels. Démarche à adopter. Règles
métier et contraintes. Règles de validation. Le niveau
Modélisation
des bases de données
4e édition
ÉDITIONS EYROLLES
61, bd Saint-Germain
75240 Paris Cedex 05
www.editions-eyrolles.com
DU MÊME AUTEUR
C. Soutou. – Programmer avec MySQL (5e édition).
N°67379, 2017, 522 pages.
C. Soutou. – SQL pour Oracle (7e édition).
N°14156, 2015, 672 pages.
C. Soutou, F. Brouard, N. Souquet et D. Barbarin. – SQL Server 2014.
N°13592, 2015, 890 pages.
AUTRES OUVRAGES
F.-X. Bois et A. Lies Benhenni. – Bases de données orientées graphes avec Neo4j.
N°13804, 2016, 182 pages.
R. Bruchez. – Les bases de données NoSQL et le Big Data (2e édition).
N°14155, 2015, 332 pages.
P. Roques. – Mémento UML 2.5 (3e édition).
N°14356, 2015, 14 pages.
P. Roques. – UML 2 par la pratique (7e édition).
N°12565, 2009, 396 pages.
P. Roques. – UML 2 par la pratique (6e édition).
N°13344, 2011, 370 pages (format semi-poche).
P. Roques et F. Vallée. – UML 2 en action (4e édition).
N°12104, 2007, 396 pages.
H. Balzert. – UML 2.
N°11753, 2006, 88 pages.
F. Vallée. – UML pour les décideurs.
N°11621, 2005, 282 pages.
H. Bersini. – La programmation orientée objet (7e édition). Cours et exercices en UML 2,
Python, PHP, C# , C++ et Java (y compris Android).
N°67399, 2017, 696 pages.
En application de la loi du 11 mars 1957, il est interdit de reproduire intégralement ou partiellement le présent
ouvrage, sur quelque support que ce soit, sans l’autorisation de l’Éditeur ou du Centre Français d’exploitation du
droit de copie, 20, rue des Grands Augustins, 75006 Paris.
© Groupe Eyrolles, 2007, 2012, 2015, 2017 ISBN : 978-2-212-67487-3
Table des matières
Avant-propos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Les pictogrammes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Évolution des modèles de données. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Tables vs documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Les tables du modèle relationnel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Le modèle document. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Quel formalisme utiliser ?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Le formalisme de Barker. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Le diagramme de classes d’UML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
La démarche à adopter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Niveau conceptuel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Niveau relationnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Niveau SQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Niveau externe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Les outils du marché. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Annexes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
À qui s’adresse cet ouvrage ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Contact avec l’auteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
© Éditions Eyrolles V
Modélisation des bases de données Table des matières
1 Le niveau conceptuel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Analyse des besoins. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Premiers exemples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Le jargon du terrain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Ne confondez pas traitements et données. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Le dictionnaire des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Les concepts majeurs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Un peu d’histoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Terminologie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Attribut ou information ?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Classe ou entité ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Les identifiants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Qui dit libellé, dit identifiant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Concrets ou abstraits ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Artificiels ou naturels ?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Plusieurs, c’est possible ?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Les associations binaires. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Multiplicités versus cardinalités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Le maximum est prépondérant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Le minimum est-il illusoire ?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Réflexivité. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Les rôles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Mise en pratique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Les associations plus complexes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Les couples à rattacher. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Premier exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Formalismes entité-association. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Rattacher une classe-association UML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Rattacher un couple avec les formalismes entité-association. . . . . . . . . . . . . . . . . . . . . . . . 67
La réflexivité. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Formalismes entité-association. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Mise en pratique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Les associations n-aires. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Savoir les interpréter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Le langage du formalisme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Quelques bêtises du Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
VI © Éditions Eyrolles
Table des matières Modélisation des bases de données
© Éditions Eyrolles IX
Modélisation des bases de données Table des matières
X © Éditions Eyrolles
Table des matières Modélisation des bases de données
Rétroconception. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
Win’Design. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
Identifiants. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
Associations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
Héritage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
Génération du modèle relationnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
Génération des tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
Rétroconception. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
© Éditions Eyrolles XI
Modélisation des bases de données Table des matières
B Bibliographie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
Les pictogrammes
© Éditions Eyrolles 1
Modélisation des bases de données
Avant de rentrer dans le vif du sujet, rappelons brièvement pourquoi les bases de données
relationnelles occupent toujours une part prépondérante du marché alors que le big data est en
pleine croissance.
1. Les fichiers COBOL (Common Business Oriented Language) furent les plus utilisés par
l’informatique de gestion jusque dans les années 1980. Au début des années 2000, le Gart-
ner Group estimait que cette technologie était utilisée encore par plus de la moitié des
applications. Bien que la structure d’un fichier de données s’apparente à celle d’une table
(suite de champs de types numériques ou alphanumériques), l’inconvénient majeur de
COBOL est la forte dépendance qui existe entre la structure des données stockées et les
traitements. En effet, chaque programme contient la structure des fichiers utilisés, ce qui
impose une maintenance lourde suite à la modification de la structure d’un fichier.
2. Le modèle hiérarchique impose de déterminer une arborescence de données où l’accès à
un enregistrement de niveau inférieur n’est pas possible sans passer par le niveau supérieur.
Promus par IBM et toujours utilisés dans le domaine bancaire, les SGBD hiérarchiques
souffrent toutefois de nombreux inconvénients. Les plus récurrents sont toujours la forte
dépendance entre les données stockées et les méthodes d’accès ; les chaînages internes
impliquent une programmation complexe, des requêtes inadaptées et des mises à jour
hasardeuses. Les modèles XML et JSON qui sont employés par le monde NoSQL (voir
plus loin) rappellent certains inconvénients du modèle hiérarchique.
2 © Éditions Eyrolles
Avant-propos
3. C. Bachman a proposé un modèle brisant les hiérarchies avec le modèle CODASYL pour
les bases de données réseau. Bien que résolvant quelques limitations du modèle hiérar-
chique et annonçant des performances en lecture honorables, le modèle réseau fut bien
trop complexe à mettre en œuvre avec de trop nombreux pointeurs et il n’existe plus de
tels SGBD. Les modèles en graphe qui sont utilisés par le monde NoSQL (voir plus loin)
rappellent certains inconvénients du modèle réseau.
4. E. Codd publie ses écrits [COD 70] posant les bases du modèle relationnel. Toutes les
limitations précédentes sont résolues et les apports principaux concernent l’indépendance
données/traitements, la non-redondance des données, l’intégrité et la capacité d’extraction
par requêtes. Le modèle relationnel est à l’origine du succès que connaissent aujourd’hui
les grands éditeurs de SGBD, à savoir Oracle, IBM, Microsoft et Sybase.
5. Les bases de données ayant adopté le modèle objet permettaient de stocker des données
structurées et d’y adjoindre des méthodes (au sens de sous-programmes). Ce paradigme,
qui a connu le succès qu’on connaît (Java, C#, etc.), n’a pas obtenu les faveurs du marché
frileux à l’idée de transformer ses tables dans des structures de données plus riches mais
moins évolutives.
6. Les éditeurs de bases relationnelles ont proposé des extensions objet suite à l’adoption
généralisée du concept objet dans les langages pour proposer des modèles de données
objet-relationnels. Encore une fois, ces extensions, toujours présentes dans les moteurs, ne
sont pas utilisées pour les mêmes raisons que les bases objet.
7. Les modèles de données NoSQL sont nés avec l’arrivée du big data pour gérer les mon-
tées en charge. Les grands acteurs, tels Google, Amazon, LinkedIn et Facebook, furent
amenés à créer leurs propres systèmes (BigTable, Dynamo, Cassandra). Des implémen-
tations d’architectures open source comme Hadoop et des SGBD comme HBase, Redis,
Riak, MongoDB, CouchDB… ont permis de démocratiser ce nouveau domaine de l’infor-
matique répartie. Dans ces modèles, c’est à l’application cliente de comprendre et de traiter
la structure de données. On distingue plusieurs modèles de données : clé-valeur, orienté
colonnes (table dénormalisée), document (structure de données hiérarchiques comme
XML ou JSON) et graphe (structure de données en réseau). Plus le modèle est complexe,
moins le système est apte à évoluer rapidement du fait de montées en charge.
Tables vs documents
Afin de mieux appréhender les différences fondamentales entre le modèle de données rela-
tionnel et un modèle de données plus structuré comme XML et JSON, considérons un exemple
concret : les passagers d’un vol. Il faudra un document par vol qui permettra de lister les pas-
sagers transportés. Dans le cas des tables, il en faudra probablement plusieurs pour s’assurer
de la cohérence des données (notamment que le vol en question existe et qu’il est aussi prévu
ce jour).
© Éditions Eyrolles 3
Modélisation des bases de données
Tables Document
les accès concurrents et les transactions nécessaires. C’est ce domaine sur lequel nous nous
focaliserons.
●● OLAP (Online Analytical Processing) où les données sont multidimensionnelles (cubes),
en 2D ou 3D avec des fonctions bien spécifiques (calculs de distances, d’aires, etc.) et sui-
vant des variations temporelles.
Si le modèle est normalisé, l’accès aux données sera optimal de même que l’indexation (ici
la liste des passagers d’un vol et la liste des vols d’un passager concerneront la même table).
La théorie des ensembles (algèbre relationnelle) donne un cadre formel à l’interrogation des
4 © Éditions Eyrolles
Avant-propos
tables. Dans le cas de jointures (requêtes multitables), le choix du chemin est assuré par l’opti-
miseur du SGBD. Les index accéléreront les requêtes comme un index vous sert à aller à une
page d’un livre en particulier lorsque vous recherchez un terme en particulier.
Par ailleurs, la redondance des informations ne concerne que les colonnes clés, ce qui rend
toute mise à jour plus robuste et efficace. L’intégrité référentielle par les clés étrangères ajoute
de la cohérence (exemple : un passager ne peut être ajouté à un vol non prévu et un vol prévu
ne peut exister que s’il se trouve dans la table de référence des vols).
Vous allez découvrir tout au long de cet ouvrage comment concevoir de telles tables
Le modèle document
La force de ce modèle de données réside dans le fait qu’un grand nombre d’informations
sont regroupées et correctement structurées (enfin, il faut l’espérer) dans un même enregistre-
ment : un fichier (le plus souvent XML ou JSON). Aucun lien entre fichiers n’est possible, ce
qui implique que la cohérence des données n’est jamais assurée. Rien n’empêchera qu’un vol
inexistant au catalogue soit associé à des passagers. Le langage adapté à ce modèle de données
est bien souvent XPath (pour XML) qui est aussi normalisé.
On trouve une application du modèle document dans le domaine du big data avec les bases
NoSQL (Mongo DB, Couch DB, Riak…).
L’accès aux données sera optimal seulement si la structure du document est en adéquation
avec la requête (ici la liste des passagers d’un vol). En revanche, la liste des vols d’un passager
impliquera le parcours de tous les fichiers avec pour chacun d’entre eux une recherche à l’inté-
rieur... On retombe dans les inconvénients du modèle hiérarchique. Pas de jointures possibles
mais des mécanismes d’index peuvent être mis en œuvre.
Par ailleurs, la redondance d’informations, en général omniprésente dans des documents
XML, rend hasardeuse la plupart des mises à jour.
●● Comment ajouter un client s’il n’est pas passager (on imagine qu’une table client sera mise
aussi.
●● La modification est souvent problématique : les incohérences proviennent des redondances
(par exemple les heures de départ et d’arrivée de chaque vol) qu’il faudra vérifier et répéter
pour chaque document.
Enfin, pour conclure cette comparaison, sachez qu’une seule requête SQL servira à générer un
document XML aussi complexe soit-il à partir de jointures et de données de plusieurs tables.
En revanche, il ne sera pas possible d’automatiser à grande échelle la transformation de docu-
ments XML vers des tables à créer.
© Éditions Eyrolles 5
Modélisation des bases de données
Le formalisme de Barker
Les outils du marché (voir chapitre 5) n’ont souvent emprunté qu’une partie d’un formalisme
en particulier pour ajouter un petit quelque chose qui fait souvent différer un même schéma
entre deux outils distincts. Par exemple, le modèle de Barker qu’Oracle utilise avec l’outil Data
Modeler, s’inspire de la notation Crow’s foot. Je trouve ce formalisme compact, précis et sobre,
c’est pour cela que je l’ai adopté dans cet ouvrage.
6 © Éditions Eyrolles
Avant-propos
© Éditions Eyrolles 7
Modélisation des bases de données
La démarche à adopter
Cet ouvrage s’organise en une introduction de Frédéric Brouard suivie de cinq chapitres qui
décrivent les étapes de conception puis d’implémentation illustrées par la figure suivante. Pour
toute conception, le départ est le système à modéliser via un schéma conceptuel (souvent
nommé logical par les outils). Ce dernier est ensuite dérivé dans un modèle de données rela-
tionnel (relational ou physical, selon les outils) qui sera ensuite optimisé avant l’écriture ou
la génération de scripts SQL implémentant les tables, clés et index. Il s’agira ensuite d’implé-
menter des règles métier en ajoutant des contraintes SQL ou en programmant des déclencheurs.
Ce troisième niveau est souvent appelé « physique ». La dernière étape consistera à définir des
vues (views), véritables interfaces de la base aux utilisateurs. Ce dernier niveau est souvent
appelé « externe ».
Le processus de conception depuis l’analyse du système à modéliser est nommé forward engi-
neering (aussi top-down). Quand il s’agit de retravailler à partir de données existantes pour faire
évoluer la base de données, on parle de reverse engineering (ou bottom-up). Alors que l’automa-
tisation est quasiment assurée par les outils du marché entre le niveau conceptuel et SQL, il n’en
8 © Éditions Eyrolles
Avant-propos
va pas de même de l’élaboration du schéma conceptuel qui va conditionner la suite. Ici, seule
une action humaine permettra de traduire des faits et événements en un schéma graphique.
Niveau conceptuel
Le chapitre 1 décrit la première étape du processus de conception d’une base de données, à
savoir la construction d’un schéma conceptuel. De nombreux exemples et règles de bonne
conduite vous guideront. Ne vous inquitez pas d’obtenir un modèle différent de celui de votre
collègue qui aura travaillé sur le même sujet. Comme le dit Wikipédia, bien que des tech-
niques de modélisation existent et guident chaque concepteur, il n’est pas rare de constater
différents résultats :
À quoi sont dues ces différences ? À l’interprétation humaine de tout système : le point de
vue. Concernant notre exemple, un individu verra un vol comme un ensemble de sièges à
une date donnée, chaque siège étant associé à un client. Un autre individu considérera qu’un
vol concerne plusieurs clients pouvant acheter plusieurs places (pensons au violoncelliste qui
n’acceptera pas de mettre en soute son instrument plusieurs fois centenaire).
Bien que plusieurs schémas conceptuels puissent convenir à une même modélisation, chaque
schéma offre ses avantages et ses inconvénients. Les plus simples vont bien souvent mini-
miser le nombre de tables, mais des contraintes devront être implémentées ultérieurement.
Les schémas plus complexes vont faciliter l’implémentation de règles métier mais seront plus
surchargés et mettront initialement plus de tables en œuvre.
Niveau relationnel
Le chapitre 2 décrit les concepts puis présente les règles qui permettent d’établir un schéma
relationnel avec ses clés à partir d’un schéma conceptuel. Les mécanismes de normalisation
qui optimisent le schéma et les calculs de volumétrie sont également décrits.
Niveau SQL
Le chapitre 3 décrit la syntaxe d’écriture de scripts SQL associée à un schéma relationnel (défi-
nition des tables, clés primaires et étrangères et index) ainsi que l’implémentation d’éventuelles
règles métier par des contraintes ou déclencheurs.
© Éditions Eyrolles 9
Modélisation des bases de données
Niveau externe
Le chapitre 4 est consacré à la définition des différents types de vues (relationnelles, maté-
rialisées et structurées) qui agiront comme des fenêtres sur les tables de la base de données.
Annexes
Les annexes contiennent les corrigés détaillés des exercices, une webographie et une biblio-
graphie. L’index propose les termes utilisés dans la définition des concepts et de certaines
instructions SQL.
nombreux exercices mettant en jeu tous les niveaux du processus d’une base de données.
10 © Éditions Eyrolles
Avant d’aborder la théorie
Beaucoup de développeurs sont persuadés des méfaits du respect des formes normales. N’est-
il pas préférable de placer tous ses « champs » dans une même table pour acquérir de bonnes
performances ? Certains internautes l’ont même écrit, mesures de performances à l’appui !
Or il n’en est rien, et le principal problème reste l’incompréhension du modèle relationnel. Bon
nombre de développeurs ont succombé au NoSQL, croyant résoudre leurs problèmes alors
qu’ils en créaient de pires sans le savoir.
Le modèle relationnel reste encore à ce jour le moyen le plus efficace à tout point de vue,
lecture comme écriture, pour la manipulation des données de l’informatique de gestion, les
transactions, et les recherches complexes. Encore faut-il en comprendre l’esprit.
C’est donc avec pragmatisme que je vais tenter de l’expliquer sans jamais passer par les
« formes normales » ou les « dépendances fonctionnelles ». Seuls des éléments de base de la
science mathématique seront utilisés dans cette démonstration.
Les origines
En fait, l’art de la modélisation repose sur quelques règles fondamentales facilement compré-
hensibles et sur la notion de relation, rarement bien comprise.
Lorsque Frank Edgar Codd invente la théorie de l’algèbre relationnelle dans les années 1970, il
prétend résoudre toutes les problématiques des systèmes précédents (bases de données hiérar-
chiques ou en « réseau », entre autres…) aussi bien sur le plan pratique que sur le plan logique.
Force est de constater que sa théorie a fort bien réussi et domine toujours la marché des bases
de données de gestion. Il en va tout autrement du traitement des données documentaires dont
le big data s’empare actuellement, dans l’indécision d’une technologie unique dont les tenants
sont regroupés au sein de ce que l’on appelle désormais le NoSQL…
À partir de 1980, les premiers systèmes voient le jour (IBM System R et Oracle de Relationnal
Software). Les SGBD relationnels sont donc un succès depuis plus de 35 ans… Et réguliè-
rement, on nous annonce leur fin sans que cela n’arrive jamais. Cependant, la connaissance
© Éditions Eyrolles 11
Modélisation des bases de données
Codd part de la théorie des ensembles et ses relations doivent être considérées comme telles,
chacun des éléments de l’ensemble ayant une valeur pour chaque attribut.
Exemple 1 – Une relation
La relation Remployé constituée des attributs matricule, nom, prénom, date de naissance
ayant pour clef le seul attribut matricule.
On note habituellement comme ceci :
Remployé : matricule, nom, prénom, date de naissance
12 © Éditions Eyrolles
Avant d’aborder la théorie
Complétons par la notion de tuple ou n-uplet. Il s’agit d’un ensemble de valeurs pour chacun
des attributs de la relation, décrivant un élément particulier de l’ensemble.
Exemple 2 – Un tuple d’une relation
XD1247, DUPONT, Frédéric, 21/04/1960
L’élément Frédéric DUPONT, né le 21 avril 1960, dont le matricule est XD1247, est un élé-
ment de la relation Remployé présentée dans l’exemple 1.
Remarque : dans les ensembles, au sens mathématique du terme, il n’y pas d’ordre naturel
des choses.
Voici par exemple le contenu d’une relation, représentée par un diagramme de Venn plus
communément appelé « patate ».
Remarquez-vous un quelconque ordre des éléments ? Par exemple, une question sans réponse
que l’on peut souvent lire dans les forums est la suivante : « Comment récupérer la dernière
ligne que j’ai mis dans une table ? » Cette question n’a évidemment aucun sens, d’une part en
raison de la concurrence d’accès, deux utilisateurs pouvant insérer une ligne au même moment
et d’autre part, il n’y a pas de rangement particulier des lignes dans la table.
© Éditions Eyrolles 13
Modélisation des bases de données
Si je vous parle de l’algèbre en nombres entiers, cela vous parle déjà plus... Vous savez que
2 + 2 = 4, soit un nombre entier, tout comme 2 × 3 = 6, encore un entier ! Mais que dire de
7/2 ? Le tout est de savoir si vous voulez rester dans l’univers des entiers ou pas. Si oui, cette
dernière opération peut avoir trois résultats différents :
●● aucun ;
●● 3 ;
●● 3 reste 1.
spécifiques décrites par le biais d’un prédicat (par exemple, un nom commençant par la
lettre « D »).
●● La projection qui ne retient dans la relation résultante que certains attributs et pas d’autres.
●● L’union qui consiste à « concaténer » des relations aux caractéristiques similaires (par
●● La différence qui renvoie les éléments de l’une des relations qui n’existent pas dans l’autre.
●● Et enfin la jointure qui permet d’associer une relation à une autre par le biais d’un prédicat
14 © Éditions Eyrolles
Avant d’aborder la théorie
Les noms
Il n’y a aucune ambiguïté sur les noms des relations comme sur les noms des attributs, dans
le sens où deux relations au sein de la même base ne peuvent avoir le même nom tout comme
deux attributs au sein de la même relation.
Exemple 3 – Noms des éléments
Dans l’exemple 1, le nom de la relation est « Remployé » et les noms des attributs « nom »,
« prénom », « date de naissance » et « matricule ».
La notion de valeur
Pour Codd, tout attribut doit être valué. Cela sous-entend qu’un attribut est obligatoirement
renseigné. Vous avez sans doute entendu parler du NULL. Cela n’existe pas dans la théorie
de Codd. Tous les attributs concourant à une même relation, ou plus exactement à un même
tuple (ou n-uplet) doivent posséder une valeur et pas n’importe laquelle… Une valeur vraie !
Pas des mensonges ou de valeurs qui ne veulent rien dire comme une chaîne vide, une date
à zéro…
Exemple 4
Les valeurs associées au matricule XD1247 de la relation Remployé sont :
XD1247, Frédéric, DUPONT, 21/04/1960
Comme vous le constatez, chacun des attributs (matricule, nom, prénom et date de naissance)
est valué.
La notion de clef
La clef est un moyen d’identifier un élément et un seul au sein de l’ensemble. C’est une infor-
mation composée de(s) valeur(s) d’un ou plusieurs attributs qui nous permet avec certitude de
retrouver un et un seul élément de l’ensemble.
Exemple 5 – Une clef
La clef de la relation Remployé présentée à l’exemple 1 est composée d’un seul attribut de nom
matricule. Pour un certain Frédéric DUPONT né le 21 avril 1960, la valeur de cette clef est
XD1247.
Si rien n’est précisé au sujet de la clef, alors, par défaut, ce sont tous les attributs de la relation
qui composent cette clef.
© Éditions Eyrolles 15