Académique Documents
Professionnel Documents
Culture Documents
I DE L’ARTISANAT A LA METHODE
Une démarche de conception de base de données doit conduire à la définition des données permanentes
nécessaires aux besoins d’un ensemble d’utilisateurs. Cette BD est relative à un domaine d’activité, à sa gestion
et à son contrôle ou même parfois à son automatisation. Un tel domaine dit d’application pourrait être une
bibliothèque, un service hospitalier, le département de marketing d’une entreprise ou son service du personnel,
etc.
Dans ces conditions la BD doit contenir toutes les données nécessaires à la représentation du domaine
d’application et rien que ces données. Ces dernières sont regroupées en tables de manière à permettre une
description aisément utilisable du domaine, et en particulier, de manière à permettre leur gestion par un
ordinateur. Lorsque le problème est simple, un utilisateur un tant soit peu habile pourra exprimer directement
ses besoins en terme de tables colonnes et contraintes. Cependant quand le domaine d’application présente une
certaine complexité, il devient difficile de raisonner pour la définition des tables.
C’et pourquoi l’on fera appel à un mode de description du domaine d’application le modèle entité-
association.
Ce modèle qui est le plus populaire de nos jours, il permet de décrire plus naturellement les concepts du
domaine et leurs informations seront représentées en tables et colonnes. Ce modèle offre une
représentation graphique du concept qu’il décrit, ce qui en fait un outil de raisonnement et de
spécifications particulièrement attrayant. La description du domaine d’application se traduira sous la forme
d’un schéma conceptuel.
Le schéma conceptuel est un modèle mental, abstrait des concepts du domaine d’application et des
informations. Il n’est donc pas directement implémentable dans un ordinateur. Par conséquent, il faut le
traduire en schéma de base de données (modèle logique) sous la forme de tables, colonnes et contraintes
d’intégrité. Ici encore, nous limiterons le processus de traduction en des règles simples et systématiques. La
démarche de conception des BD proposée consiste en deux phases :
• L’analyse conceptuelle au terme de la quelle les besoins en information des utilisateurs sont traduits en
un schéma conceptuel ;
• La production de la base de données par laquelle le schéma conceptuel est traduit en schéma de la base
de données.
Cette démarche se traduit par la figure ci-dessous :
SCHEMA
Sortir des
CONCEPTUEL
propositions
élémentaires
III.1 INTRODUCTION
L'ensemble de toutes les données de l'entreprise ou toute autre organisation peut être regroupé. Sous
l'appellation de base de données, ce regroupement représente l'information de l’organisation. Elle existe
indépendamment de l'usage qu'en font les programmes d'application ou les utilisateurs finaux. L'information
doit donc pouvoir être décrite indépendamment de l'usage qui en est fait. Cette description nécessite un modèle
de données, c'est à dire un ensemble de concepts et de règles assez généraux et riches de sémantique pour
pouvoir donner de façon formelle un schéma de la structure permanente de cette information.
Le système logiciel qui met en œuvre le modèle de données, qui stocke les données, gère les accès, les droits
des utilisateurs, et plus généralement qui traite au mieux l'ensemble des problèmes que nous venons d'évoquer,
est appelé système de gestion de base de données (SGBD).
Dès 1965 apparaît l'idée de distinguer les données de leurs traitements. Cela exige une description préalable des
données qui doit être fournie par les utilisateurs.
Pour bien comprendre cela, observons le travail que devait réaliser le programmeur et que le système doit
maintenant prendre en charge : le programmeur devait transformer en structures informatiques une certaine
vision de la réalité (par exemple une personne est stockée sous la forme d'un enregistrement composé : d'un
champ "numéro de sécurité sociale", d'un champ "nom", d'un champ "prénom" et d'un champ "date de
naissance").
C'est à présent le SGBD qui va effectuer ce travail, il recevra en entrée une description abstraite des données et
disposant de règles déclarées par l'administrateur, il choisira la façon de les stocker et de gérer les accès.
Les outils offerts par le SGBD pour décrire les données qu'il aura à stocker reposent sur un ensemble de règles
et de concepts permettant de décrire le monde réel. Ces règles et concepts constituent un modèle de données. Le
modèle entité-association peut ici être donné à titre d'exemple.
En informatique, un modèle de données est un modèle qui décrit de façon abstraite comment sont représentées
les données dans une organisation métier, un système d'information ou une base de données.
Une théorie de modèle de données définit généralement des niveaux de préoccupation. Par exemple, dans la
méthode MERISE ou dans les modèles entité-relation , on définit des niveaux de préoccupation tels que :
• Le niveau conceptuel,
• Le niveau organisationnel,
• Le niveau physique ou opérationnel.
• Le niveau conceptuel : que peut-on faire et avec quelles données (quoi ? avec quelles données ?)
• Le niveau organisationnel : on intègre à l'analyse conceptuelle les aspects liés aux organisations, à
savoir le lieu, les acteurs, le positionnement dans le temps, le type de traitement : automatique,
interactif, manuel (qui ? où ? quand ?)
• Le niveau physique ou opérationnel : abordé dans la phase de réalisation, elle consiste à faire les choix
techniques d'implémentation (choix de logiciels, découpage en programme). Il s'agit donc de répondre à
la question : comment?
De manière générale, un schéma conceptuel est une représentation d'un ensemble de concepts reliés
sémantiquement entre eux. Les concepts sont connectés par des lignes fléchées auxquelles sont accolés des
mots.
La relation entre les concepts s'appuie sur des termes exprimant cette relation: « appartiens à », « passe par »,
« mène à », « prévient que », « favorise »…
• représenter le modèle mental d'une situation, que cette représentation soit personnelle, celle d'un groupe
ou d'une organisation ;
• résumer la structure de la connaissance extraite d'ouvrages écrits (état de l’art technique).
En informatique, un schéma conceptuel est une représentation graphique qui sert à décrire le fonctionnement
d'une base de données. Il représente ainsi les objets principaux contenus dans cette dernière, leurs
caractéristiques et les relations qui s'établissent entre ces différents objets. Cette représentation est normée
suivant une modélisation bien définie. Plusieurs types de schémas conceptuels existent, correspondants aux
différents types de base de données que l'on peut rencontrer :
• le modèle hiérarchique ;
• le modèle réseaux sémantiques ;
• le modèle entité / association ;
• le modèle objet ;
L'information est organisée de manière arborescente (selon une hiérarchie), accessible uniquement à partir de la
racine de cette arborescence. Il permet de facilement ajouter des éléments et d'en modifier la structure.
Le défaut principal de cette représentation provient du fait que le point d'accès à l'information est bien unique
(c'est la racine de l'arbre hiérarchique). Cela entraîne que toute recherche de donnée demande le parcours de
toute, ou au moins partie, de la hiérarchie, en passant par la racine. L'exemple le plus courant est celui de
l'arborescence utilisé pour les systèmes de fichiers (bien qu'il ne s'agit pas de SGBD à proprement parler,
comme nous le verront plus loin), où l'on navigue depuis la racine du système vers des sous répertoires et des
fichiers contenant les données.
Ce modèle décrit le fonctionnement d'une base de données réseau. Ce type de base de données fonctionne sur le
principe du regroupement des différents éléments de la base de données par leur sens. Toutes les informations
peuvent y être associées les unes aux autres et servir de point d'accès. Cela en fait un modèle complexe dont
l'extraction de données est difficile.
Le modèle objet
Dans le cadre de ce modèle, comme dans la programmation orientée objet, les données sont décrites comme des
classes et représentées sous forme d'objet possédant des attributs et des méthodes. Chaque objet peut servir de
point d'entrée pour d'autres objets, permettant une navigation à la fois souple et aisée dans la base.
L'inconvénient principal est l'importante quantité de ressources (mémoire et temps de calcul) que nécessite cette
approche.
Le modèle entité/association
Le modèle entité-association est un type de schéma conceptuel qui est notamment utilisé par les bases de
données relationnelles. Les points d'entrées y sont indépendant de la structure de la base de données,
l'utilisateur saisi simplement une requête, sans avoir à naviguer dans la base, et la machine se charge de
l'exécuter pour atteindre les données escomptés. Le principal inconvénient est la rigidité de la structure du
modèle définie et les difficultés que cela entraîne pour faire évoluer un schéma existant lorsqu'un besoin
nouveau apparaît ou qu'une erreur de conception est découverte. Cela inclus notamment tous les systèmes se
basant sur le langage SQL. Le modèle entité-association est le plus utilise de nos jours. C’est lui qui sera
l’objet de notre étude.
Le Modèle entité-association permet de représenter la structure du système d'information, du point de vue des
données, et définit également les dépendances ou relations entre ces différentes données.
Ce modèle de données correspond à une modélisation assez naturelle du monde réel. Il se compose de trois
concepts élémentaires : l'entité, l'association et les contraintes portant aussi bien sur les entités que sur les
associations.
Une base de données se détermine à travers un domaine d’application ou d’activité par des concepts ou
données (tables contenant des lignes et des colonnes), et sur lesquelles sont appliquées des contraintes
d’intégrités, représentant les besoins en informations d’une communauté d’utilisateurs. L’on propose de
travailler en deux étapes :
1-L’élaboration du schéma conceptuel de données, qui décrit sans référence à la technologie informatique,
les concepts ou données du domaine d’application ;
Le modèle entités-associations est né dans les années 60 de la nécessité de décrire les besoins en informations
des utilisateurs d’une base de données d’une manière complètement indépendante des technologies de mise en
œuvre de celle-ci.
Partant de l’idée qu’une base de données doit être une description fidèle du domaine d’application, on envisage
de relever dans celui-ci les concepts principaux et leurs propriétés. L’identification et la description de ces
concepts utilise un modèle, c’est à dire une manière de voir les choses, auquel on associe une notation
graphique. Un même modèle peut faire l’objet de plusieurs notations. C’est ainsi qu’on utilise aujourd’hui plus
d’une dizaine de représentations graphiques, plus ou moins équivalentes, des objets du modèle entité-
association.
La manière de voir les choses, ou vision du monde, du modèle entités-associations est très simple. Elle consiste
à structurer le monde en classes d’entités dotées de propriétés, en associations les unes des autres. Cette
simplicité offre deux avantages majeurs : elle met ce modèle à la portée des utilisateurs peu expérimentés et elle
se traduit aisément en un schéma de base de données. Néanmoins il existe des modèles plus riches que des
utilisateurs expérimentés pourront utiliser.
Certains auteurs appelleront entité client ce que nous appelons ici type d’entité CLIENTS. Dans ce cas ce que
nous appelons entité client se dénommera instance ou occurrence du type d’entité CLIENTS. Ces deux
systèmes d’appellation sont légitimes pour autant qu’on s’en tienne exclusivement à l’un d’eux. Il est important
d’être précis dans l’utilisation des termes relatifs au modèle et aux schémas entités-associations, et en
particulier de ne pas confondre les types et leurs instances. Dans notre étude on parlera de type d’entités
CLIENTS et de l’entité c400 qui est une de ses instances. L’expression entité client est donc incorrecte. Le
tableau suivant résume les expressions admises.
Le domaine d’application est perçu comme étant constitué d’objets concrets ou abstraits. Ainsi par exemple
dans le contexte du domaine d’application assurance automobile, on peut cerner les objets clients, véhicules,
contrats ou accidents. Chaque élément de ces objets, est considéré comme une entité du domaine et que chaque
entité appartient à une classe ou type d’entité. Dans le modèle entités-associations un type d’entités est donc
considéré comme une population de concepts du monde réels (ou faits) homogènes, souvent variable dans le
temps. Par exemple :
Ici l’on définira 04 types d’entités, CLIENTS VEHICULES, CONTRATS, ACCIDENTS qui sont représentés
comme suit :
Le type d’entités CLIENTS regroupe l’ensemble des clients qui ont signé un contrat d’assurance, le type
d’entités VEHICULES regroupe l’ensemble des véhicules qui ont été assurés, etc.
Un type d’entités peut correspondre à des objets concrets inanimés (véhicules), des objets concrets animés
(clients), des conventions abstraites (contrats), ou des événements (accidents).
La figure suivante représente de manière imagée une population de chaque type ou une entité est représentée
par une pastille.
Pour compléter la représentation graphique, on définira 03 entités pour le type d’entité CLIENTS, comme
présenté sur la figure x ci-dessous.
NumClient=C400
Nom = FERRARD
Adresse= 65, r du Tertre
NumClient=F010
Nom = TOUSSAINT
Adresse= 5, r Gogefroid
IV.2.3.1 Définition
Un type d’associations est une liaison qui existe entre des types d’entités, et qui a une signification précise.
Dans notre exemple le type d’association « signer » est une liaison évidente entre les types d’entités CLIENTS
et CONTRATS.
De même on définira des types d’associations entres les types d’entités CLIENTS et VEHICULES, indiquant
qu’un véhicule appartient à un client, CONTRATS et VEHICULES indiquent qu’un contrat couvre les risques
d’un véhicule, etc. les types d’associations sont des verbes généralement conjuguer à l’infinitif. Mais le
présent simple est aussi accepté. Le type d’association signer est représenté à la figure suivante :
CLIENT
Signer
CONTRACT
La définition des propriétés d’un type d’associations entre deux types d’entités A et B indique pour chacun des
types d’entités, à combien d’associations R chaque entité doit elle participer ? Plus précisément ces propriétés
se mesureront pour chaque type d’entité participant, par le nombre minimum et le nombre maximum
d’associations auxquelles toute entité participe. Ces propriétés seront représentées en deux catégories ; la classe
fonctionnelle et le caractère obligatoire/facultatif des types d’associations. Ces propriétés seront ensuite
synthétisées sous la forme d’une propriété de cardinalité.
Lorsqu’un type d’association intervient dans une relation avec des types d’entités, on dit qu’il joue un rôle. Ce
terme sera donc utilisé pour designer une des extrémités d’un type d’associations. On peut assigner un nom à
un rôle. En l’absence de nom explicite c’est celui du type d’entités qui en tiendra lieu. Généralement leur nom
est composé du nom du type d’association suivi du nom du type d’entités.
Exemple :
La cardinalité est défini comme un couple de valeurs traduisant le nombre minimum et maximum de fois un
type d’entités participe à un type d’associations. La cardinalité peut également être définie comme suit :
Chaque type d’entités apparaissant dans un type d’associations joue un rôle qui y est caractérisé par un couple
de valeurs min-max appelé cardinalité. On dira qu’un type d’associations (occupe par exemple) est de
cardinalité (x , y) de type d’entité source vers le type d’entité cible ou destination. Dans le cas précédent on dira
que occupe est de cardinalité (o, n) de département vers employé et de cardinalité (1,1) de employé vers
département.
DEPARTEMENT 0, N 1, 1 EMPLOYE
Occuper
Toute entité département est associée, via, occuper, à un nombre de (0,N) d’entité d’employé et toute entité
employé est associée, via occuper à (1,1) entité département. Les cardinalités possibles sont : (0,1) ; (0,n );
(1,1) ; (1 ,n) ; (n,m).
Cette propriété décrit le nombre maximum de fois une entité participe à une association. Trois classes
fonctionnelles de type d’association sont courantes : un à plusieurs, un à un , plusieurs à plusieurs. Nous allons
les définir plus amplement dans les paragraphes suivants :
Dans le premier sens (gauche à droite) : le type d’entité DEPARTEMENT participe au maximum plusieurs fois
au type d’entité EMPLOYE; Dans l’autre sens (droite gauche) : le type d’entité EMPLOYE participe au
maximum, 1 fois au type d’entité DEPARTEMENT.
DEPARTEMEN EMPLOYE
D D
E E
E
D E
E
D3 E E
DEPARTEMENT
N 1 EMPLOYE
OCCUPE
R
Un département est occupe par au maximum plusieurs employés : N, un employé occupe au maximum un seul
département : 1
DEPARTEMEN EMPLOYE
E3
D1 E3
D2 E3 E4
D3
DEPARTEMENT 1 1 EMPLOYE
Diriger
Un département donne est dirigé au maximum par un employé : card max 1. Un employé donne dirige au
maximum un département : card max 1
PRODUIT
USINE
P1 P2
U1 U2
P3
U3 P4 P5
U4 P6
N M
USINE PRODUIT
Fabriquer
Une usine fabrique au maxi plusieurs produits N ; un produit donné est fabriqué au maxi par plusieurs usines.
Important : Il est essentiel de noter que les cardinalités se mettent en place après avoir répondu à deux
questions :
- une entité type donnée A VERBE participe au mini et au maxi combien d’entité B ?
- une entité type donnée B VERBE participe au mini et au maxi combien d’entité A ?
Le verbe est généralement conjugué à l’infinitif, mais il peut se mettre au présent simple ou au participe passé
selon l’emplacement du type d’entités.
On peut imposer qu’un type d’associations soit obligatoire pour un type d’entités qui y participe. C’est ainsi que
occupe sera déclaré obligatoire pour EMPLOYE, imposant que toute entité EMPLOYE (instance) participe à
une association occupe, ou encore qu’elle soit associée à une entité DEPARTEMENT (instance).
1,1
DEPARTEMENT 0, N
EMPLOYE
Occuper
Le type d’association occupe est obligatoire (Card min 1) pour EMPLOYE et facultatif (Card min 0) pour
DEPARTEMENT.
o en tant que propriété élémentaire si elle est simplement cible d'une dépendance fonctionnelle
directe (pour un véhicule, date de la prochaine révision)
o en tant qu'entité si elle est source d'une dépendance fonctionnelle directe (date ->
heureLeverSoleil, heureCoucherSoleil
o en tant qu'entité si elle participe en tant que source à une dépendance fonctionnelle (association
non fonctionnelle : numCde, refProd, dateLivr -> quantite ); on a à faire à une association
ternaire à vérifier.
• Type d’association cyclique ou récursif ou réflexif
Il est tout à fait possible d’établir un type d’associations entre un type d’entités et lui-même. Par exemple
une personne peut superviser un certain nombre de personnes, qui sont ses subordonnés.
PERSONNE
Une association ternaire relie 3 entités (au delà, on parle de 'n-aires') : il est indispensable de s'assurer de
sa validité en vérifiant qu'aucune dépendance fonctionnelle entre les entités (identifiant) n'existe, c'est à
dire que idEnt1,idEnt2 -X-> idEnt3, que idEnt1,idEnt3 -X-> idEnt2, et que idEnt2,idEnt3 -X-> idEnt1
(avec '-X->' signiant 'ne détermine pas')
Pour un professeur et une matière, on peut avoir plusieurs classes, Pour une classe et une matière, on
peut avoir plusieurs professeurs (c'est le cas ici, d'enseignant pour CM, TD ou TP), Pour une classe et un
professeur, on peut avoir plusieurs matières (c'est le cas ici, où un enseignant intervient en
mathématiques et en physique)
classe
professeur 1,n
1,n
1,n
Matiere
1,n
devient ci
patient f
1,n
1,1
Une entité faible, ou dépendante, possède un identifiant qui n'est pas suffisant pour identifier de manière
unique chacune des occurrences, mais nécessite l'identifiant d'une autre entité avec laquelle elle est
associee. L'identifiant est dit 'relatif',
DISPOSER 1,1
1,n
CHAMBRES
HOTELS
• CIF et CIM
CIM : Contrainte d'Intégrité Multiple (association non fonctionnelle) : définit une association avec des
cardinalités maximales à N sur chacune de ses branches.
Si toutes les occurrences d'une entité-type ne possèdent pas toujours les mêmes propriétés ou ne sont
pas liées aux mêmes associations, l'analyse peut montrer qu'on a affaire à
o d'une part, une entité générique qui regroupe les propriétés communes à toutes les occurrences,
et qui est reliée aux associations communes,
o et d'autre part à des entités spécialisées qui comporteront leurs propres propriétés et seront
reliées à leurs propres associations. Elles héritent également des propriétés de l'entité générique :
on est en effet dans une forme de relation hiérarchique (sans association)
o X : pour eXclusion, une occurrence de l'entité générique ne peut être spécialisée que d'une seule
forme ou n'être pas spécialisée
o T : pour Totalité, une occurrence de l'entité générique est spécialisée d'une au moins des formes
proposées
o XT (ou +) : pour eXclusion et Totalité, une occurrence de l'entité générique est spécialisée d'une
seule des formes proposées
o sinon pas de contrainte: des occurrences peuvent être spécialisées d'une seule ou plusieurs
formes ou n'être pas spécialisées ( voir doc)
EMPLOYE
Id_emp
nom
prenom generalisation
specialisation
XT EMPL-VAC
EMPL-MENS
Datedebutvacation
Dateentree tauxhoraire
salairemensuel dureevacation
Quand le concepteur s’aperçoit que plusieurs entités, proches mais distinctes, partagent un ensemble de
caractéristiques, il doit mettre en œuvre un processus de création d’entités génériques (ou entités sur-types) et
d’entités spécialisées (ou entités sous-types) appelé «héritage ». Ce concept qui permet de représenter le lien «
est-un » ou « IS-A » entre deux entités A et B (une occurrence de A est une occurrence de B) est représenté
graphiquement par une flèche double allant de A vers B.
Entité générique B
Entité spécialisée A
Occurrences du
sur type
Occurrences du
sous type
• Agrégats ou pseudo-entité
Un agrégat est un regroupement d'entités et d'associations qui peut être associé à une autre entité (exemple de
réservations de chambre - ou de tout autre objet - pour une période donnée). Voir figure
Les agrégations sont des associations ou liens particuliers ayant la sémantique "composé-composant".
La suppression d'un "composé" peut ou non entraîner celle des "composants" ("pièces détachées"
irrécupérables ou récupérables!). Réciproquement la suppression d'un "composant" peut ou non
entraîner la suppression du "composé" (une voiture sans roue ne change pas d'identité, une voiture
avec un nouveau châssis est une autre voiture...). La notation ER classique était insuffisante pour
rendre compte de ces surcharges sémantiques. La notation UML en rend compte assez précisément
IV.3.1.1 Généralités
Un attribut est une propriété caractéristique d’un type d’entités ou d’un type d’associations. Ici on dira que
chaque élément (ou instance) de la population de clients est caractérisé par un numéro, un nom, et une adresse.
On modélisera ces faits en dotant le type d’entités CLIENTS par les attributs numclient, nomclient,
adresseclient. De même on dotera les autres types d’entités d’attributs. Par ailleurs, il est tout à fait possible de
doter un type d’associations d’attributs. Dans notre cas, le type d’associations « Signer » dispose d’un attribut
« Datesign ». Tout cela est illustré sur la figure x ci-dessous.
Cylindrée
Une instance de l’entité type CLIENTS a pour valeurs d’attributs C400 comme Numéroclient, LAGO comme
Nom, YAMOUSSOUKRO comme Adresse.
L’on spécifiera dans le formalisme des attributs, le type de chaque attribut ; numérique caractère, date, etc.,
ainsi que sa longueur comme indiqué sur la figure ci-dessous :
VEHICULEE
Modèle : char(30)
Annee : num(14)
cylindrée: num(06)
couleur[0-1]
Id : Numveh
Un type d’entités et ses attributs ne doivent traiter d’un seul sujet afin d’assurer une certaine cohérence au
modèle. Dans notre exemple Les types d’entités CLIENT ET VEHICULE ne peuvent donc pas être regroupés,
leurs informations ne sont pas homogènes (un client n’a pas de marque et un véhicule n’a pas d’adresse
électronique). Il faut donc préférable de créer deux types d’entités séparés, CLIENT et VEHICULE.
IV.3.1.2.1 Généralité
En général un type d’entités est doté d’un attribut particulier qui identifie ou distingue les uns des autres,
chaque instance de ce type. Le type d’entités CLIENTS, par exemple possède un attribut NumClient tel qu’à
tout instant les instances de type d’entités CLIENTS ont des valeurs de Numclient distinctes (sans doublon), et
doivent être identifiables de manière unique. Il s’agit de l’identifiant qui est souligné par exemple sur le
schéma Access par convention.
En outre, il peut arriver qu’un type d’entités possède plus d’un identifiant. Dans ce cas, l’un d’eux peut être
déclaré primaire tandis que tous les autres sont secondaires.
Les identifiants d’un type d’entités sont bien plus que de simples ornements de celui-ci. Ils contribuent à en
définir la sémantique. Déterminer un identifiant de E revient à définir précisément ce qu’est une entité E,
puisqu’il s’agit de trouver en quoi une instance se distingue des autres du même type.
Lorsqu’un identifiant comprend plus d’un composant, il faut s’assurer que ceux-ci sont tous indispensables
pour garantir l’unicité. On observe en effet que tout groupe de composants qui inclut un identifiant est lui-
même, un identifiant. Ainsi les attributs (numacc, date) forment un identifiant d’accident. On qualifiera de
minima un identifiant tel qu’aucun de ses composants ne puissent lui être retiré sans qu’il perde son statut
d’identifiant. On veillera à ce qu’un schéma conceptuel ne contienne que des identifiants minimaux.
Les contraintes d’intégrité formalisent certaines propriétés importantes du domaine d'application, que les
données doivent respecter. On distinguera les contraintes de base, intrinsèques au modèle entités-associations,
et les contraintes additionnelles.
Il s’agit des contraintes explicitement définies dans le modèle. Etant donné leur importance, on leur a attribué
un nom et une représentation graphique. Il s’agit des trois contraintes de base suivantes :
Elles sont désignées par toutes les propriétés qu’on voudrait voir définies dans le schéma mais que le modèle ne
permet pas d’exprimer de manière explicite. On indiquera ces contraintes sous la forme d’annotations associées
aux objets du schéma comme illustré sur la figue suivante :
CodeAchat
Date paiement>date livraison
Date Commande
(Date paiement non vide)si date livraison non vide
Date Livraison [0-1]
Modalité paiement={A,Q,ST} Modalité de Paiement [0-1]
Montant
Montant>0
Id : Code Achat
Certaines questions sont à ce point, élémentaires, qu’il suffit d’une simple inspection du schéma pour être
convaincu que celui-ci contient l’information recherchée. Par exemple retrouver les accidents dans lesquelles
un véhicule est impliqué, ou le propriétaire d’un véhicule sont des questions auxquelles on peut de toute
évidence répondre. En ce qui concerne des demandes complexes, on fera appel à un graphe de populations. Soit
la recherche suivante : Trouver les signataires des contrats couvrant les véhicules impliqués dans un accident
déterminé. Pour répondre à cette demande, on procède comme suit :
signataires
VEHICULES
CONTRATS
ACCIDENTS
L’accident
Cette manière de conduire une recherche se généralise aisément à des conditions plus élaborées portant par
exemple sur les valeurs des attributs des entités (instances, on ne retient que les véhicules de modèle X), ou sur
le nombre d’arcs (véhicules n’ayant qu’un seul accident). A ce titre d’exemple plus complexe, on imaginera un
procédé similaire permettant de vérifier qu’on peut retrouver les véhicules dont le propriétaire n’est pas le client
qui a signé le contrat qui les couvre, ou encore, en représentant cette fois les valeurs d’attributs, les accidents
qui impliquent des véhicules de la même marque.
Le modèle navigationnel
Dans le modèle navigationnel, la structure des données est parcourue en empruntant des chemins prédéfinis
constitués par des réseaux de pointeurs. Au modèle navigationnel sont associées les notions suivantes:
Le modèle relationnel
Dans le modèle relationnel, les données désirées sont obtenues par la formulation de requête. Il n'est plus
nécessaire de parcourir la structure des données est en empruntant des chemins prédéfinis. C'est ce modèle
que nous étudierons dans la suite de notre cours.
On appelle relation un ensemble d'attributs qui définissent un fait - par exemple un employé a un matricule
donné, son nom est un tel, il travaille dans tel service et a été embauché à telle date. Chaque instance est
appelée un tuple. Les relations sont d'ordinaire représentées sous la forme de tables, et on confond les deux
concepts. On confond de même ligne dans la table et tuple dans la relation. Par définition, chaque tuple d'une
relation est unique, et est identifié par un attribut ou une combinaison de plusieurs attributs qui forme la clef.
L'ordre des tuples n'est pas significatif.
Codd a défini une algèbre relationnelle et des opérateurs qui permettent de construire d'autres relations à partir
de relations. Les idées de Codd ont été implémentées -- plus ou moins fidèlement -- dans les systèmes de
gestion des bases de données relationnelles ou SGBDR telles que le projet expérimental IBM System R, puis
des produits commerciaux tels qu'Oracle, DB2 ou MySQL, et dans le langage de manipulation des données
SQL.
Le modèle relationnel est aujourd’hui l'un des modèles les plus utilisés. « Les premiers systèmes de gestion de
base de données (SGBD ou DBMS en anglais) bâtis sur ce modèle ont été SQL/DS et DB2 de IBM, d'où est né
le langage de manipulation de bases relationnelles, SQL (Structured Query Language). »] Le modèle relationnel
est basé sur deux instruments puissants : l’algèbre relationnelle (c'est-à-dire le concept mathématique de
relation en théorie des ensembles) et la notion de produit cartésien.
Le travail de conception commence par une analyse du domaine à modéliser, on établie une cartographie des
notions qu'il comprend et des détails de leurs relations, c'est le schéma conceptuel.
On traduit ensuite cette cartographie uniquement en termes d'ensemble d'éléments, les relations devenant des
éléments à part entière, c'est le modèle logique.
Enfin on implémente le résultat dans un ensemble logiciel, c'est le schéma physique (même si les logiciels
sont virtuels, il s'agit de la structure concrètement utilisé).Cela est illustré à la figure suivante :
Représentation MODELE
CONCEPTUEL
Entite- association-
DOMAINE
cardinalité
D’ACTIVITES
Traduction
Implémentation MODELE
MICRO- LOGIQUE
ORDINATEUR
Les relations ou
Le processus d’élaboration d’un schéma conceptuel d’une base de données est crucial, car il conditionne la
qualité de celle-ci, et complexe car il représente une activité de modélisation de situations issues de la réalité.
Modéliser consiste à construire une représentation abstraite formelle, généralement de nature mathématique,
des aspects des situations sur lesquels porte notre intérêt. Un modèle d’un domaine d’application nous permet
de mieux comprendre celui-ci, de raisonner à son sujet et de construire des systèmes techniques, tels qu’une
base de données ou une application informatique qui représente, contrôle ou pilote ce domaine d’application.
Le formalisme de représentation utilisé ici est le modèle entités-associations.
Conformément à l’approche simplifiée que nous avons utilisée pour la conception des BD, nous nous limiterons
à une démarche simple et intuitive.
Le processus peut s’exprimer comme suit : à partir d’un énoncé, construire un schéma entités-
associations représentant les concepts ou faits exprimés d’un domaine d’activité.
Les principaux problèmes rencontrés surgissent lorsque les propositions contenus dans l’énoncé sont
incomplètes, redondantes, contradictoires ou même erronées. Il existe plusieurs façons de présenter un concept
d’un énoncé. Tout en supposant que le processus est en cours et disposant déjà d’un embryon de schéma
traduisant les concepts de l’énoncé jusqu’au point courant (schéma courant), on propose de procéder à
l’élaboration du schéma conceptuel comme suit :
Nous illustrons le processus de construction d’un schéma conceptuel par un premier exemple élémentaire.
Supposons qu’on dispose du texte ci-après, décrivant la manière dont un employé de bibliothèque voit son
environnement de travail :
un employé peut emprunter des livres ou en réserver ; l’employé a un nom et une adresse ; il possède un
numéro unique et travaille dans un service de l’entreprise, l’entreprise est identifié par son nom ; l’on
connait la localisation d’un service ; un ouvrage porte un numéro ISBN et possède un titre, un prix et une
date d’achat. La figure suivante montre un schéma conceptuel qui pourrait être tiré de cet énoncé.
Travailler
Emprunter 0-1 OUVRAGES un ouvrage un numéro ISBN
0-N
ISBN
1-1 un ouvrage porte un titre
EMPLOYES Titre
Numéro un ouvrage porte une date d’achat
Date achat
Nom 0-N Réserver 0-1
Id :ISBN Le numéro ISBN est unique
Adresse Un employé peut réserver un ouvrage
Un premier coup d’œil nous montre que chaque élément du schéma traduit un fragment de texte, cependant en
regardant de plus prés on remarque :
• Certains fragments ont été reformulés (le numéro de l’employé est unique) ;
• Certains fragments n’ont pas été utilisés (le prix) ;
• On perçoit bien comment les attributs et les types d’associations ont été détectés, mais la détection des
types d’entités est moins évidente ;
• Certains fragments fournissent la même information et sont donc redondants (livres et ouvrages
apparaissent comme des synonymes) ;
Il semble que le concept d’ouvrage ne soit pas compris et que son expression soit erronée : confusion entre
ouvrages et exemplaires, le texte contient donc des formulations incorrectes :
• Enfin un schéma ainsi annoté est plus lisible et compréhensible que si les fragments étaient retirés :
ceci contribue donc à la documentation du schéma.
C’est donc par une analyse critique des informations que l’on peut tirer de l’énoncé que les éléments pertinents
du schéma pourront être identifies. Nous allons le montrer dans les paragraphes suivants :
L’énonce est décomposé en propositions élémentaires décrivant chacune un concept ou un type de faits qui
pourra être traduit en composants du schéma conceptuel.
La forme standard qui et privilégiée correspond à la composition suivante : Sujet Verbe Objet
Quelques exemples :
Les propositions de ce type, sont qualifiées de binaires, puisqu’elles comportent deux termes, affirment
l’existence de deux concepts, représentés respectivement par le sujet et l’objet, et d’un lien représenté par le
verbe entre deux concepts.
• Un employé est identifié par un numéro matricule et caractérisé par un nom et une adresse.
Elle pourra être décomposée en trois propositions élémentaires :
• Un employé est identifié par un numéro matricule ;
• Un employé est caractérisé par un nom ;
• Un employé est caractérisé par une adresse.
Ou encore, la phrase :
• Le produit a un cout,
• Le cout du produit devra…
On veillera aussi à expliciter les raccourcis du langage que constituent les pronoms personnels ou possessifs :
De même, la proposition « un client a une adresse » doit-elle être analysée de manière plus approfondie par
les questions :
1 combien un client a –t- il d adresses ?
2 combien de client peut-on trouver a une adresse déterminée ?
On sera attentif à la différence d’interprétation des pronoms un ou une dans les deux dernières phrases. Ainsi,
dans la proposition « une commande est passée par un client » une commande signifie toute commande,
tandis qu’un client est interprété comme un seul client.
La réponse à de telles questions se trouve parfois dans la formulation même de la proposition. Des locutions
telles que : tout, certains , chaque ; les formes verbales utilisant pouvoir ou devoir ; les expressions au moins
un , un seul , au plus un , des ou les , permettent de déterminer l’ information recherchée. Dans d autres
cas nous ferons appel, soit à des informations complémentaires (interview dirigée) , soit à notre connaissance
du domaine d application , soit encore au simple bon sens.
Les propositions énoncées jusqu’ici sont générales, en ce sens qu’elles sont vraies pour tous les faits de même
nature, présents et futurs. Elles s’expriment au niveau des concepts généraux et non au niveau des exemples et
cas spécifiques. Une proposition telle que :
• Toute voiture a un numéro minéralogique : Spécifie un type de faits général dans le domaine
d’application choisi, tandis que la :
• Ma voiture a le numéro minéralogique HB G -82910 : est particulière, elle constitue un fait
élémentaire qui n’est qu’un exemple de la première.
Le terme «Toute voiture » de la première proposition désigne un concept alors que le terme « Ma
voiture » désigne un objet concret de ce concept c'est-à-dire une occurrence, un exemplaire ou une
instance. Le numéro minéralogique désigne un concept de HBG910-82 qui en est une occurrence.
Certaines propositions non binaires ne peuvent, sans qu’on perde de l’information être réduites aussi
simplement en propositions binaires. Considérons la proposition suivante ternaire :
Les clients achètent des produits chez des fournisseurs, elle peut être décomposée en plusieurs propositions
binaires :
• Les clients achètent des produits
• Les fournisseurs vendent des produits
• Les clients s’approvisionnent chez des fournisseurs
Un trajet est organisé entre une ville de départ et une ville d’arrivée, Peut se décomposer en :
La première proposition concerne trois concepts : médecins, service et hôpital. A un médecin correspond un
seul service et à un service correspond un seul hôpital. ->deux propositions (médecins services), (services,
hôpital).
De même la seconde proposition suppose qu’un employé travaille dans une seule entreprise, ce qui permet d’y
repérer les deux propositions binaires (employé-entreprise) et (employé-hôpital).
Par contre la proposition « les clients achètent des produits chez des fournisseurs » n’est pas
décomposable parce qu’aucune des affirmations suivantes n’est correcte : Un client n’achète qu’un seul
produit ; Un client n’achète que chez un seul fournisseur ; Un produit n’est achète que par un seul
client ; Un produit n’est acheté que chez un seul fournisseur ; Un fournisseur ne vend qu’à un seul
client ; Un fournisseur ne vend qu’un seul produit.
Certaines propositions apportent de toute évidence une contribution au schéma conceptuel. D’autres en
revanche doivent être considérées comme du bruit dans ce processus et sont ignorées. Certaines cependant
peuvent cacher des structures qu’il faut mettre en lumière par une analyse plus approfondie. Considérons les
fragments d’énoncés suivants, dans un domaine d’application relatif à une compagnie d’assurance automobile.
Exemple1 : Un véhicule est couvert par une police : proposition pertinente à retenir
Exemple2 : On enregistre le véhicule dès que la prime est payée : Cette proposition décrit une contrainte
d’exécution d’activités de gestion. Elle sera certainement utile lors de la conception de programmes
informatiques, mais semble moins directement exploitable ici. Cependant une analyse plus approfondie plus
approfondie pourrait conduire à retenir les propositions dérivées : Un véhicule a une date d’enregistrement ;
Une prime a une date de paiement.
Il serait alors aisé de vérifier dans un programme la règle d’antériorité exprimée par la proposition d’origine.
Etant donne qu’on s’intéresse qu’aux véhicules assurés par la compagnie et que cette unique compagnie
constitue ou contient le domaine d’application cette proposition n’apporte aucune information, sinon l’existence
probablement déjà connue de la notion de véhicule. Il serait sans utilité d’en conclure que : La compagnie
assure des véhicules.
Il faut rappeler que la plupart des propositions mettent en évidence des concepts et des liens entre ces concepts.
On cherchera donc à représenter chaque concept s’il n’est pas déjà exprimé dans le schéma courant, ainsi que
les liens qui l’unissent aux autres concepts. On doit admettre cependant que le processus ne peut être
entièrement formalisé, et que le bon sens est souvent le meilleur guide en cette matière.
Nous donnerons ci-dessous quelques règles simples et générales couvrant les situations les plus fréquentes.
Un concept nouveau se présentera par un type d’entités s’il apparait comme important, ou par un attribut s’il
apparait comme une simple propriété du concept. Exemple : la proposition tout dossier possède un titre est
formalisé par :
DOSSIERS
Titre
Fig x : Traduction d’une proposition en type d’entités
Une proposition qui établit un lien entre deux concepts déjà représentés par des types d’entités se traduira par
un type d’associations entre ces derniers. Ainsi la proposition les clients peuvent acheter des produits pourra
être intégrée au schéma courant par le formalisme suivant :
CLIENTS
Numcli CLIENTS PRODUIT
Numprod
Nom
+ Libelle Numcli Numprod
Adresse Quantité Nom Libelle
Adresse Quantité
Les clients peuvent acheter des
produits
Acheter
Fig x : Proposition traduisant un type d’associations
0,n 0,n
Une proposition qui établit un lien entre un concept déjà représenté par un type d’entité et une propriété
nouvelle de ce concept se traduira en un nouvel attribut attaché à ce type d’entités.
La proposition suivante : chaque voiture est d’un modèle déterminé, est illustré par le formalisme suivant :
VOITURES VOITURES
Numveh
marque Numveh Chaque voiture est d’un modèle déterminé
marque
modèle
Une proposition peut exprimer un lien entre deux concepts qui se traduisent naturellement par deux attributs.
Mais elle peut aussi représenter un nouveau type d’entités auquel on affecte des attributs. La proposition
suivante : Le montant est dépensé à une date déterminée, peut être élucidée via par le formalisme suivant :
DEPENSES
Date
Montant
L’intégration d’un nouveau type de faits peut poser des problèmes qui ne peuvent être résolus que par la
restructuration d’une partie de ce schéma. Par exemple certaines situations semblent réclamer des
modifications non licites du schéma courant, telles que :
2- l’établissement d’un lien entre un type d’entité E1 existant et un attribut A existant qui appartient déjà à un
autre type d’entitéE2 (un attribut ne peut être associe qu’à un seul type d’entité) ;
3 l’affectation d’un attribut A à un type d’associations R existant (un type d’associations ne peut avoir
d’attributs) ;
4 Ajouter un troisième type d’associations existant (un type d’associations ne peut relier que deux types
d’entités).
Les problèmes 1 et 2 pourraient se résoudre Si l’attribut A était au préalable transformé en un type d’entités.
Les problèmes 3 et 4 pourraient se résoudre Si le type d’associations R était au préalable transforme en type
d’entités.
Nous suggérons donc deux transformations qui permettent de résoudre les problèmes évoqués précédemment :
Transformation d’un type d’association en type d’entités (type d’associations n à n).
CLIENTS PRODUITS
Numcli Numprod
Nom libelle
Adresse Quantité
Acheter
0,n 0,n
Il est tout à fait possible d’extraire un attribut (ou même plusieurs) d’un même type d’entités pour former un
nouveau type d’entités. Ici Numfourn n’est pas une propriété de produits, il est extrait pour former un type
d’entités fournisseurs. FOURNISSEURS
PRODUITS PRODUITS
PRODUITS Numfourn Numprod
libelle
Numprod
libelle
Quantité
Numfourn
Id : Numprod
Francis Mathieu LAGO Ziza -Enseignant INP-HB de Yamoussoukro- DMI Page 29
VI.6.6 Recommandations pratiques
• Si un concept n’est décrit que par une de ses caractéristiques, on envisagera de ne pas le
représenter par un type d’entités. Si la seule mention du concept de fournisseur est celle de son
nom attaché à la description des produits qu’il livre, il peut être suffisant de le représenter par le
simple attribut NomFournisseur de produit. En cas d’hésitation définir un type d’entités
fournisseur doté de l’attribut nom et en association avec produit.
• En revanche si on cite au moins deux caractéristiques d’un concept, il faut le représenter par un
type d’entités doté d’attributs correspondant à ces caractéristiques.
• Si une même caractéristique d’un concept est citée à plusieurs endroits, il est préférable de
représenter ce concept par un type d’entités doté de l’attribut correspondant à cette
caractéristique.
• Quand on hésite sur le type d’entité auquel il faut associer un attribut, on choisira une solution
qui n’entraine pas de redondance (présence de la même information plusieurs fois).
• Si parmi les attributs d’un type d’entité, on repère un groupe homogène en relation étroite, il
convient probablement de l’extraire pour en constituer un type d’entité.
Une proposition élémentaire exprime des types de faits sous la forme de l’existence de concepts parfois déjà
présents dans le schéma courant.
On appelle redondance structurelle le phénomène selon lequel une construction du schéma courant et une
proposition nouvelle expriment le même type de faits.
CLIENTS
Tout client possède un nom
Numcli
=
Nom
Adresse
Une proposition peut exprimer un type de faits déjà représenté dans le schéma courant sous une forme
différente.
CLIENTS VEHICULES
Un véhicule appartient à un
client
=
posséder
Souvent difficile à détecter car elle exprime les types de faits qui ne sont pas explicitement exprimés dans le
schéma courant mais qui peuvent s’en déduire.
DEPARTEMENTS
SERVICES
EMPLOYES
Occuper
Le plus souvent c’est l’énoncé lui-même qui spécifiera les contraintes de manière explicite. Il sera parfois
nécessaire de recourir à des sources d’informations complémentaires telles qu’une conversation avec des
utilisateurs, la connaissance que nous pourrons avoir du domaine d’activités ou encore le simple bon sens.
Pratiquement il faudra examiner avec soins chaque type d’entités, chaque type d’associations et chaque
attribut afin d’y relever les contraintes de base et additionnelles à retenir.
A ce stade le schéma obtenu est présumé correct. On peut souvent effectuer un nettoyage de celui-ci, soit dans
un but de simplification, soit pour éliminer certaines anomalies qui pourraient subsister.
Il s’agit de s’assurer que l’information a été présentée de manière adéquate, conforme à la philosophie du
modèle entité-association. Soit le schéma suivant :
CLIENTS
LOCALITES
0,n 1,1 NumCli
Nomlocalite
Nom
Adresse
Id : Nomlocalite Id :Numcli
L’on constate que le type d’entités LOCALITES n’a d’autres intérêts que d’associer un nom de localité à
chaque entité client. On pourrait donc le remplacer par un simple attribut de client.
CLIENTS
NumCli
Nom
Adresse
Nomlocalite
Id :Numcli
Un bon schéma entité-association dispose de 9 règles de normalisation que le concepteur doit connaitre par
cœur.
1-Normalisation des types d’entités (importante): tout type d’entité remplaçable par une association
doit être remplacée. Exemple : le type d’entité projections dispose de cardinalité 1,1 de part et d’autres,
elle peut être remplacée par un type d’association projeter.
Crenaux
horaires
Créneaux
horaires Numcren
Date
Numcren Heuredebut
date
heuredebut
0,n
Francis Mathieu LAGO Ziza -Enseignant INP-HB de Yamoussoukro- DMI Page 32
Avoir lieu pendant
0,n
0,n 0,n
Projections
Films
1,1 Projeter Films
Concerner
Numproj
Tarif
Numfilm soi Tarif
Numfilm
Titre
Durée Titre
1,1 Durée
0,n
Avoir lieu dans
Salles
0,n
+ unicité de la
Salles
projection de tel film, Numsalle
Capacité
Numsalle dans telle salle, à tel
Capacité créneau
2-Normalisation des noms : le nom d’une entité, association ou d’un attribut doit être unique :
- pour les entités, utiliser un nom commun au pluriel en majuscule (par exemple : CLIENTS)
- pour les associations, utiliser un verbe à l’infinitif (effectuer, concerner) éventuellement à la forme
passive (être commandé) et accompagné d’un adverbe (avoir lieu dans, pendant ,à) ;
- pour les attributs, utiliser un nom commun singulier (par exemple : Nom, Prénom) éventuellement
accompagne du nom de l’entité ou de l’association auxquelles ils appartiennent (nometudiant).
Nb : Si les noms sont composés de plus d’un mot, séparer les mots par un tiret bas(nom_etudiant)..
Lorsqu’il existe le même nom plusieurs fois cela est sujet à une redondance. Exemple :
ETUDIANTS ENSEIGNANTS
PERSONNES
Si deux attributs contiennent les mêmes informations, alors la redondance induit non seulement un
gaspillage d’espace mais un grand risque d’incohérence (ici les Adresselivr ne sont pas les mêmes).
3-Normalisation des identifiants : Chaque entité doit posséder un identifiant :
- éviter les identifiants composés de plusieurs attributs (par exemple un identifiant formé par les attributs
nom, prénoms)
- préférer un identifiant court (minimal) pour rendre la recherche la plus rapide possible (éviter les
chaines de caractères comme numéro de plaque d’immatriculation, le numéro de sécurité sociale
ou code postal).
- éviter les identifiants susceptibles de changer dans le temps (comme la plaque d’immatriculation et
numéro sécu provisoire).
- L’identifiant sur un schéma entité association est souligné, c’est la future clé primaire dans le
schéma relationnel, il doit être un entier de préférence incrémenté automatiquement.
4 Normalisation des attributs (importante)
- Remplacer les attributs en plusieurs exemplaires qui posent des problèmes d’évolutivité du modèle, par
une association supplémentaire de cardinalités max n, et ne pas ajouter d’attributs calculables à partir
d’autres attributs. Voir figure courante
EMPLOYES
EMPLOYES
Numempl
Numempl Nom ADRESSES
Nom 1,n
Adresseprincipale Normalisation Numadresses
Adressesecondaire Adresseprincipale
occuper
Teldomicile Adressesecondair
Telportable e
1,n type
1,n
Posséder
TELEPHONES
Numtelephone
Teldomicile
1,n Telportable
Calculable à partir de
- Les attributs d’une association de type plusieurs à plusieurs dépendent directement des identifiants des
entités en associations. Voir exemple Fig x : normalisation des attributs des associations
LIVRAISON LIVRER
COMMANDES
passer
Numlivr
Numcom
nomlivreur
Datecom
Datelivr 1,n
1,n
L’inconvénient de cette règle de normalisation est qu’elle est difficile à appliquer pour les associations qui ne
possèdent pas d’attributs. Pour vérifier cette règle aux associations sans attributs, on peut donner à l’association
un attribut imaginaire
5-Normalisation des associations (importante):il faut éliminer les associations fantômes, redondante
ou en plusieurs exemplaires voir figure ci-dessous :
FOURNISSEURS
1,1
Numfourn
Nomforn
Adressefourn FOURNISSEURS
Travailler chez
fusion Numfourn
CONTACTS nomfourn
adresse
Numcontact telcontact
nomcontact 1,1
telephonecontac
6-Normalisation des cardinalités : une cardinalité mini vaut 0 ou 1 et une cardinalité max vaut 1 ou n
et non 2,3…Cela signifie que les que cardinalités max 2,3…pourraient évoluer vers n. par contre les
cardinalités, max valant 0 n’ont pas de sens.
Par exemple l’entité avion à gauche n’est pas en forme normale de Boyce Cood, car la capacité et le
constructeur ne dépendent pas du numéro d’avion mais de son modèle. La solution normalisée est formalisée
sur la figure suivante :
AVIONS AVIONS
MODELES
Numavion Numavion 1,n 1,n
Nummodele
D’AVIONS
3eme forme
Modèle Propriétaire codemodele
normale Etre du
Constructeur
LibelleModèle
Capacité Constructeur
Propriétaire Capacité
QUE RETENIR ?
- Le modèle entités-associations permet de structurer les concepts d’un domaine d’application en type
d’entités, type d’associations et éventuellement leurs attributs;
- Un type d’entités contient une classe ou population d’objets (instances ou entités), remarquable du
domaine d’application, dont chaque attribut représente une propriété commune aux entités de ce
type.
- Les entités peuvent être mises en relation deux à deux par des associations binaires classées en type
d’associations ;
- Un attribut tire ses valeurs d’un type de valeurs de base (entier, caractère, booléen, etc.) ;
- Un attribut est obligatoire si chaque entité doit posséder une valeur pour cet attribut, sinon il est
déclaré facultatif ;
- Un type d’associations comprend deux rôles joués chacun par un type d’entités, si les rôles sont joués
par le même type d’entité, le type d’associations est dite cyclique ;
- Un rôle est caractérisé par une contrainte de cardinalités formée par un couple de valeurs indiquant
le minimum, et maximum de fois une entité participe à une association. Il existe trois classes
fonctionnelles principales ou type d’associations: un à un, un à plusieurs, plusieurs à plusieurs ;
- Un type d’entités peut posséder un ou plusieurs identifiants. Le plus important est le primaire, les
autres sont des secondaires. (voir page 308).
Certaines parties du schéma ne sont peut être encore qu’a l’état d’ébauche. On les complétera par des
vérifications systématiques telles que les suivantes :
Types d’entités
Attributs
Type d’associations
Une base de données est construite à partir du schéma conceptuel qui décrit les concepts du domaine
d’application. Il est important que ce schéma représente naturellement, complètement et sans
redondance ce domaine d’application ;
La connaissance du domaine d’application s’appuie généralement sur un ensemble de textes décrivant
les concepts du domaine, et décomposés en propositions élémentaires, obéissant à la forme binaire sujet
verbe objet ou concept lien concept ;
Les propositions non binaires sont décomposées en propositions binaires ;
Les types d’entités siège de redondance seront également décomposés ;
La normalisation du schéma consiste à simplifier certaines structures (types d’entités, attributs et types
d’associations.
Face à une situation bien définie (soit à travers un énoncé précis ou une collection de formulaires ou d’états )
que le système d’information est censé remplacer, l’on pourra procéder ainsi :
La phase finale de production d’une base de données consiste à traduire le schéma conceptuel dans le langage
de définition de données d’un SGBD. Pratiquement, on traduira chaque composant du schéma entité-
association en structures de tables, colonnes, identifiants, clés primaires et clés étrangères. Ces structures sont
généralement exprimées dans le langage SQL.
Le schéma conceptuel exprime clairement les structures d’information à représenter, mais il n’est pas accepté
tel que par l’ordinateur. Il est donc nécessaire de traduire ce schéma en structures techniques de tables et de
colonnes, c'est-à-dire en concepts compréhensibles et gérables par des outils disponibles : les SGBD
relationnels.
a) Un type d’entités non influencé du MCD, devient une relation, c’est à dire une table dans le schéma de la
base. La table garde les mêmes attributs que dans le MCD.
Dans un SGBD de type relationnel, une table est une structure tabulaire dont chaque ligne correspond aux
données d'un objet enregistré (d'où le terme enregistrement ) et où chaque colonne correspond à une propriété
de cet objet. Une table contiendra donc un ensemble d’enregistrements. Une ligne correspond à un
enregistrement. Une colonne correspond à un champ. La valeur prise par un champ pour un enregistrement
donné est située à l’intersection ligne-colonne correspondant à enregistrement-champ.
Il n’y a pas de limite théorique au nombre d’enregistrements que peut contenir une table. Par contre, la limite
est lié à l’espace de stockage.
b) l’identifiant du type d’entités devient la clé primaire de la table.
La clé primaire permet d’identifier de façon unique un enregistrement dans la table. Les valeurs de la clé
primaire sont donc uniques. Les valeurs de la clé primaire sont obligatoirement non nulles.
Dans la plupart des SGBDR, le fait de définir une clé primaire donne lieu automatiquement à la création d’un
index.
- c) Les autres propriétés deviennent les attributs de la relation.
Numcli
Nom
Adresse
Dans un type d’association binaire un à plusieurs entre deux types d’entités A et B (plusieurs entités B pour
L’entité A est appelé fils (carda max 1 : un fils n’a qu’un seul père)
L’entité B est appelé père (carda max n : un père peut avoir plusieurs fils)
Le type d’association ne devient pas une table, La table fils A retient ses propriétés, la table père B reçoit une
copie de l’identifiant de la table fils ainsi que les attributs du type d’associations. Ainsi le schéma conceptuel
suivant :
L’identifiant migrant est une clé étrangère (Numcli) dans la table COMMANDES. Cette clé ne peut pas avoir
la valeur nulle si la cardinalité est 1,1. Obtenant ainsi le schéma relationnel de la base de données comme
suivant :
CLIENTS COMMANDES
Numcli Id : Numcom
Nom
Adresse ref : Numcli
Numcom
Id : Numcli Qtecom
Numcli
Une association de type N :N (c’est à dire qui a les cardinalités maximales positionnées à « N » des 2 côtés de
l’association) se traduit par une table dont la clé primaire est composée des clés étrangères référençant les
relations correspondant aux entités liées par l’association.
Les éventuelles propriétés de l’association deviennent des attributs de la relation.
Exemple, Du MCD suivant :
COMMANDES Ref
PRODUITS
1,n 1,n
Concerner
Numcom Refprod
Datecom Quantite Libelleprod
Id :Numcom Id : Refprod
On entend par type d’ association 1,1 une association dont les cardinalités maximales sont à 1 de chaque côté.
- Type d’association de cardinalité 1,1 de part et d’autre : Le type d’association ne devient pas une
table dans la base.
Exemple 1 : Dans le cadre d’une course à la voile en solitaire, l’on peut représenter le schéma relationnel après
avoir fait le schéma Entités-Relations pour les informations suivantes : numéro du marin, nom du marin,
numéro du voilier, nom du voilier.
Id : Numappart Id : Numplace
ANIMATEURS
ACTIVITES-CULTURELES
Numanim 0,1 0,1
Animer Idactivités
Nom
Nomactivites
Id : Numanim
Id : Idactivités
ANIMATEUR (numAnimateur , nom)
Clé primaire : numAnimateur
ACTIVITE_CULTURELLE (idActivite, nomActivite)
Clé primaire : idActivite
ANIMER (, #numAnimateur , , # idActivite)
Clé primaire : numAnimateur + idActivite
Clé étrangère : numAnimateur qui référence numAnimateur de la table ANIMATEUR
Clé étrangère : id Activité qui référence id Activité de la table ACTIVITE_CULTURELLE
1. La règle informationnelle : Toutes les informations dans la base des données sont explicites et portent
la même structure logique et sont représentées par valeurs dans les tableaux.
2. La règle de certitude : Toutes les données dans le modèle relationnel sont accessibles par la
combinaison de nom de tableau, la valeur de clé principale et le nom de la colonne.
3. Le traitement des valeurs nulles systématique : Les valeurs nulles sont bien adoptées par le modèle
relationnel et pour représentation de l’information qui n’est pas définie et ne sont pas dépendantes du
type de données.
4. Le catalogue en ligne basé sur le modèle relationnel : La description de la base des données est
exprimée sur le même niveau logique et de même manière que les dates de client. Alors un utilisateur
autorisé peut appliquer la même langue relationnelle pour appliquer sa demande comme utilisateur qui
travaille avec les données.
5. La langue de définition des données : Le système relationnel peut soutenir plusieurs langues et modes
pendant l’utilisation de terminal. Mais il faut qu’il y ait au moins une langue vaste qui puisse définir la
Le modèle relationnel est basé sur la notion d’ensemble. Chaque ensemble possède un nom et aussi des attributs
nommés qui appartiennent dans cet ensemble et il existe des restrictions intégrales qui limitent cet ensemble.
On peut présenter cet ensemble sous forme d’une table relationnelle qui porte son nom et les attributs sont
représentés par les colonnes. Dans les cellules de la table peuvent être seulement inscrits les éléments
atomiques. L’aménagement des dates dans la base des données est pour un utilisateur non essentiel et les dates
peuvent exister indépendamment sur le dépôt physique. Un grand avantage de ce modèle est que l’utilisateur
n’a pas à savoir où sont déposées physiquement les données et il peut les utiliser sans problème. C’est un grand
avantage par rapport au modèle hiérarchique ou au modèle réseau.
La modélisation relationnelle permet de présenter les relations sous forme des tables de deux dimensions.
Chaque colonne possède un identificateur qui représente un domaine. On appelle tuple ou n-uplet un set des
valeurs des attributs incoordonnés, c'est-à-dire la ligne de table. La relation peut donc être définie par le set de
n-tuples. « Chaque opération relationnelle sur une table génère une nouvelle relation et les opérateurs
relationnels – ceux de la langue SQL, permettent de décrire le résultat que l’on veut obtenir sans avoir à décrire
la procédure nécessaire pour arriver au résultat : on dit que la langue relationnel est « non procédural » »
Pour lier les relations ensemble il existe la clé primaire et la clé étrangère. La clé principale d’une relation est
un attribut ou un ensemble des attributs qui permet de désigner d’une façon unique un tuple. La seule
Dans le sens mathématique est la relation un sous-ensemble du produit cartésien des certaines domaines. Un
domaine est représenté comme un ensemble des valeurs : R = (A1 X A2 X A3).
Cette relation R est représentée par une table de 3 colonnes (trois attributs) A1, A2, A3 dont chaque ligne est
caractérisée par différente valeurs dans les domaines A1, A2, A3.Pour modéliser l’entité du monde réel
« voiture » on prendra comme constituants la marque, la couleur, la plaque d’immatriculation et la date de
création : voiture (marque, couleur, plaque-immatriculation, date-création). Les domaines correspondant aux
identificateurs de colonnes peuvent être déterminés par les ensembles de valeurs suivants :
Dans le modèle relationnel, les entités du schéma conceptuel sont transformées en tableaux à deux dimensions.
Le modèle relationnel s’appui sur trois concepts fondamentaux : le domaine, l’attribut et la relation ou table.
1. Domaine : ensemble de valeurs défini en extension ou en intension. Un domaine peut être simple ou
composé.
Ex : l’ensemble des grades du salarié peut être définit en extension par employé, agent de maîtrise, ou cadre.
2. Attribut : chaque colonne est appelée attribut et contient un ensemble des valeurs d’un domaine.
Chaque ligne représente un tuple.
3. Relation ou table : une relation est un tableau à deux dimensions. Le degré de la relation est le nombre
de colonnes ou des domaines considérés.
- Incohérence en modification
Observation
Les données TITRE et AUTEUR sont répétées autant de fois
qu'il existe de livres identiques.
Problèmes
• gaspillage d'espace
• si on modifie la valeur d'un titre, il faut répercuter cette
modification dans toutes les lignes similaires
• si on supprime l'unique exemplaire d'un livre, on perd les
informations sur son auteur et son titre
• est-on certain que le titre et l'auteur ont été orthographiés
exactement de la même manière pour tous les exemplaires
d'un livre ?
Suggestion
Rassembler les données communes (ISBN, TITRE, AUTEUR)
dans une table spécifique
On dit que :
• il existe une dépendance fonctionnelle de ISBN vers TITRE et
AUTEUR
• ISBN détermine ou est un déterminant de TITRE et AUTEUR
• TITRE et AUTEUR dépendent de ou sont déterminés par ISBN
Deux observations
1. par définition, un identifiant détermine toutes les colonnes de
la table
2. si un groupe de colonnes détermine chaque colonne de la
table, il constitue par définition un identifiant de la table
Dernières remarques
1. Une table qui est le siège d'une dépendance fonctionnelle anormale est dite non normalisée
nom Dependances
fonctionnelles
Region type
NN NOMP
Normalisation
Relation universelle
L'intérêt de ces axiomes et des propriétés déduites est de pouvoir construire, à partir d'un premier ensemble de
dépendances fonctionnelles, l'ensemble de toutes les dépendances fonctionnelles qu'elles génèrent. On parle
alors de dépendances fonctionnelles élémentaires.
Exemple :
Deux plages d'une même région ne peuvent pas porter le même nom (contrairement à deux plages de régions
différentes) ; le degré de pollution d'une plage dépend exclusivement de la plage et non de la région. On a alors
(NOMP, REGION) → POLLUTION
mais on n'a aucunement
NOMP → POLLUTION
ni
REGION → POLLUTION
donc (NOMP, REGION) → POLLUTION est une dépendance fonctionnelle élémentaire.
IX.2.1.2. Graphe des dépendances fonctionnelles
C'est une représentation graphique permettant de visualiser aisément toutes les dépendances fonctionnelles et
d'isoler les principales (i.e. les DF élémentaires).
Exemple :
Toutes les dépendances fonctionnelles citées précédemment peuvent être représentées de la façon suivante.
Voir document BON BON PDF
Exemple :
NN est clé de la relation PERSONNE (NN, NOM, PRENOM, QUALITE) ;
(NOMP, REGION) est clé de la relation (NP, NOMP, REGION, POLLUTION, TYPE).
Plusieurs clés peuvent être candidates pour une même relation.
Exemple :
NP et (NOMP, REGION) sont deux clés candidates à la relation (NP, NOMP, REGION, POLLUTION,
TYPE).
Dans l'écriture des schémas de relations, on indique les clés en soulignant les attributs constitutifs.
2- EDITER l'ensemble des attributs isolés dans une même relation (tous les attributs sont
clés) ;
3- RECHERCHER le plus grand ensemble X d'attributs qui détermine d'autres attributs ;
4- EDITER la relation R(X, A1, ..., AN) qui est en troisième forme normale ;
5- SUPPRIMER toutes les dépendances fonctionnelles figurant dans R du graphe de
couverture minimale C ;
6- SUPPRIMER les attributs isolés de C (c'est-à-dire les attributs non sources ou cibles de
dépendances fonctionnelles) ;
7- REPETER l'opération de réduction du graphe C à partir de l'étape 3 jusqu'à ce que C soit
vide.
Remarque : Cet algorithme fournit bien une décomposition en 3FN qui préserve les DF mais qui n'est pas
nécessairement sans perte. Pour avoir une décomposition sans perte, il suffit d'ajouter à la décomposition finale
une relation composée des attributs formant la clé de la relation universelle (ou ajouter ces attributs à la
relation créée à l'étape 2, si elle existe).
Il s'agit ici de détecter les boucles pouvant exister dans le graphe des dépendances fonctionnelles. Supposons,
par exemple une relation PLAGE indiquant le nom, la région et le canton où se situent les plages. Supposons en
outre que deux plages d'une même région ne puissent pas porter le même nom et qu'il n'existe pas deux cantons
de même nom. La relation se note : PLAGE (NOMP, REGION, CANTON) et possède les dépendances
fonctionnelles suivantes : (NOMP, REGION) → CANTON et CANTON → REGION
De même que pour les dépendances fonctionnelles, il existe des axiomes d'inférence de dépendances
multivaluées. Ce sont les suivants :
IX.6 CONCLUSIONS
Dans ce chapitre, nous avons présenté la théorie de la normalisation des schémas relationnels. Cette
normalisation est très importante dans la pratique si l'on veut éviter de stocker des informations redondantes.
On considère, en général, que la troisième forme normale est suffisante dans les cas courants.
Dépendant de la sémantique des données, le processus de normalisation reste à la charge de l'utilisateur du
SGBD. Cette phase, délicate, est aujourd'hui largement facilitée par des outils d'aide à la conception que
proposent différents constructeurs.
X LES OUTILS
Les activités d’analyse et de production peuvent rapidement s’avérer fastidieuse et sujettes à des erreurs. C’est
pourquoi les informations se fon t aider par des outils spécialistes, les ateliers de génie logiciel ou AGL, de la
même manière que les architectes, les graphistes les ingénieurs disposent d’outils informatiques spécifiques à
leur domaine.
X.1.1 Introduction
On conçoit aisément que la gestion d’une BD, sa consultation et d’une manière générale la manipulation des
données qu’elle contient constituent des opérations complexes. C’est la raison pour laquelle on fera appel à des
logiciels spécialisés appelés systèmes de gestion de bases de données (SGBD). L’on distingue plusieurs SGBD
sur le marche, Access, oracle, db2, SQL server ou MySQL, qui sont parmi les SGBD les plus représentatifs. Ils
offrent un ensemble de fonctions permettant la définition, l’exploitation et la gestion de tables et de leurs
contenus. Les fonctions offertes généralement par les SGBD relationnelles sont :
- Organisation des données : les données sont organisées sous forme de tables et de colonnes. le SGBD
vérifie les propriétés d’unicité (deux lignes n’ont pas la même valeur de NPROD dans la table des
produits) et de référence (à toute valeur de NPROD dans la table détails doit correspondre une ligne
dans la table des produits) de certaines colonnes).
- Gestion des données : il est possible d’ajouter et de retirer des lignes dans une table. Il est également
possible de modifier les valeurs d’une colonne dans certaines lignes d’une table. Le SGBD garantit le
respect des contraintes d’unicité et de référence qui ont été déclarées.
- Accès aux données : l’accès aux données et leur manipulation s’effectuent à l’aide du langage SQL.
Celui-ci permet de décrire des ensembles des données en en définissant les propriétés, c'est-à-dire sans
faire référence aux techniques d’accès qui seront utilisées pour atteindre ces données dans la base. cette
désignation d’ensemble de données prend la forme de requêtes SQL.
Les données sont au cœur de grandes applications informatiques, mais elles sont aussi essentielles dans la
plupart de nos activités professionnelles ou simples citoyennes. Les défis des SGBD de nos jours sont diverses :
- Multiplicité des types de données : les données prennent aujourd’hui des formes très variées , souvent
bien éloignées de simples formats que nous observons chaque jour : donnees multimédias, (images,
vidéo, musique) , donnees semi-structurées(texte, formulaire), donnees géographiques(GPS)…
- Information incomplète : l’on est souvent submergé d’informations de piètres qualités. Cela est vrai
pour les bases de donnees contenant de nombreuses donnees erronées. Comment produire l’information
correcte à partir des donnees imprécises ?
- Volumes et performances : en 1969 la plus grande BD comportait 500 000 enregistrements(Bachmann).
Elles en contiennent aujourd’hui plusieurs milliards. Comment mémoriser , gérer et exploiter ces
donnees en toute sécurité en offrant aux utilisateurs des temps de réponse acceptables ?
- Accès aise par des non informaticiens :l’explosion des demandes exige que l’utilisateur puisse lui-même
accéder aux donnes sans passer par l’intermédiaire de l’informaticien. Quelles technologies qu’elles
interfaces et quelles compétences vont amener ces utilisateurs à l’autonomie nécessaire ?
- Maintenance et évolution : comme tous les composants des systèmes d’information, les bases de
donnees évoluent au gré de l’évolution des besoins des utilisateurs . ce processus est complexe. En
effet une BD est utilisée par plusieurs milliers de programmes, de sortes que toute modification des
structures de donnees risque d’exiger la modification des milliers de programme set d’écrans
d’interfaces avec les utilisateurs. Le manque de documentation décrivant les formats et la signification
des structures de donnees constitue ici un défi majeur.
- Données distribuées et nomades : le modèle d’une BD sous la forme d’une machine unique n’est plus
appropriée aux exigences actuelles. Les donnes sont aujourd’hui distribuée sur plusieurs machines
communicantes, qui vont de gros serveurs aux Smartphones. Les techniques de gestion et d’exploitation
centralisée ne sont plus suffisantes d’autant plus que certaines parties de la base sont nomades
intermittentes et partiellement autonomes.
- Les BD et le web : le web constitue une BD extraordinaire. Mais loin des concepts classiques : mode de
stockage, formats de données, SGBD, délocalisation, consultation et gestion, intégrité, sécurité,
résistance aux pannes, tout est différent. Mais comment unifier web et bases de données ?comment
interfacer web avec les BD ?
- Données décisionnelles : aux BD traditionnelles, celles que nous allons étudier dans cet ouvrage
s’ajoutent les BD d’aide à la décision souvent dénommées entrepôts de donnees. Ces BD spécialement
Francis Mathieu LAGO Ziza -Enseignant INP-HB de Yamoussoukro- DMI Page 63
conçues pour l’analyse des données sont souvent de très grande taille et alimentées par à partir de
sources diverses dont les bases de données classiques et font l’objet de traitements statistiques
extrêmement lourds.
- Les ORM : l’émergence des outils de développement de programmes dits Object relational mapping(tels
que EJB et Hibernate), incitent à ,modéliser les besoins des utilisateurs sous la forme de classes java.
De celles-ci les outils sont capables de dériver de manière automatique les structures d’une base de
donnees permettant de stocker les données persistantes des objets de ces classes. Cette pratique entraine
souvent de multiples problèmes de qualité et d’évolutivité de la base de données.