Vous êtes sur la page 1sur 12

Initiation la conception de bases de donnes

Initiation la conception de bases de donnes


Alassane Diakit Version beta 1.8 du 20-08-2011

http://alassane-diakite.developpez.com

Page 1 sur 12

Initiation la conception de bases de donnes

Contenu
Introduction ....................................................................................................................................................... 3 Le diagramme des flux d'informations .............................................................................................................. 3 Les traitements................................................................................................................................................... 4 Les trois niveaux dabstraction .......................................................................................................................... 5 Les donnes ....................................................................................................................................................... 6 Niveau conceptuel (domaine d'activit du SI) ............................................................................................... 6 Niveau logique (informatique) ...................................................................................................................... 6 Modle entit-association .................................................................................................................................. 7 Modle conceptuel de donnes .......................................................................................................................... 7 Modle logique de donnes ............................................................................................................................... 8 Rgles de passage du MCD au MLD ............................................................................................................ 8 Exemple du cas (1,1) et (1,n) ..................................................................................................................... 8 Exemple du cas (1,n) et (1,n) ..................................................................................................................... 8 Modle relationnel ............................................................................................................................................. 9 Schma de relation ........................................................................................................................................ 9 Normalisation .................................................................................................................................................. 10 Introduction ................................................................................................................................................. 10 La dpendance fonctionnelle (le support de la normalisation) .................................................................... 10 Les formes normales.................................................................................................................................... 10 Exemples de relations (tables) non normalises .......................................................................................... 11 Les tapes de la conception ............................................................................................................................. 11 Plus de lectures ................................................................................................................................................ 12 Remerciement .................................................................................................................................................. 12

Page 2 sur 12

Initiation la conception de bases de donnes

Introduction
La modlisation consiste reprsenter un objet ou concept du monde rel en un concept manipulable par la machine. On parle souvent d'abstraction. Il s'agit alors de reprsenter l'objet par ses proprits (ou attributs) les plus pertinentes (rpondant aux besoins exprims!). Avec ce choix, chaque exemplaire (on parle d'occurrence) de cet objet est lment d'un ensemble. Cet ensemble peut tre vu comme un tableau dont l'en-tte reprend les attributs choisis. Pour concevoir (la structure d') une base de donnes nous pouvons utiliser la mthode MERISE ou le langage UML. Dans cet article nous allons toucher quelques phases volontairement simplifies avec MERISE.

Le diagramme des flux d'informations


Il s'agit de reprsenter le schma de la circulation des donnes. Les informations sont reprsentes par des flches Les agents ou postes de traitement sont reprsente par des carrs

Son rle est de vous aider trouver les informations pertinentes modliser.
Exemple : demande de crdit dans une caisse d'pargne
g Caisse h Client a

b Comit de crdits d

Comptable

a. b. c. d. e. f. g. h.

Le client fournit les pices de dossier de demande de crdit. Le client est inform de l'tat de son prt. Le dossier accept est transmis au comptable. Le comptable transmet l'tat de la caisse et des crdits. Le comptable passe l'opration d'octroi. Le comptable consulte les tats de crdits Dpts et remboursements. Retraits.

Page 3 sur 12

Initiation la conception de bases de donnes

Les traitements
Il s'agit de faire un schma chronologique et gographique des processus de traitements vnements Un vnement est la constatation d'une nouvelle information qui conduit des oprations. Opration Une opration est une action qui s'excute sans interruption. Elle est la suite d'un vnement dont elle enregistre les traces et peut produire d'autres vnements. Synchronisation Elle dfinit la manire dans laquelle les vnements se combinent (Et, Ou) pour dclencher l'opration.
a b Evnement Synchronisation a {Et|Ou} b Opration Russite c d Echec Le processus continue Donne

Processus Un processus est un ensemble d'vnements, d'oprations et de synchronisations. Ex : processus de Attribution de numro d'ordre de visite dans une clinique.
b:Rendez-vous a:Patient se prsente c : mdecin disponible

a et (b ou c) Attribution de numro d'ordre Russite Echec d: numro d'ordre e: demande de rendez-vous

Lobjet du modle de traitement est de vous aider trouver les contraintes et les objets actifs
(dclencheurs et procdures stockes cot serveur ou routines cot client)

Page 4 sur 12

Initiation la conception de ba bases de donnes

Les trois niveaux dabstraction


Les programmes de gestion de bases de donnes (SGBD1) doivent simplifier la vision des utilisateurs (concepteur informaticien et exploitant non informaticien) en assurant une abstraction des donnes stockes sur des supports informatiques. La conception d'une base de donnes met en jeu trois niveaux d'abstractions: conceptuel, interne et externe. 'abstractions:

Le modle conceptuel est un diagramme ralis dans une notation donne (classe (classeassociation, entit-association). Il dcrit les donnes du concept tudi sans un souci association). dinformatique. Le modle logique traduit le modle conceptuel dans un modle de stockage et daccs de duit donnes. Un modle de stockage et daccs de donnes dfinie : une structure (organisation) des donnes (le nom du modle sera cette structure) des rgles dintgrit (cohrence) des donne donnes un langage de manipulation de donnes (recherche, ajout, modification et suppression) Exemples: rseau, hirarchique, relationnel. : Le modle physique est une implmentation du modle logique au moyen dun systme donn (ACCESS, SQLserver, PostgreSQL, ORACLE, MySQL) Les vues (ou modles externes) sont des sous schmas conceptuels simplifiant la structure gnrale. sous-schmas Ne touchons pas la bote noire.

Systme de Gestion de Bases de Donnes

Page 5 sur 12

Initiation la conception de bases de donnes

Les donnes
Le Systme d'Information (SI) d'une organisation est constitu par l'ensemble des lments ncessaires la gestion de cette organisation. Il s'agit : des donnes ou objets d'exploitation c'est--dire ce qu'on fait , des agents (hommes et machines), des postes (services et agences) et de rgles Pour chaque vnement (apparition, volution ou destruction d'un lment) de ce systme, une information (trace de cet vnement) est enregistre. Pour reprsenter les donnes on a recours :

Niveau conceptuel (domaine d'activit du SI)


Entit : Elle reprsente un groupe d'individus objets de mme nature. Ex : client, classe, produit Attribut ou proprit : C'est un caractristique de l'entit; ex: nom, prnom, tl... Remarque : au lieu de prendre une information calcule (on parle d'information drive) comme attribut on prendra les donnes de base du calcul. Ex : "dateNaissance" au lieu de "age". Remarque : dans la codification des attributs: viter accent, cdille et espace dans les noms d'attribut choisissez des mots parlants Chaque mot peut commencer par une majuscule. Type de donne : C'est le domaine (numrique, texte, date, heure, logique) dans lequel un attribut prend ses valeurs. Pour le cas de texte on prcise la taille (maximum de caractres) Identifiant : Est appel identifiant toute proprit (ou groupe de proprits) unique par individu dans un groupe. Ex : n matricule, NIF, n tl, n de permis

Niveau logique (informatique)


Table : L'entit prend le nom de table. Cl : Lorsqu'il y a plusieurs identifiants chacune est appele cl candidate, une d'entre elles sera prise comme cl primaire. Le concepteur choisira dlibrment un attribut numrique auto incrment. Cl trangre : C'est un attribut par lequel un objet (ligne d'une table) marque sa dpendance (liaison ou relation ou rfrence) un autre objet (ligne d'une autre ou mme table). Il faut surtout savoir que c'est une cl candidate (primaire de prfrence) d'une table qui devient cl trangre d'une autre ou mme table.

Page 6 sur 12

Initiation la conception de bases de donnes

Modle entit-association
C'est le schma de base qu'utilise MERISE pour reprsenter la structure du SI.
n,M association n,M

entit_1

entit_2

n= cardinalit minimum M= cardinalit maximum

Modle conceptuel de donnes


Il s'agit du schma dcrivant les objets (constituant le SI) et leurs relations sans se soucier des contraintes de l'informatique.
est serveur de Communiquer 0,n 0,1 est client de 0,n 1,1 appartient

PC

service

Traduisons ce schma : Un pc peut tre serveur de zro (0) pc (minimum) ou de plusieurs pc (maximum) Un pc n'est pas ncessairement client d'un autre pc (zro serveur) ou est client d'un seul pc (1 serveur) Un pc (client ou serveur) appartient un et un seul service Un service peut avoir zro ou plusieurs pc (client ou serveur)

Page 7 sur 12

Initiation la conception de bases de donnes

Modle logique de donnes


Il reprend le modle conceptuel en remplaant le nom entit par table et les associations par des cls trangres. Il est une vision que se fait l'Homme des objets dans la machine.

Rgles de passage du MCD au MLD2


(1,1) et (1,n){la cl primaire du cot (1,1) devient cl trangre du cot de (1,n)} (1,n) et (1,n){une table est cre dont la cl primaire est forme des cls primaires des deux cts (ceux-ci deviennent des cls trangres pour la table de liaison).}

Exemple du cas (1,1) et (1,n)


Le MCD Abonne Le MLD Abonne cleabonne Carte clecarte cleabonne* 1,n Prendre 1,1 Carte

Exemple du cas (1,n) et (1,n)


Le MCD Auteur 1,n participer 1,n Oeuvre

Le MLD Auteur cleauteur Participer cleauteur* cleoeuvre* Oeuvre cleoeuvre

Pour d'autres cas tels que (1,1) et (0,1), les liens la fin du document vous dirons plus.

Page 8 sur 12

Initiation la conception de bases de donnes

Modle relationnel
Le modle relationnel fait suite aux autres modles depuis 1970. Il corrige des lacunes telles la redondance, indpendance entre donnes et application Le modle a t cr par un mathmaticien informaticien de ce fait il repose sur des fondements mathmatiques.

Relation :
En mathmatiques une relation est un ensemble rsultant du produit cartsien de deux ou plusieurs ensembles. Exemple Considrons dans une entreprise : lensemble des numros dimmatriculation des vhicules vehicule(V001, V002, V003) les numro matricule des chauffeurs chauffeur(CH001, CH002, CH003, CH004) les jours ouvrs de la semaine jour(lundi, mardi, mercredi, jeudi, vendredi) Nous pouvons crer la relation mission comme suite : mission En-tte, schma ou intension chauffeur vehicule jour CH001 V002 lundi CH001 V001 vendredi Corps ou extension CH002 V002 mardi Tuple, ligne ou enregistrement

Schma de relation
Il prsente une entit par son nom accompagn de ses attributs sous la forme. nom_entit(attribut1, attribut2...). Nous pouvons souligner la cl primaire et ajouter (*) aux cls trangres. Exemple rcapitulatif : gestion d'une facturation simple. client(idclient, nomclient, prenomclient, telclient, addresseclient) facture(idfacture, idclient*, numeroOrdrefacture, montantfacture, objetfacture, datefacture) paiementfacture(idpaiement, idfacture*, montantpaiement, datepaiement)

Page 9 sur 12

Initiation la conception de bases de donnes

Normalisation
Introduction
Lorsqu'on fait une conception on s'efforcera : d'viter les redondances (rptitions inutiles) d'informations d'optimiser le volume de donnes. Le deuxime point vient plus par l'exprience que la thorie. Le premier point appel normalisation est une thorie complte que le concepteur doit appliquer du mieux qu'il peut. Tout ce qui se conoit bien, s'nonce facilement et les mots pour le dire viennent facilement. Une bonne conception-->une programmation aise-->un logiciel facile et efficace.

La dpendance fonctionnelle (le support de la normalisation)


Un attribut (ou sous ensemble d'attributs) Y dpend (ent) d'un attribut (ou sous ensemble d'attributs) X, si connaissant X alors on connait Y de faon unique. On note XY Exemples : connaissant un numro matricule d'tudiant on peut connatre le nom de l'unique tudiant possdant ce numro matricule. On dit que numro matricule dtermine nom . Connaissant un prnom d'tudiant il n'est pas vidant de connatre le nom ou mme le numro matricule de l'tudiant ayant ce prnom car plusieurs tudiants peuvent avoir le mme prnom. Avec le numro de facture et la rfrence du produit on peut connaitre la quantit ou le prix factur : {numfacture, refproduit}quantite {numfacture, refproduit}prix-unitaire

Toute cl candidate doit dterminer tout autre attribut de la relation.

Les formes normales


Il existe de nos jours, sept formes normales numrotes de 1 6 avec une forme intermdiaire (BCNF). Nous nous limiterons aux trois premires qui, dans la plus part des cas, suffisent. 1re forme normale Une relation (dfinition d'une table) est en 1re forme normale si : Tous les attributs sont lmentaires 2me forme normale Une relation est deuxime forme normale si : Elle respecte la 1re forme normale Pour toute cl compose, tout attribut non cl dpend de toute cette cl 3me forme normale Une relation est en troisime forme normale si : Elle respecte la 2me forme normale Tout attribut ne dpend pas d'attribut non cl.

Page 10 sur 12

Initiation la conception de bases de donnes

Exemples de relations (tables) non normalises


Cas de non respect de la 2me forme : Partons du MLD suivant
Reglement Facture Ligne_facture Produit

Voyons les relations qui semblent dcoules. facture(idfacture, datefacture, delaifacture, typefacture) typefacture=0 pour achat et 1 pour vente. produit(idproduit, refproduit, libelleproduit) ligne_facture(idfacture*, idproduit*, refproduit, quantite, prix_unitaire) reglement(idreglement, idfacture*, montantreglement, datereglement, tvareglement) La relation (ou table) ligne_facture ne respecte pas la deuxime forme normale car refproduit dpend de idproduit qui est une partie de la cl. Pour corriger cela il suffit d'enlever l'attribut refproduit dans ligne_facture. Cas de non respect de la 3me forme : La relation reglement prcdente ne respecte pas la 3me forme normale puisque tvareglement ne dpend pas seulement de idreglement. En effet la TVA est applique sur la facture et non chaque rglement (paiement) de facture donc tva dpend de idfacture (qui n'est pas une cl candidate3). L'attribut TVA doit tre dplac au niveau de facture en devenant tvafacture.

Les tapes de la conception


Je vous propose le cheminement suivant. Chaque tape s'appuie sur la prcdente et peut la corriger!
Diagramme des flux d'informations Modle Conceptuel de Traitements Choix des entits. Modle Logique de Donne Schmas des relations

Choix des attributs. 1re forme normale

Modle Conceptuel de Donnes Complt

Schmas des relations {+}

2me et 3me forme normale

Ici je peux dire ne dpend pas que de la cl primaire

Page 11 sur 12

Initiation la conception de bases de donnes

Plus de lectures
Petit guide de Merise : http://sqlpro.developpez.com/cours/modelisation/merise/ Le FAQ sur MERISE sur http://merise.developpez.com/faq/ Parlez-vous MERISE ? de Michel DIVINE : http://micheldivine.developpez.com/#page_ParlezVousMerise Passage du MCD au MLD : http://blog.developpez.com/cinephil/p10017/bases-dedonnees/modelisation/quand-faut-il-une-table-associative/ La normalisation pour les plus courageux : http://fsmrel.developpez.com/basesrelationnelles/normalisation/?page=sommaire

Remerciement
Mille mercis fsmrel pour son accompagnement tout au long de la ralisation de ce petit tutoriel. Grand merci developpez.com et tous ses membres pour cette caverne d'Ali Baba.

Page 12 sur 12