MERISE
MERISE
BASES DE DONNEES
VERSION 2.0
MANUEL DE L'ETUDIANT
Préface
Symboles utilisés à l'intérieur de cet ouvrage:
Paragraphe important
Exercice
Exercice TP
Remarque pédagogique
1.1 Introduction
La compétitivité d'une entreprise ainsi que sa valeur sur le marché sont déterminées par plusieurs éléments,
d'une importance différente selon le secteur d'activité. On peut généralement regrouper ces éléments en deux
classes:
Depuis quelques années, les responsables des entreprises (banques, assurances, industrie etc. ) ont davantage
reconnu et admis que la gestion et l'exploitation des informations sont un facteur de compétitivité à ne pas
négliger.
Le développement rapide de l'informatique a donné aux entreprises la possibilité d'utiliser des moyens
avancés et puissants pour gérer et exploiter de très grands volumes de données. Il y a quelques années, le
domaine de la gestion informatique des données était réservé aux informaticiens. Actuellement, les tendances
à l'intérieur des entreprises ont changé de façon à ce que tous les employés soient de plus en plus impliqués
dans les différents procédés liés à la gestion et l'exploitation des données. De cette façon, un certain niveau
de connaissance des principes et des outils standards de l'informatique est aujourd'hui requis pour la
plupart des postes disponibles dans les entreprises.
Toutefois, il ne suffit pas d'utiliser les ressources informatiques les plus sophistiquées pour exploiter au mieux
les données. En parallèle avec les outils informatiques utiles pour gérer des données, tels que les ordinateurs
de plus en plus puissants et les logiciels adaptés (SGBD, Tableur etc.), ont été développées des méthodes
d'analyse et de conception de systèmes d'information. Ces méthodes nous offrent la possibilité d'analyser un
système d'information naturel, tel que par exemple la gestion des livres d'une librairie ou la gestion des
sinistres d'une compagnie d'assurances, de concevoir ensuite un modèle qui représente ce système et
d'implémenter finalement un système informatique, basé sur ce modèle.
Une information est un élément qui permet de compléter notre connaissance sur une personne, un
objet, un événement … .
Exemple: Le nom d'une personne est une information concernant cette personne.
La couleur d'une voiture est une information concernant cette voiture.
La date de la fête scolaire est une information concernant cet événement.
Un système d'information est constitué par l'ensemble des informations relatives à un domaine
bien défini.
Exemple: Toutes les informations relatives à la gestion d'une librairie constituent le système d'information de
cette librairie. Ce système peut couvrir le simple stockage des livres, mais également la gestion des
commandes, des ventes et même des clients.
Un système d'information ne doit pas nécessairement être informatisé. Bien que la plupart des systèmes
actuels se basent sur la technologie de l'informatique, il existe encore des systèmes d'information où
l'information est stockée, manipulée et communiquée à l'aide de moyens "traditionnels" tels que armoires,
classeurs, calculatrices, fiches sur papier etc. .
Le système d'information ne doit pas être confondu avec le système informatique qui est constitué par les
éléments suivants:
Les ordinateurs
Les programmes
Les structures de données (Fichiers, Bases de données)
Dans ce chapitre nous allons découvrir une démarche d'informatisation, qui nous permet de modéliser un
système d'information et de le représenter à l'aide d'un système informatique. Le but de cette démarche est de
concevoir des systèmes stables et optimisés en termes de performance, de fiabilité et de convivialité.
Prenons un exemple:
Dans une librairie, un client demande au vendeur si le livre "L'étrange destin de Wangrin" (Amadou
Hampaté Bah) est disponible en stock. Le vendeur consulte la base de données de la librairie à l'aide de son
ordinateur et confirme au client que le livre est disponible. Le vendeur a donc donné au client l'information
que le livre est en stock. Afin de pouvoir donner cette information, le vendeur a du consulter les données qui
représentent le stock de la librairie. Le fait de consulter le stock constitue un traitement sur les données du
stock.
Informations Informations
Système
entrantes sortantes
d'information
Un système d'information contient les données et les traitements nécessaires pour assimiler et
stocker les informations entrantes et produire les informations sortantes.
Dans les systèmes d'information nous retrouvons généralement les traitements suivants:
Consultation des données;
Ajout de données;
Suppression de données;
Modification de données.
Exemple:
Le propriétaire d'une vidéothèque reçoit une livraison avec des nouvelles cassettes vidéo. Pour chaque
cassette vidéo, il lit le titre, la langue et la durée et sauvegarde ces informations dans la base de données de la
vidéothèque. Il a donc utilisé un traitement d'ajout de données afin de transformer les informations entrantes
(titre, langue, durée) en données.
1
Deux mots sont synonymes quand ils désignent une même chose.
Dès que le système d'information atteint une certaine envergure (par exemple: informatiser la gestion des
sinistres d'une compagnie d'assurances), un groupe d'étude est généralement créé.
Ce groupe ne devra en aucun cas contenir seulement des informaticiens mais également:
Un représentant de la direction.
Généralement, un responsable du groupe (angl. Project Manager) est nommé, afin de coordonner les travaux
effectués par le groupe et de suivre le déroulement à partir de l'analyse jusqu'à la mise en place du système
informatisé.
2. Création d'une série de modèles qui permettent de représenter tous les aspects importants
Pour les projets qui se basent sur un système déjà partiellement informatisé s'ajoute:
L'étude de l'application informatique existante.
3.1 Définition
Nous avons vu que la démarche classique d'un projet informatique comprend les étapes suivantes:
1. Analyse de la situation existante et des besoins;
2. Création d'une série de modèles, qui permettent de représenter tous les aspects importants;
3. A partir des modèles, implémentation d'une base de données.
En ce qui concerne la première étape, nous n'allons pas introduire de vraies règles, mais simplement utiliser
nos connaissances de gestion d'une entreprise, notre esprit ouvert et même notre fantaisie pour analyser
correctement la situation existante et les besoins des utilisateurs. Le résultat de l'analyse est généralement un
ou plusieurs documents, qui contiennent les indications principales sur le fonctionnement désiré du système
informatisé. Le document d'analyse contient souvent déjà des prototypes de certains documents importants,
que le futur système devra être capable de produire.
Une fois que l'analyse est terminée, il s'agit d'élaborer une série de modèles, basés sur le document d'analyse.
Ces modèles nous permettront plus tard d'implémenter une base de données, qui contiendra toutes les
informations nécessaires au bon fonctionnement du système informatisé.
La création de ces modèles se fait selon une certaine méthode. Nous allons baser notre cours sur la
méthode MERISE (Méthode d'Etude et de Réalisation Informatique de Systèmes d'Entreprise), qui a été
développée pendant les années '70 sous l'impulsion du ministère français de l'industrie. Merise est aujourd'hui
largement répandue au Luxembourg, mais également dans beaucoup d'autres pays européens.
MERISE prévoit une conception par niveaux, et définit pour cela 3 niveaux essentiels:
1. Le niveau conceptuel, qui se base directement sur l'analyse, décrit l'ensemble des données du système
d'information, sans tenir compte de l'implémentation informatique de ces données. Ce niveau, qui
représente donc la signification des données, se traduit par un formalisme que nous appelons:
2. Le niveau logique, qui se base sur le modèle conceptuel des données, prend en considération
l'implémentation du système d'information par un SGBD. Ce niveau introduit la notion des tables logiques,
et constitue donc le premier pas vers les tables des SGBD. Ce niveau est représenté par le:
3. Le niveau physique, qui se base sur le modèle logique des données, contient finalement les tables définies
à l’aide d’un SGBD spécifique ([Link]. MS Access, dBASE, Oracle …). Ce niveau est représenté par le:
Voici donc les 4 étapes nécessaires pour traduire un système d'information naturel en une base de données:
Analyse
MCD
MLD
MPD
Proposé par M. Mohamed Lamine Keita 11 UNISIM/IPROSIM
Modélisation d'un système d'information
Pour l’instant, il nous suffit de savoir qu’une table est un ensemble d’enregistrements, dont chacun est
composé par les mêmes champs de données. On pourrait comparer une table à une liste en MS-Excel1.
Voici un exemple d’une table :
Un champ
de données
A l’aide d’un exemple précis, nous allons voir pourquoi il est important de bien réfléchir sur le nombre de
tables d’une base de données et sur la structure de chaque table.
Il s’agit de créer une base de données pour une caisse de maladie. On veut stocker tous les employés-membres
de la caisse avec leur société-employeur. Afin de faciliter l’exercice, nous allons uniquement stocker les
informations suivantes pour chaque employé:
le numéro de l’employé
le nom de l’employé
le prénom de l’employé
le numéro de son entreprise
le nom de son entreprise
la localité où se trouve l’entreprise
Hors cette solution, bien qu’elle soit correcte dans le sens le plus large du terme, nous impose un certain
nombre de problèmes .
1
voir cours de la classe 12CG
Exercice 1
Essayez de trouver en discussion quelques problèmes qui peuvent se manifester lors du travail journalier avec
cette table.
Exercice 2
Comment est-ce qu’on pourrait éviter ces problèmes sans toutefois perdre des informations ?
En se basant sur un document d'analyse, le modèle conceptuel des données (MCD) fait référence à tous les
objets du système d'information et à des associations entre ces objets. Le formalisme utilisé dans ce modèle
est encore connu sous le nom de "Schéma Entité-Association". Ce formalisme se base autour de 3 concepts
principaux, les entités, les associations et les propriétés.
Voici par exemple un MCD qui représente une entreprise avec ses employés.
Entité
Relation Propriété
Nous allons par la suite détailler le rôle de ces 3 concepts de base du MCD.
Une entité permet de modéliser un ensemble d'objets concrets ou abstraits de même nature.
Dans l'exemple du chapitre précédent , l'entité Entreprise spécifie donc l'ensemble des entreprises, qui nous
intéressent dans le contexte de notre système d'information. De même, l'entité Employés représente tous les
employés de notre système d'information.
Représentation graphique:
Une propriété est unique dans un MCD; et ne peut pas être rattachée à plusieurs entités
différentes.
Exemple:
A l'intérieur de chaque occurrence, chaque propriété prend une valeur, qui est dans la plupart des cas une
valeur numérique, une valeur sous forme de texte ou encore une date.
La propriété Nom prend [Link]. les valeurs "Meier", "Muller" et "Weber" dans les 3 occurrences.
A l’intérieur de chaque occurrence, chaque propriété ne prend qu’une seule valeur au maximum.
Afin de pouvoir distinguer les différentes occurrences d'une même entité, l'entité doit être dotée
d'un identifiant. L'identifiant est composé d'une ou de plusieurs propriétés de l'entité. Chaque
occurrence d’une entité doit avoir une valeur différente pour l’identifiant Le choix d'un identifiant
correcte est très important pour la modélisation:
Comme choix pour l'identifiant d'une entité nous distinguons généralement 3 possibilités:
Exercice
1. les passagers d’un vol d’une société aérienne. Nous supposons que la société garde ces informations après
le vol ;
[Link] Définition
L'occurrence d'une association est représentée par les occurrences des entités liées à la association. Voici
quelques occurrences de la association Ecrire.
Une occurrence d’une association est uniquement déterminée par les occurrences des entités liées à la
association.
Pour chaque occurrence d’une association, l’identifiant composé des identifiants des entités liées
à la association doit être unique.
1
dans certains livres on parle encore d’une association pour désigner une relation
Une association est liée à chacune de ses entités par une patte. Sur la patte, on indique les
cardinalités.
Les cardinalités précisent la participation de l'entité concernée à la association. Le premier nombre
indique la cardinalité minimale, le deuxième la cardinalité maximale.
Patte
Cardinalité
Cardinalité
minimale
maximale
Exemple 1:
Dans le MCD précédent, entre l'entité Client et la association Passer, nous avons les cardinalités suivantes:
Cardinalité minimale = 1 , ce qui veut dire que chaque client passe au moins une commande.
Cardinalité maximale = n , ce qui veut dire que chaque client peut passer plusieurs (n) commandes.
Entre l'entité Commande et la association Passer, nous retrouvons les cardinalités suivantes:
Cardinalité minimale = 1 , donc chaque commande est passée par au moins un client.
Cardinalité maximale =1 , chaque commande est passée au maximum par un seul client.
Exemple 2:
Cardinalité minimale = 0 :
Certains employés n'utilisent pas d'ordinateur
Cardinalité maximale = n:
Cardinalité minimale = 1 :
Cardinalité maximale = n :
La cardinalité minimale exprime le nombre minimum de fois q’une occurrence d'une entité participe à
une association. Cette cardinalité est généralement 0 ou 1.
Cardinalité minimale = 0 : Certaines occurrences de l'entité ne participent pas à la association
Cardinalité minimale = 1 : Chaque occurrence de l'entité participe au moins une fois à la association
La cardinalité maximale exprime le nombre maximum de fois q’une occurrence d'une entité participe à
une association. Cette cardinalité vaut souvent 1 ou n, avec n indiquant une valeur >1 mais pas connue
à priori.
Cardinalité maximale = 1 : Chaque occurrence de l'entité participe au maximum une seule fois à la
association.
Cardinalité maximale = n : Chaque occurrence de l'entité peut participer plusieurs fois à la association.
En pratique, afin de déterminer les bonnes cardinalités, le concepteur doit se référer aux résultats de l'analyse.
Exemple 3:
Pour les deux cas suivants, on peut affirmer qu'une commande est toujours passée par au moins
un client. Une commande est également passée au maximum par un client. Une commande est
donc toujours passée par un et un seul client.
Les deux modélisations sont bien sûr correctes. Le choix dépend uniquement du résultat de l'analyse.
Imaginez que vous avez fait pendant l'analyse une interview avec un futur utilisateur du système. Il vous a dit
qu'il veut enregistrer dans son système des clients potentiels, c.à.d. des personnes dont la compagnie dispose
des données personnelles, mais qui n'ont encore jamais passé de commande auprès de la compagnie. La
compagnie désire enregistrer les données de ces personnes afin de leur envoyer de temps en temps des
publicités. Dans ce cas vous devez opter pour la deuxième modélisation.
Exemple 4:
On dit que Client est l'entité indépendante par rapport à la association disposer (cardinalité minimale = 0) ,
tandis que Carte_membre est l'entité dépendante par rapport à la association disposer (cardinalité minimale
= 1).
Une occurrence d'un client peut donc très bien exister sans carte de membre, mais une carte de membre ne
peut jamais exister sans client. La cardinalité minimale nous indique donc si une entité est indépendante
ou dépendante.
On dit qu'une entité est indépendante par rapport à une association lorsque sa cardinalité
minimale vaut 0, et dépendante par rapport à une association lorsque sa cardinalité minimale vaut 1.
Une association ne peut pas être liée uniquement à des entités dépendantes ayant en plus une
cardinalité maximale de 1 ! ! !
Dans ce cas, il faut réunir les propriétés des deux entités dans une seule.
Exemple:
Exercice
Pourquoi est-ce qu’on ne peut pas associer la propriété Année à une des entités ?
Attention: Cette propriété peut même devenir une partie de l'identifiant. Dans ce cas, elle doit
être soulignée.
Exemple:
Comme un professeur peut avoir la même classe pendant plusieurs années ([Link]. Jos Weber 12CG2), un
identifiant composé de No_Matricule et Code_Classe n'est pas suffisant, puisqu’il ne garantit pas l’unicité.
On y ajoute l'Année.
Attention: Une association à cardinalité (1,1) n'est jamais porteuse de propriétés. Dans ce cas,
les propriétés migrent dans l'entité portant cette cardinalité (1,1).
Exemple:
Cette modélisation n'est pas correcte ! Chaque facture ne possède qu'une et une seule date d'émission, ce qui
fait que la propriété Date_émission doit migrer dans l'entité Facture.
PARTIE 1
La société "KaafKaaf" désire informatiser son système de facturation. Les factures devraient se présenter de
la façon suivante:
Créez un MCD, qui permet de modéliser correctement le système d'information nécessaire, sachant que:
Un client peut bien sûr recevoir plusieurs factures, mais il est uniquement considéré comme tel à partir du
moment où il reçoit sa première facture.
Une facture concerne un et un seul client.
Remarque:
Bien que le numéro du client n'apparaisse pas en tant que tel sur la facture, il est préférable d'ajouter cette
propriété artificielle à l'entité Client, et de la définir comme identifiant de cette entité. Cela nous empêche de
devoir définir un identifiant composé de trop de propriétés.
PARTIE 2
Le responsable de la facturation de la société désire rendre les factures plus informatives. Comme un client
peut acheter plusieurs articles différents en même temps, la facture devrait indiquer pour chaque article le
numéro , un libellé, le prix unitaire, la quantité vendue et le prix total pour ce type d'article.
Remarques:
L'entité Facture ne contient plus la propriété Montant. Il existe une règle générale de conception qui dit:
Aucune propriété qui peut être calculée à partir d'autres propriétés existantes, ne devra
être stockée dans le MCD.
Pour la même raison, on n'a pas besoin de modéliser explicitement le prix à payer pour l'achat d'une
quantité d'articles donnés. Le prix pour chaque article figurant sur la facture peut être calculé à partir du
prix unitaire et de la quantité
Nous retrouvons ici le cas d'une association qui a une propriété. En fait, la propriété Quantité n'est pas
spécifique à un article, mais à l'achat de cet article à l'aide d'une facture. Cette façon de modéliser la
situation est la plus facile, mais il existe une alternative. On peut introduire l'entité abstraite
Ligne_de_facture, qui représente une ligne de détail d'une facture, [Link] celle pour le marteau.
PARTIE 1
Dans une école, on veut informatiser le système d'information qui gère les classes.
PARTIE 2
Il s'agit maintenant de concevoir une extension au MCD précédent qui permet de représenter la situation
suivante:
La direction de l'école désire également saisir tous les professeurs dans le système d'information. Un
professeur est caractérisé par un code interne unique ([Link]. Jemp Muller aura le code JEMU), son nom et
prénom et la matière qu'il enseigne. Nous supposons que chaque professeur enseigne une seule matière.
Modélisez le fait que chaque classe est enseignée chaque année par un ou plusieurs enseignants. Un
enseignant peut bien sûr donner des cours dans plusieurs classes, mais peut également ne pas donner des
cours pendant une ou plusieurs années.
Lors de l’introduction des associations nous avons déjà mentionné la notion de association ternaire. Une
association ternaire est une association à laquelle sont liée 3 entités.
Bien que dans la pratique la plupart des associations soient binaires (2 entités) il existe cependant des
situations où l’utilisation d’une association ternaire s’impose.
Exemple :
Exercice
Essayez de montrer les limites/défauts d’un MCD qui représente l’énoncé de l’exemple précédent en utilisant
uniquement des associations binaires.
On peut dire que chaque occurrence de la association enseigner associe un professeur à une matière et une
classe pour une année donnée. Ou encore, ce modèle nous permet de montrer pour chaque année scolaire
quelle matière est enseignée dans quelle classe par quel professseur.
Il n’est pas toujours facile de déterminer quand il faut utiliser une association ternaire. Généralement, on peut
déjà affirmer que si une ou plusieurs des entités liées à une association ternaire possèdent une cardinalité
maximale de 1, la modélisation n’est pas optimisée dans le sens qu’il faudrait mieux décomposer la
association ternaire, c.à.d. la représenter par 2 associations binaires.
Exemple :
La direction d’une chaîne d’hôtels désire gérer les séjours des clients dans les différents hôtels. Comme on
peut effectivement dire "Un client effectue un séjour dans un hôtel" on est ammené à proposer la modélisation
suivante.
Hors, cette modélisation porte une contrainte supplémentaire, puisque la cardinalité 1,1 entre l'entité Séjour et
la association nous indique que pour chaque occurrence de Séjour il ne peut exister qu'une et une seule
occurrence de la association. Donc chaque séjour est associé une et une seule fois à une combinaison
client/hôtel. Dans ce cas il vaut mieux décomposer l’association ternaire de la façon suivante:
Quand on détermine entre une association et une entité une cardinalité qui présente les valeurs 0,1
ou 1,1, alors cette association est particulière et on dit qu'elle représente une Contrainte d'Intégrité
Fonctionnelle (CIF).
Exemple:
Une CIF indique que l'une des entités est totalement déterminée par la connaissance de l'autre. Dans notre
exemple on peut dire que connaissant une facture bien précise, on connaît avec certitude le client
correspondant.
Une CIF est représentée par une flèche sur la patte opposée à celle ayant une cardinalité 0,1 ou 1,1. L'entité
qui est attachée à cette patte est appelée entité cible de la CIF, tandis que l'autre entité constitue l'entité
émettrice de la CIF.
3.3.10 Exercices
Exercice 1
Voici le résultat simplifié d'une analyse faite auprès d'une compagnie d'assurance qui désire informatiser la
gestion des contrats auto.
Un client peut assurer plusieurs voitures auprès de la compagnie. Chaque voiture est assurée par un seul
contrat. Un contrat assure une seule voiture.
En ce qui concerne un client, la compagnie désire connaître son nom, prénom, adresse complète, numéro
de téléphone ainsi qu'un numéro de compte bancaire avec indication de la banque.
Chaque contrat contient un numéro de contrat unique, la prime annuelle à payer, la date de paiement
annuel, la marque de la voiture, le modèle de la voiture, le numéro d'immatriculation de la voiture, la
valeur de la voiture et la date d'acquisition de la voiture.
En ignorant la méthode de modélisation, on pourrait créer une BD avec une seule table ayant un champ pour
chaque donnée indiquée dans l'analyse. On aurait donc les données des clients et des contrats dans une seule
table. Quelles en seraient les inconvénients ?
Exercice 2
Le responsable d'un magasin de location de cassettes vidéo désire informatiser le système de gestion des
locations. Voici les informations recueillies pendant l'analyse:
Un membre est caractérisé par son numéro membre, son nom, son prénom, son adresse ainsi que sa date de
naissance. Dès que la carte de membre est payée (paiement unique), le membre est enregistré dans le
système et il peut désormais louer des cassettes vidéo.
Un film est caractérisé par un numéro film, un titre, un code langue, un code genre et une durée. Le même
film peut être disponible en plusieurs exemplaires. Un exemplaire est déterminé par un numéro exemplaire
ainsi que la date d'achat de l'exemplaire.
Lors d'une location, un membre peut louer plusieurs films en même temps. En principe, une location a une
durée d'un jour, mais cette durée peut être prolongée. Nous supposons qu'un membre rend tous les
exemplaires loués en une seule fois.
Exercice 3
Afin d'informatiser la gestion des séances du cinéma Limelight, vous disposez des informations suivantes.
Un film est enregistré dans le système d'information dès que la (les) copie(s) sont arrivées au cinéma. A
partir de ce moment, on commence à programmer des séances pour le film en question. Comme le même
film n'est jamais joué dans deux séances parallèles, on peut ignorer la gestion des copies.
Un film est représenté par un numéro courant interne, qui lui est affecté par le gestionnaire des séances.
En plus, on s'intéresse pour le titre, la langue et la durée du film. Lorsqu'un film apparaît en plusieurs
langues différentes, on crée dans le système d'information simplement un enregistrement par langue.
Chaque film est accompagné en général d'une fiche technique, qui renseigne en outre sur le système son
du film ([Link]. DOLBY, THX etc.). Cette information est importante, puisque les capacités en ce qui
concerne la reproduction du son varient d'une salle dans une autre. Une salle peut supporter plusieurs
systèmes différents, tandis qu'un film est tourné en utilisant un seul système son. Un système son est
caractérisé par un code identificateur ainsi qu'un libellé.
Le cinéma dispose actuellement de 12 salles, avec 3 nouvelles salles en construction. Une salle est prise
en compte dans le système d'information, dès qu'elle est prête pour accueillir des séances. Une salle est
caractérisée par son numéro, sa capacité ainsi que des informations concernant le support des différents
systèmes son.
Le système d'information doit permettre de vendre des tickets pour une séance donnée, même plusieurs
jours en avance. La réservation des sièges n'étant pas demandée, il est toutefois nécessaire que le système
soit capable de prévenir un excès de la capacité d'une salle en ce qui concerne le nombre de tickets
vendus.
La gestion des prix pour les tickets se fait au niveau des séances, puisque le prix pour voir un même film
peut varier d'une séance à une autre ([Link]. Tarif réduit les lundis à 16h00).
Une séance, qui se déroule évidemment dans une seule salle, est identifiée par un numéro courant.
Exercice 4
Un club de vente de livres par correspondance propose à ses membres l'achat d'un ou de plusieurs livres via
des bons de commandes. Pour cela, des bons de commandes ainsi qu'un catalogue sont envoyés à tous les
membres deux fois par an.
Le responsable du club désire informatiser la gestion des commandes de livres. Voici à titre d'exemple un bon
de commande:
Votre commande :
Indiquez s.v.p. pour chaque livre le numéro ISBN et le titre (voir catalogue).
Cher membre
Les livres commandés vous seront envoyés le plus vite possible. Une facture vous parviendra après livraison
complète.
Au moment où un membre retourne un bon de commande, une nouvelle commande est créée dans le
système. Une commande est identifiée par un numéro de commande et caractérisée en plus par une date
de commande. Les livres disponibles de la commande sont envoyés tout de suite au membre.
Pour devenir membre du club, il suffit d'effectuer une fois une commande via des bons de commandes
légèrement modifiés ([Link]. pas de numéro de membre), et d'indiquer les coordonnées personnelles.
Tous les livres présents dans le catalogue sont également stockés dans le système. Un livre est identifié
par son numéro ISBN et caractérisé en plus par un titre, un genre ([Link]. ROMAN, HISTOIRE,
BIOGRAPHIE, TECHNIQUE ...), une langue ([Link]. ALL, FRA ...), le nom de l'auteur, le prix de vente et
le nombre d'exemplaires disponibles en stock.
Une facture est identifiée par un numéro de facture et caractérisée en plus par une date de facture.
Afin de garantir qu'une facture n'est créée et envoyée au membre qui a effectué la commande
correspondante qu'au moment où tous les livres de la commande ont été livrés, le système doit être
capable de vous informer quels livres de la commande ont déjà été envoyés au membre et quels livres
n'ont pas encore été envoyés au membre ([Link]. livre non disponible en stock au moment de la réception de
la commande).
A chaque commande est affectée un seul employé. Un employé est identifié par un code employé ([Link].
WEBJO = Weber Jos). Le responsable du club de vente veut également savoir quel employé (Nom &
Prénom) traite quelle commande. Nous supposons que chaque employé a déjà traité des commandes.
De temps en temps, le responsable de la facturation désire avoir un relevé des factures non encore payées.
Exercice 5
PARTIE 1
Voici le résultat de l'analyse préliminaire menée auprès des responsables de la brigade ([Link]. le commandant,
le sous-commandant …)
Travail à réaliser:
PARTIE 2
Le commandant vous demande de représenter également l'utilisation des véhicules de la brigade. Lors d'une
intervention, les sapeurs-pompiers sont affectés aux différents véhicules selon les circonstances. Jusqu'à
présent, le commandant a rempli une fiche pour chaque intervention (Exemple: voir page suivante)
Travail à réaliser:
Véhicule Sapeur
Exercice 6
Il s'agit d'informatiser la gestion des séjours des patients d'un hôpital, ainsi que la gestion des interventions
effectuées par les médecins. Jusqu'à présent, cette gestion s'est effectuée à l'aide des fiches suivantes.
PATIENT SEJOUR
No Matricule: No Séjour:
Nom: Date Arrivée:
Prénom: Date Départ:
Adresse: Frais à charge du patient:
Code Postal: No Chambre:
Localité: Etage:
Caisse de maladie: Classe:
INTERVENTION(S):
Code Description: Date: Code Médecin: Nom: Prénom:
intervention:
Nous supposons qu'un patient occupe la même chambre pendant toute la durée de son séjour.
A part des informations concernant les médecins, qui se trouvent déjà sur les fiches, on désire stocker
dans le système d'information le numéro de téléphone et la spécialité de chaque médecin.
Les interventions sont identifiées par un code et une description. L'hôpital dispose d'une liste
d'interventions prédéfinies. ([Link]. 0236 Tomographie du crâne)
Une personne qui habite dans une maison n'est pas toujours propriétaire de cette maison, tandis que le
propriétaire d'une maison ne doit pas nécessairement habiter dans celle-ci. Il incombe donc de représenter le
fait de posséder une maison par une association séparée et le fait d'habiter dans une maison par une
association séparée.
Une association réflexive est une association dont les deux pattes sont liées à une même entité. En
général, la signification des pattes d'une association réflexive devrait être clarifiée par l'indication d'un rôle.
Nous avons donc:
Exemple 2:
Afin d'obtenir une licence pour piloter un avion de ligne, un pilote doit effectuer un certain nombre de
brevets. Il existe une hiérarchie prédéfinie en ce qui concerne les brevets (structure arborescente). A chaque
fois qu'un pilote a réussi un brevet, il a la possibilité d'effectuer un certain nombre d'autres brevets, qui sont
dépendants du brevet réussi. Tous les brevets sont dépendants du brevet de base.
Exemple:
[Link] Historisation
Pour certaines propriétés, entités ou associations, on désire parfois conserver les valeurs antérieures en cas de
modification. On parle dans ce contexte d'historisation. Théoriquement, cette idée n'est pas tout à fait en
accord avec les règles de conception d'un système d'information. Prenons l'exemple suivant:
Pour une occurrence de cette entité, c.à.d. pour un assuré spécifique, il existe uniquement une seule valeur
pour chaque propriété. Selon cette modélisation, un assuré ne peut par exemple pas habiter en même temps
dans deux localités différentes. En général, ceci ne pose aucun problème, comme un assuré indique
normalement une seule adresse de référence.
Toutefois, cette modélisation ne permet pas de représenter le tracé historique des adresses, lorsqu'un assuré
déménage une ou plusieurs fois. Dans la plupart des cas, cette modélisation de l'historique n'est pas demandée,
mais elle est quand même réalisable à l'aide de la méthode Merise. Au niveau conceptuel, nous indiquons
simplement ce que nous voulons historiser.
Nous distinguons 3 cas:
1. Propriété historisée
La conservation des valeurs historiques s'applique à une ou plusieurs propriétés d'une entité ou d'une
association. Dans le MCD, on indique une historisation de propriété par la lettre (H) derrière la resp. les
propriétés concernées.
Exemple:
2. Entité historisée
La conservation des valeurs s'applique à toutes les propriétés d'une l'entité. On indique l'historisation par
la lettre (H) derrière le nom de l'entité.
Exemple:
3. Association historisée
La conservation des valeurs s'applique à toutes les propriétés d'une association. On indique l'historisation
par la lettre (H) derrière le nom de la association.
Exemple:
On ne peut pas historiser une association sans propriétés, puisque l'expression 'historiser une association'
n'est qu'un abus de langage, il s'agit en fait d'historiser toutes les propriétés d'une association. On peut
remarquer à ce moment que la méthode MERISE présente une particularité en ce qu'elle ne prévoit pas
l'historisation d'une propriété individuelle d'une association
3.3.12 Exercices
Exercice 1
Un club de tennis vous demande d'informatiser la gestion des réservations des différents terrains. A ces fins,
vous disposez des informations suivantes.
Le club dispose d'une liste de membres. Quiconque veut jouer sur un des terrains, doit devenir membre du
club.
Un membre est caractérisé par un numéro interne au club, par son nom, prénom, adresse, code postal,
localité, numéro de téléphone ainsi qu'une indication s'il est un joueur licencié auprès de la fédération de
tennis ou non.
Pour chaque réservation, on désire connaître l'identité des deux joueurs membres. Au cas où quatre
joueurs réserveraient un terrain, uniquement deux joueurs sont enregistrés dans le système.
Le club dispose de plusieurs terrains, dont certains sont couverts. On distingue en plus le type du terrain
selon la nature du sol ([Link]. Sable, Herbe etc.)
Une réservation se fait pour une date précise par tranches d'une heure.
Exercice 2
Une société aérienne utilise à présent les fiches suivantes pour la gestion des ressources.
Avion
No Marque Type Portée (km) Capacité Passagers
23 Boeing 737-400 3810 147
Commandant
No Nom Prénom Date de naissance Brevet
726 Weber Jos 13/06/65 PP-IFR/EP/DA
Co-pilote
No Nom Prénom Date de naissance Brevet
813 Meier Emil 23/04/73 PP-IFR
Personnel de cabine
No Nom Prénom
1072 Feller Nathalie
1014 Pinto Tania
1103 Weis Laurent
Sachant que la société entretient déjà une BD avec tous les pilotes et qu'un pilote peut être commandant d'un
vol et co-pilote d'un autre vol, proposez un MCD, qui permet l'informatisation de la gestion des ressources.
Exercice 3
Un nouveau parc de vacances va prochainement ouvrir ses portes au Luxembourg. Dans ce parc, les visiteurs
sont logés dans des bungalows. Vous êtes chargé de l'implémentation d'un système informatisé pour gérer les
réservations des bungalows.
Après plusieurs réunions avec les responsables de la gestion du parc, vous avez collectionné les informations
suivantes.
Le parc est subdivisé en plusieurs zones, dont chacune contient environ 40 – 50 bungalows. Chaque zone
dispose de ses propres magasins, restaurants, piscines etc. .
Pour l'ouverture du parc, les zones suivantes sont prêtes à accueillir des visiteurs.
Les bungalows sont parfaitement intégrés dans l'atmosphère correspondante de leur zone.
Chaque bungalow du parc appartient à une des catégories suivantes, de façon indépendante à sa situation
(zone).
Afin de faciliter la gestion des bungalows, le responsable du service Comptabilité vous demande de
prévoir uniquement des nombres avec 2 positions pour numéroter les bungalows.
Les clients peuvent effectuer des réservations. Une réservation concerne un seul bungalow. Suite à une
réservation, une fiche de réservation est immédiatement envoyée au client. Deux semaines avant la date
d'arrivée au parc, une facture correspondante est envoyée au client. Cette facture doit être réglée avant
l'arrivée au parc. Le responsable de la facturation veut évidemment garder trace des informations
contenues sur les factures. Le responsable de la réception désire voir dans le système si une facture
correspondant à une réservation a déjà été payée ou non.
Lors de la réservation d'un bungalow, le client a le choix entre les suppléments suivants.
Fiche de réservation
Client Réservation
Numéro: 340 No: 589
Nom: Weber Date d'arrivée: 03/09/98
Prénom: Jos Date de départ: 07/09/98
Adresse: 23, rue Principale Nombre de personnes: 4
Code postal: L-8765 Bungalow
Localité: Grevenmacher Zone: Liliput
Pays: Luxembourg Numéro: 19
Catégorie: Bain et douche / WC sép. / TV /
No. Passeport: 87699
Terrasse
No. Téléphone: (Lux)+348845 Capacité: 5
Suppléments
Code supplément Description
01 Literie
03 Livraison à domicile du quotidien
Une facture vous sera envoyée environ 2 semaines avant votre arrivée au parc. Cette facture est à
régler avant l'arrivée au parc. Nous vous souhaitons un beau séjour au parc Wonderland. Si vous
avez encore des questions, n'hésitez pas à nous contacter.
Arsène Lupin
RESERVATION MANAGER
Une facture reprend exactement les mêmes informations, avec en plus la date d'envoi de la facture et le
prix total à payer.
Afin d'établir des statistiques, la direction du parc est intéressée de sauvegarder dans le système
l'évolution des prix par nuit pour les différentes catégories de bungalows.
Un client est uniquement considéré comme tel à partir de la première fois qu'il effectue une réservation.
Jusqu'à présent nous avons établi des MCD basés sur une analyse d'un domaine bien défini ([Link]. Gestion des
séances d'un cinéma, Gestion des séjours des patients d'un hôpital etc.). La finalité d'un MCD est de nous
faciliter la création d'une base de données pour gérer un tel domaine.
Nous savons également qu'une base de données est constituée par un ensemble de tables, dont chacune est
composée de champs de données.
Hors le MCD ne connaît pas la notion de table, tandis qu'une base de données ne connaît pas le concept des
entités reliées entre elles via des associations portant des cardinalités.
Pour cela, il existe un autre modèle, le modèle logique des données (MLD), qui utilise essentiellement le
formalisme des tables logiques. Un MLD, qui est toujours basé sur un MCD donné, contient donc toutes les
informations de ce MCD, mais les représente à l'aide d'un formalisme différent qui est très adapté aux
structures d'une base de données.
Tandis que le MCD représente un système d'information d'une façon générale et indépendante d'un système
informatique, le MLD tient compte de la réalisation par le biais d'un SGBD.
Un MLD est essentiellement composé de tables logiques reliées entre elles par des flèches.
MCD
MLD
Exercice
2. Comment est-ce qu'on traduit une propriété d'une entité du MCD dans le MLD ?
3. Comment est-ce qu'on traduit un identifiant d'une entité du MCD dans le MLD ?
4. Comment est-ce qu'on traduit l’association Ecrire avec ses cardinalités du MCD dans le MLD ?
5. Le MCD nous dit que chaque livre est uniquement écrit par un seul auteur (cardinalité max.), tandis qu'un
auteur peut écrire plusieurs livres. Comment est-ce qu'on peut retrouver ces informations dans le MLD ?
Remarque:
La méthode MERISE définit de façon générale certaines règles qui nous permettront de transformer n'importe
quel MCD en MLD.
Nous allons définir les règles de transformation pour le passage du MCD au MLD, en respectant les différents
cas qui se posent.
Règle : Toute entité est transformée en table. Les propriétés de l'entité deviennent les attributs de la
table. L'identifiant de l'entité devient la clé primaire de la table.
Exemple:
Lettres
Entité "Entreprise" Table "Entreprise"
majuscules
Règle : Afin de représenter l’association, on duplique la clé primaire de la table basée sur l'entité à
cardinalité (x,n) dans la table basée sur l'entité à cardinalité (x,1). Cet attribut est appelé clé étrangère.
Les deux tables sont liées par une flèche nommée selon l’association, qui pointe de la table à clé
étrangère vers la table qui contient la clé primaire correspondante.
Exemple:
L'attribut No_Auteur qui est clé primaire de la table Auteur, devient clé étrangère dans la table Livre.
1
x peut prendre les valeurs 0 ou 1
Nous devons distinguer plusieurs cas. Sachant qu'une association binaire du type (1,1)-(1,1) ne doit pas
exister il nous reste les 2 cas suivants:
Règle : On duplique la clé de la table basée sur l'entité à cardinalité (0,1) dans la table basée sur l'entité
à cardinalité (1,1).
Exemple:
Le No_Client, qui est clé primaire de la table Client, devient clé étrangère dans la table Carte_Membre.
Règle : On duplique la clé d'une des tables dans l'autre. Lorsque l’association contient elle-même des
propriétés, celles-ci deviennent également attributs de la table dans laquelle a été ajoutée la clé
étrangère.
Exemple:
ou
Soit on migre la clé primaire de la table Entreprise dans la table Salarié, soit on fait l'inverse.
Règle : On crée une table supplémentaire ayant comme clé primaire une clé composée des clés
primaires des 2 tables. Lorsque l’association contient elle-même des propriétés, celles-ci deviennent
attributs de la table supplémentaire. Une propriété de l’association qui est soulignée devra appartenir à
la clé primaire composée de la table supplémentaire.
Exemple:
On crée une table Porter, qui contient comme clé primaire une clé composée de No-Commande et
Code_Article. Elle contient également la propriété Quantité issue de l’association Porter.
Règle : On crée une table supplémentaire ayant comme clé primaire une clé composée des clés
primaires de toutes les tables reliées. Cette règle s'applique de façon indépendante des différentes
cardinalités. Lorsque l’association contient elle-même des propriétés, celles-ci deviennent attributs de la
table supplémentaire. Une propriété de l’association qui est soulignée devra appartenir à la clé
primaire composée de la table supplémentaire.
Exemple:
Exemple:
L’association habiter du type (x,n)-(x,1), est traduite par la migration de l'attribut Adresse dans la table
Personne. L’association posséder du type (x,n)-(x,n) est traduite par la création d'une table supplémentaire du
même nom. Cette table contient comme clé primaire composée, les clés des deux tables reliées Personne et
Maison. On a donc simplement appliqué 2 fois de façon indépendante les règles de transfert MCD MLD.
Règle : Nous appliquons les règles générales avec la seule différence que l’association est 2 fois reliée à
la même entité
Exemple 1:
Comme il s'agit d'une association (x,n)-(x,n), une table supplémentaire est créée. Cette table contient comme
clé primaire composée, la clé des "deux" entités reliées. Comme la même entité est liée 2 fois à l’association,
on ne peut pas utiliser 2 fois le même nom pour la clé. Dans ce cas il convient d'utiliser des rôles dans le
MCD, et d'intégrer le rôle dans le nom d'une des clés migrées dans le MLD.
Exemple 2:
Comme il s'agit d'une association (0,1)-(0,1), nous avons en général le choix en ce qui concerne quelle entité
contiendra la clé étrangère. Comme cette association est liée deux fois à la même entité, il est évident que
nous devons dupliquer la clé primaire, tout en veillant que le même nom de clé ne sera pas utilisé pour la clé
primaire et la clé étrangère. Dans notre exemple, tous les hommes mariés, ont comme valeur de la clé
étrangère la matricule de leur épouse actuelle. Pour les hommes non mariés et les femmes, la clé étrangère est
sans valeur. On pourrait bien sûr utiliser la modélisation inverse avec une clé étrangère
NO_MATRICULE_MARI, qui indique pour chaque femme mariée, la matricule de son mari.
Règle : Sachant que l'entité dépendante est toujours liée à l’association par les cardinalités (1,1), nous
pouvons appliquer les règles générales. Dans chaque cas, la table issue de l'entité dépendante contient
donc comme clé étrangère, la clé primaire de l'autre table.
L'identification relative est représentée par le fait que la table issue de l'entité dépendante contient une
clé primaire composée, constituée de la clé primaire transformée de l'identifiant de cette entité et de la
clé étrangère.
Exemple:
Tout en respectant les règles générales du passage MCDMLD, la clé primaire de la table Projet migre
comme clé étrangère dans la table Tâche. L'identification relative est représentée par le fait que la table tâche
contient une clé primaire composée de No_Tache et No_Projet.
Règle : Pour chaque attribut à historiser, on crée une table qui contient:
Une clé primaire composée de la clé primaire de la table qui contient l’attribut à historiser et de la
date d'historisation.
L’attribut à historiser
Exemple:
Règle : Pour toute modification de valeur d'un des attributs de l'entité, on historise l'ensemble des
valeurs des attributs dans une table qui contient:
Une clé primaire composée de la clé primaire de l'entité à historiser et de la date d'historisation
Tous les autres attributs de l'entité à historiser
Exemple:
Pour toute modification de valeur d'une des propriétés de la association, on historise l'ensemble
des valeurs des propriétés dans une table qui contient:
Une clé primaire composée de la clé primaire de la table qui représente la association à historiser et
de la date d'historisation
Toutes les autres propriétés de la association à historiser
Exemple:
Transformez le MCD suivant, qui représente la facturation de la société "KaafKaaf" (voir chapitre 3.3.6
Exemple "KaafKaaf"), en un MLD en respectant toutes les règles du passage MCD MLD.
3.4.4 Exercices
Exercice 1
Transformez les MCD que vous avez réalisés pour les exercices 1 à 6 du chapitre 3.3.10 et les exercices 1 à 3
du chapitre 3.3.12 en MLD.
Exercice 2
Transformez le MCD suivant en MLD en respectant toutes les règles de passage MCDMLD.
Remarques:
En ce qui concerne le rapport médical, une conclusion médicale pourrait par exemple être "Infection" ou
"Cancer de la gorge", tandis que la conclusion professionnelle qui s'en suit serait par exemple "Apte" ou
"Inaptitude temporaire <x> jours".
L'entité Salarié est historisée.
Exercice 3
Voici un MCD qui représente de façon très simplifiée la gestion d'une compagnie d'assurances. Transformez
le MCD en MLD en respectant toutes les règles de passage MCDMLD.
Remarques:
Le modèle physique des données (MPD) est la traduction du modèle logique des données (MLD) dans une
structure de données spécifique au système de gestion de bases de données (SGBD) utilisé.
Le MPD est donc représenté par des tables définies au niveau du système de gestion de bases de données.
C'est donc au niveau du MPD que nous quittons la méthode générale de création d'un MCD et de sa
transformation en MLD, pour nous tourner vers la manipulation d'un SGBD spécifique.
Pour ce faire, la plupart des SGBD actuellement sur le marché nous offrent 2 possibilités.
1. Utilisation d'une ou de plusieurs interfaces graphiques, qui nous aident dans la création des tables
physiques, dans la définition des clés primaires et dans la définition des associations.
Exemple:
Définition de la table des employés avec le champ idEmployé étant défini comme clé primaire.
Remarquez que les noms des différents champs ont été modifiés lors de l'implémentation du modèle
logique. Cette mesure dépend uniquement de la convention des noms utilisée et n'affecte pas du tout le
fonctionnement correcte de la BD.
2. Utilisation de commandes spéciales, faisant partie d'un langage de définition de données ([Link].
SQL-DDL)
Exemple:
REM -----------------------------------------------------------------------------
REM Génération d'une base de données
REM SQL Générique (SQL 2)
REM (6/9/1998 [Link])
REM -----------------------------------------------------------------------------
REM Nom de la base : Entreprises
REM Projet :
REM Auteur : Pierre Stockreiser
REM Date de dernière modification : 6/9/1998 [Link]
REM -----------------------------------------------------------------------------
REM -----------------------------------------------------------------------------
REM TABLE : tblEntreprises
REM -----------------------------------------------------------------------------
REM -----------------------------------------------------------------------------
REM INDEX DE LA TABLE tblEntreprises
-REM -----------------------------------------------------------------------------
REM -----------------------------------------------------------------------------
REM TABLE : tblEmployes
REM -----------------------------------------------------------------------------
REM -----------------------------------------------------------------------------
REM INDEX DE LA TABLE tblEmployes
REM -----------------------------------------------------------------------------
REM -----------------------------------------------------------------------------
REM CREATION DES REFERENCES DE TABLE
REM -----------------------------------------------------------------------------
REM -----------------------------------------------------------------------------
Que vous avez utilisé l'une ou l'autre des 2 méthodes, le résultat sera toujours un ensemble de tables
physiques reliées entre elles, dans lesquelles vous pouvez stocker des données.
Une modélisation correcte et cohérente est sans doute une condition nécessaire pour créer une BD
fonctionnelle, mais ne vaut pas grand chose, lorsque le SGBD utilisé pour implémenter la base, ne garantit pas
l'intégrité de celle-ci lors du travail journalier avec les données.
Exemples:
Le système doit empêcher un utilisateur à entrer une valeur double ou indéterminée (NULL) pour un
champ déclaré comme clé primaire.
Le système doit vérifier qu'une quantité livrée est toujours inférieure ou égale à une quantité commandée.
Cette contrainte vérifie qu'il n'existe jamais des doublons ou des valeurs indéterminées pour le(s) champ(s)
qui constitue(nt) la clé primaire. La clé primaire doit donc toujours être unique et bien définie.
A. L'ajout d'une valeur de clé primaire qui existe déjà dans la table.
B. La modification d'une valeur de clé primaire vers une valeur qui existe déjà dans la table.
C. L'ajout d'une valeur indéterminée pour une clé primaire.
D. La modification d'une valeur de clé primaire vers une valeur indéterminée.
Dans un SGBD il suffit généralement de déclarer un ou plusieurs champs comme clé primaire d'une table pour
que cette contrainte soit automatiquement vérifiée pour chaque insertion ou modification d'une valeur dans la
table.
Par contrainte d'intégrité référentielle, on entend l'obligation qu'à chaque valeur d'une clé étrangère
correspond une et une seule valeur de la clé primaire associée. Cette obligation doit toujours être vérifiée lors
de l'ajout, de la suppression ou de la modification de données.
A. L'ajout d'une clé étrangère pour laquelle il n'existe pas de valeur correspondante dans la clé primaire
associée.
B. La modification d'une clé étrangère vers une valeur pour laquelle il n'existe pas de valeur correspondante
dans la clé primaire associée.
C. La suppression d'une clé primaire, qui est référencée par une ou plusieurs valeurs d'une clé étrangère.
D. La modification d'une clé primaire, qui est référencée par une ou plusieurs valeurs d'une clé étrangère.
I. Interdiction des opérations du type A, B, C et D. Bien que cette possibilité soit très efficace, il existe
parfois une alternative préférable en fonction de la nature des données.
Remarque:
Tandis que les opérations A et B ne sont jamais permises lorsque l'intégrité référentielle est appliquée,
il n'en est pas de même pour les opérations C et D. Le langage SQL par exemple contient une
commande CREATE TABLE qui permet de définir la structure d'une table. Cette commande contient
entre autres les options ON DELETE NO ACTION et ON UPDATE NO ACTION qui permettent de
réaliser explicitement l'interdiction des opérations C et D.
II. Cascade des opérations du type C et D vers les clés étrangères correspondantes. Une modification
d'une clé primaire aurait comme conséquence la modification de toutes les clés étrangères
correspondantes. Une suppression d'une clé primaire aurait comme conséquence la suppression
automatique de tous les enregistrements dont la clé étrangère a la même valeur. Cette option est à
utiliser avec précaution !!!
Remarque: En SQL la commande CREATE TABLE nous offre les options ON DELETE CASCADE
et ON UPDATE CASCADE.
III. Affectation d'une valeur par défaut aux clés étrangères concernées par une opération du type C ou
D.
IV. Affectation d'une valeur indéterminée (NULL) aux clés étrangères concernées par une opération du
type C ou D.
Une contrainte d'intégrité générale est utilisée pour limiter les valeurs possibles d'un champ quelconque d'une
table en fonction de la nature de celui-ci et de son rôle dans le système d'information.
1. A chaque champ correspond un type de données, une longueur et un format bien définis.
Exemples: Le numéro client doit être une valeur numérique.
Le nom du client ne doit pas dépasser 25 caractères.
Un numéro de compte doit respecter le format X-XXX/XX-X
2. Un champ peut avoir un domaine de valeurs prédéfini (une plage de valeurs possibles) et/ou une valeur
par défaut.
Exemples: Une note d'un devoir en classe doit être entre 0 et 60
La prix d'une facture ne doit pas être un nombre négatif.
La date d'une commande doit automatiquement être la date actuelle à moins que l'utilisateur
n'entre une autre date.
3. La valeur d'un champ peut limiter les valeurs possibles pour un autre champ d'une table/d'une BD.
Exemple: La valeur du champ fldDatePaiement est supérieure ou égale à la valeur du champ
fldDateFacture pour une table tblFactures.
Exercice
Soit la BD suivante.
Code
L-XXXX
e) Quelle(s) contrainte(s) est(sont) concernée(s) lors de l'ajout d'un enregistrement dans la table tblConcerne
?
g) Quelle(s) contrainte(s) est(sont) concernée(s) lors de la modification du numéro d'un article dans la table
des articles?
h) Quelle(s) contrainte(s) est(sont) concernée(s) lors de la modification du numéro client d'une facture ?
4.1 Définition
Il existe actuellement sur le marché une offre très diverse d'outils de modélisation. Chaque outil de
modélisation implémente une méthode de modélisation. Comme la méthode MERISE est très répandue dans
nos régions, il est évident qu'il existe un certain nombre d'outils basés sur MERISE.
En principe, les outils de modélisation sont intégrés dans des applications capables de ne supporter pas
uniquement la conception d'un système d'information (BD), mais également le développement complet de
programmes de gestion d'une certaine envergure. Ces applications, appelées "Ateliers de génie logiciel"
(angl. CASE Tool : Computer Aided Software Engineering Tool), sont généralement utilisés par les
informaticiens afin de réaliser des grands projets.
Exemples:
L'outil Win'Design constitue une mise en œuvre de la méthode MERISE. Notons que Win'Design a été utilisé
pour créer les modèles conceptuels et logiques présentés dans cet ouvrage.
L'application Designer de la société Oracle, constituant un atelier de génie logiciel très répandu, implémente
une méthode plus ou moins compatible à MERISE en ce qui concerne la modélisation des données (Entity
Associationship Modelling).
4.2 Fonctionnalités
Bien que les différents outils de modélisation, actuellement disponibles sur le marché, varient
considérablement en termes de caractéristiques et fonctionnalités, ils offrent cependant les fonctions de base
suivantes.
Représentation graphique des modèles conceptuels et logiques avec les différents objets ([Link]. entités,
associations, propriétés, identifiants, tables, attributs, clés etc.).
Vérification des règles de construction des différents modèles ([Link]. Une association ne peut pas être liée
à deux entités via des cardinalités 1,1).
Transformation automatique d'un MCD en MLD en respectant toutes les règles de transformation.
Génération automatique d'une BD à partir d'un MLD. Après avoir indiqué le SGBD cible ([Link]. Oracle,
MS-Access, Informix), le concepteur peut demander à l'outil de créer la BD. Pour ce faire, il existe deux
alternatives:
l'outil de modélisation accède directement au SGBD cible afin de créer la BD en question;
l'outil de modélisation génère un script1, qui est à la suite exécuté sur le SGBD afin de créer la BD.
Génération automatique de rapports imprimés concernant l'état actuel d'un travail de conception. Ces
rapports contiennent en général la représentation graphique des modèles, des listes avec tous les objets
des différents modèles et des explications supplémentaires concernant certains objets.
Gestion des objets de conception ([Link]. entités, associations, propriétés, identifiants, tables, attributs, clés
etc.) dans un dictionnaire2. Pour des petits projets de conception, effectués par un seul concepteur sur un
ordinateur, le dictionnaire est simplement un fichier stocké localement. Toutefois, pour les grands projets,
effectués par plusieurs concepteurs, certains outils de modélisation permettent la gestion d'un dictionnaire
sur un serveur en réseau (voir chapitre 5.5). Dans ce cas, plusieurs concepteurs peuvent travailler en
même temps sur un modèle, l'outil de modélisation veillant à chaque moment que le modèle reste
cohérent. L'intégration de plusieurs modèles en un seul modèle, et la gestion des versions d'un objet ou
d'un modèle constituent d'autres caractéristiques supportées par un tel système.
La plupart des outils de modélisation sont capables de créer un MLD et un MCD à partir d'une BD
existante. Ce procédé, connu sous le nom de "Reversement d'une BD" (angl. Database Reverse
Engineering), est souvent utilisé à la base d'un projet d'amélioration ou d'extension d'un système
d'information existant déjà sous forme informatique.
1
plusieurs commandes dans un langage supporté par le SGBD cible.
2
une sorte de récipient logique pour les objets de conception.