Conception d une Base de Données La construction d une Base de Données doit correspondre à un besoin de mémoriser et de traiter des informations. Nous savons que le résultat à obtenir est un ensemble de Tables liées entre elles par des Relations, soumises à des Contraintes. Chaque table doit posséder un clé primaire qui identifie de façon unique les lignes de la table. On appelle clé étrangère, un attribut qui est clé primaire dans une autre table. Les relations s expriment par les liens cl é primaire clé étrangère. Toutes les moyennes et grandes entreprises travaillent aujourd hui sur des Bases de Données dont la taille s évalue en Giga Octets. Les relations entre tables sont très complexes et il a fallu des années pour les construire. Lorsque le problème est complexe, on vous a appris, depuis DESCARTES, qu il est souhaitable de le diviser en un ensemble de problèmes plus simples. Cette méthode s applique aussi à la conception des Bases de Données et permettra de mettre en évidence des DOMAINES D APPLICATION. Dans la gestion d une Association (problème complexe) on peut définir les domaines d application suivants : Gestion des Adhérents, Gestion des Séjours, Gestion des Compétitions, Gestion de la Comptabilité, etc... La première étape de la construction d une Base de Données consistera à étudier «l UNIVERS DU MONDE REEL», à bien identifier les BESOINS et à mettre en évidence les DOMAINES à informatiser. REFLECHIR AVANT D AGIR doit être votre soucis principal. Avant de vous lancer à corps perdu dans l informatisation d un DOMAINE, vérifier s il n existe pas une solution informatique adaptée à votre problème. Il est souvent préférable d utiliser un logiciel existant qui couvre 80 % du problème que vous avez identifié, que de créer ou de faire créer un logiciel qui le résoudra à 100%. Bon! Rien n existe sur le marché, vous avez identifié vos domaines et vous brûlez d impatience d utiliser le dernier S.G.B.D. relationnel que vous venez d acheter. Et bien NON!, il n est pas question de se lancer dans la conception des tables sans avoir analysé et trouvé une représentation symbolique de votre problème. C est la deuxième étape de la construction de la Base de Données : La phase de Modélisation de la Réalité. On parlera de MCD (Modèle Conceptuel des Données). Réaliser un modèle du domaine d application, c est s obliger à se poser des questions. Il existe plusieurs méthodes de modélisation d un problème. Nous avons choisi le modèle dit Entité Association. C est le modèle le plus utilisé en France. Un modèle permet de s affranchir de la technologie. Votre modèle restera vrai lorsque les Bases de Données Relationnelles seront remplacées par une nouvelle génération de S.G.B.D. Enfin, après avoir longtemps, longtemps, longtemps...réfléchi, vous pourrez passer à la troisième étape, qui consistera à transformer les «objets» de votre modèle en Tables sur le S.G.B.D. que vous avez choisi. Il restera enfin une quatrième étape qui consiste à écrire les programmes d accompagnement de la Base pour rendre son accès «CONVIVIAL» à un non informaticien. Mais ceci est une autre histoire... Etape 1 Etape 2 Etape 3 Etape 4 Les BESOINS Les DOMAINES MODELISATION GENERATION des TABLES PROGRAMMATION Jacques Chambon 1/9
Comment obtenir un modèle des Données? Travaillons sur le domaine «Gestion des Adhérents». Comment s y prendre pour démarrer l étude de ce domaine? Nous allons vous donner des pistes et les principes d une méthode. Le maître mot dans la phase de Recherche d une solution, on dira «d ANALYSE», c est la COMMUNICATION. Comment communique-t-on? Par le langage et par l écrit. Vous obtiendrez les informations nécessaires à votre étude en dialoguant avec les personnes concernées par le domaine analysé ; en récoltant et en disséquant les documents de gestion utilisés par l organisation, documents bien sûr, relatifs à votre domaine d étude. Analyse d un dialogue Un dialogue c est une série de questions et de réponses. C est vous qui posez les questions et qui devrez analyser les réponses. Cette analyse consistera à décomposer toutes les phrases prononcées par votre interlocuteur en phrases élémentaires. Phrases élémentaires Qu est ce qu une phrase élémentaire? C est une phrase limitée à la structure suivante. SUJET VERBE COMPLEMENT La démarche de composition sera la suivante : On ne conserve qu un verbe par phrase ; Le sujet identifie une ENTITE du DOMAINE le complément est soit une caractéristique de l ENTITE, soit une autre ENTITE. On décomposera les phrases jusqu à ce qu elles soient toutes exprimées sous la forme : ENTITE VERBE Caractéristique Exemple de dialogue : Q «Comment identifiez-vous les membres de votre association?» R «Nous les appelons des Adhérents. Nous avons besoin de leur nom, prénom, adresse et date de naissance. Nous leur demandons également une photo et leur numéro de téléphone personnel.» Décomposition Un Adhérent a un nom. Entité verbe caractéristique Un Adhérent a un prénom Entité verbe caractéristique Un Adhérent habite à une Adresse ENTITE verbe ENTITE Un Adhérent a une date de naissance Entité verbe caractéristique Un Adhérent a une photo Entité verbe caractéristique Un Adhérent a un n de téléphone Entité verbe caractéristique Adresse est une entité abstraite qui peut être décomposée en rue, résidence, code postal et ville. Une Adresse est composée d une rue Entité verbe caractéristique Une Adresse est composée d une résidence Entité verbe caractéristique Une Adresse est composée d un code postal Entité verbe caractéristique Une Adresse est composée d une ville Entité verbe caractéristique Vous arrivez à une décomposition terminale lorsque vous pouvez utiliser les verbes «avoir» ou «est composé». Mais tous les dialogues ne sont pas aussi simple à interpréter. Le premier écueil est celui de la personnalisation du dialogue, le second celui de l ambiguïté de la langue. Jacques Chambon 2/9
Il vous faudra donc être PERSPICACE et la plupart du temps faire preuve de «BON SENS». Autre exemple de dialogue : Un responsable : «Tiens, je vous présente un de nos adhérents : Mr Daffiot qui vient d amarrer Bitonio au ponton n 2.» Vous : C est un beau bateau. Mr DAFFIOT : Oui : c est un Jouet 24 de 1993. Vous : Il est à vous? Mr DAFFIOT : Oui je l ai acheté cette année à Mr Untel pour courir en Groupe 1. Phrases types Une phrase type est une phrase dans laquelle : on fait un tri en ne retenant que les phrases qui ont un intérêt pour le domaine étudié. on enlève toute référence nominative aux Entités. On les remplace par des noms génériques. Décomposition en phrases élémentaires Décomposition en phrases type : Mr DAFFIOT est un adhérent Un adhérent a un nom Mr DAFFIOT possède BITONIO Un adhérent possède un bateau BITONIO est un bateau Un bateau a un nom BITONIO est amarré à un ponton Un bateau est amarré à un ponton un ponton a le n 2 Un ponton a un numéro BITONIO est un Jouet 24 Un bateau a un type BITONIO a été construit en 1993 Un bateau a une date de construction BITONIO court en GROUPE1 Un bateau court dans une catégorie BITONIO a été acheté cette année. Un bateau a une date d achat BITONIO a été vendu par Mr UNTEL Un bateau a un ancien propriétaire Le Modèle conceptuel des Données Première Etape : Traduction des phrases types en graphique Nous ne considérons dans un premier temps que les phrases types de la forme : Entité Verbe Entité Le verbe établit un lien entre les Entités : il les associe. C est pourquoi, dans le modèle que nous allons utiliser les verbes seront qualifiés d ASSOCIATIONS. Les Entités sont représentées par un rectangle, les associations par une rectangle ovalisé E N T I T E 0, n A s s o c i a t i o n 0, n E N T I T E _ ADHERENT possède BATEAU Un Adhérent habite à une Adresse habite court est amarré Un Adhérent possède un Bateau Un Bateau est amarré à un Ponton Un Bateau court dans une Catégorie ADRESSE CATEGORIE PONTON Deuxième Etape : Enrichissement du graphique 1 - Introduction des caractéristiques dans les Entités. Les caractéristiques sont introduites dans leurs entités respectives. Jacques Chambon 3/9
Le mot de caractéristique doit être pris ici au sens littéral du terme. En informatique, on utilise plutôt des synonymes : attribut, propriété ou champ. En tout état de cause l entité deviendra une table, les caractéristiques se matérialiseront par des champs. 2 - Recherche des Cardinalités. On reprend chaque phrase type de format : Entité Verbe Entité On essaie d introduire à gauche du verbe, le verbe POUVOIR et de qualifier le complément par UN SEUL, UNE SEULE ou PLUSIEURS. (Le choix dépend de la réalité que vous observez et vous permet de guider un entretien.) On inverse dans un deuxième temps, chaque phrase type et on y applique la méthode précédente. Phrase type d origine Un Adhérent habite à UNE SEULE Adresse. Un Adhérent PEUT posséder PLUSIEURS Bateaux Un Bateau est amarré à UN SEUL Ponton Un Bateau court dans UNE SEULE Catégorie Phrase type inversée A une Adresse n habite qu UN SEUL Adhérent Un Bateau PEUT être possédé par PLUSIEURS Adhérents A un Ponton s amarre PLUSIEURS Bateaux Dans une Catégorie courent PLUSIEURS Bateaux Les Cardinalités vont apparaître sur les liens du modèle sous la forme de deux valeurs l une minimale, l autre maximale. Les combinaisons possibles sont (0,1), (1,1), (), () Si vous avez réussi à placer l adjectif «PLUSIEURS», la Cardinalité maximale sera «n», sinon ce sera «1». Pour déterminer la Cardinalité minimale il faut vous poser une nouvelle question pour chaque phrase type : La réalité qu on exprime peut-elle ne pas exister? Phrases types Question de non existence Réponse (fonction de la Réalité) Cardinalité Minimale Cardinalité Maximale Un Adhérent habite à UNE SEULE Adresse. Un Adhérent peut-il ne pas avoir d Adresse? NON 1 1 Un Adhérent PEUT posséder PLUSIEURS Bateaux Un Bateau est amarré à UN SEUL Ponton Un Adhérent peut-il ne pas posséder de Bateau? Un Bateau peut-il ne pas être amarré à un Ponton? OUI 0 N NON 1 1 Un Bateau court dans UNE SEULE Catégorie A une Adresse n habite qu UN SEUL Adhérent Un Bateau PEUT être possédé par PLUSIEURS Adhérents A un Ponton s amarre PLUSIEURS Bateaux Un Bateau peut-il ne pas être rattaché à une Catégorie? Une Adresse peut-elle ne correspondre à aucun adhérent? NON 1 1 NON 1 1 Un bateau peut-il n appartenir à personne? NON 1 N Existe-t-il des pontons sans Bateau.? NON 1 N Dans une Catégorie courent Existe-il des catégories sans Bateau? NON 1 N PLUSIEURS Bateaux La valeur «0» est associée à une réponse OUI, la valeur «1» à une réponse NON. En reportant les informations précédentes sur le schéma, nous obtenons le modèle suivant : Jacques Chambon 4/9
A D HE R E NT C o d e a d h é r e n t# PLUSIEURS No m p o s s è d e P r é n o m 0,n 1,n D a te d e Na is s a n c e Nu m é r o té lé p h o n e p e r s o n n e l P h o to 1,1 h a b ite UN PLUSIEURS UN C o u r t 1,1 B A T E A U No m d u B a te a u D a te d ' A c h a t D a te d e C o n s tr u c tio n T y p e A n c ie n p r o p r ié ta ir e 1,1 e s t a m a r r é UN 1,1 A D R E S S E UN A d r e s s e C o m p lé m e n t d 'A d re s s e C o d e P o s ta l V ille PLUSIEURS 1,n C A T E G O R IE D é s ig n a tio n PLUSIEURS 1,n P O NT O N Nu m é r o Remarque : Les mots UN et PLUSIEURS ne font pas partie de la représentation du modèle. Troisième Etape : Réorganisation des Entités 1 - Recherche des entités inutiles Si vous obtenez de part et d autre d une association des cardinalités (1,1) c est que l association que vous avez mis en évidence n en est pas une. Vous pouvez alors la supprimer et intégrer les caractéristiques en une seule Entité. Dans notre exemple, nous «remonterons» les caractéristiques de l adresse dans l entité Adhérent. 2 - Recherche de l identifiant des entités Pour chaque entité, vous devez trouver une Clé Primaire. Elle doit identifier de façon unique chaque «enregistrement» de «l entité». Choisissez l une des caractéristiques existantes. Si vous n en trouvez pas, ajoutez une caractéristique codifiée. S il apparaît alors dans votre modèle une Entité qui ne possède que la clé primaire, comme dans l entité «Ponton», supprimez la et remontez cette clé comme caractéristique de l Entité liée. Mais s il s agit d une date, vous conserverez l Entité. 3 - Travail sur les associations Pour obtenir une meilleure lisibilité du modèle, on attribuera un verbe à l infinitif à chaque association. ADHERENT Code adhérent Nom Prénom Date de Naissance Adresse Complément d'adresse Code Postal Ville être propriétaire Un Adhérent peut être Propriétaire de Plusieurs Bateaux. (n) Tous les Adhérents ne sont pas Propriétaires. (0) Un Bateau peut appartenir à Plusieurs Propriétaires. (n) Tous les Bateaux ont au moins un Propriétaire. (1) Un Bateau court dans une seule Catégorie. (1) Une Catégorie regroupe plusieurs Bateaux. (n) BATEAU Numéro du Bateau Numéro voile du Bateau Nom du Bateau 1,1 1,1 regrouper CATEGORIE BATEAU Code Catégorie Bateau Libellé Catégorie Bateau AMARRER PONTON Numéro Ponton Un Bateau est amarré a un seul ponton (1) A un ponton sont amarrés plusieurs bateaux (n) Jacques Chambon 5/9
Analyse de documents existants C est la deuxième source d informations pour concevoir une Base de Données. Vous devez mettre en évidence trois types d informations. les informations pré-imprimées du document ; les informations calculées ; les informations introduites : les DONNEES. Facturation des séjours Exemple de facture C.V.A.T. Bassin à flot Date Facture 33000 BORDEAUX 29/04/2xxx 05 56 35 58 29 A.E.C.A 25, Place TOURNY 33000 Bordeaux Séjour : Centre d'arcachon : Groupe de 30 personnes. Week end 26-27 Avril 2xxx Services facturés Prix Unitaire TVA Quantité Montant Location PV 7,50 2 30 225,00 Hébergement 15,00 2 42 630,00 Location VTT 7,00 2 25 175,00 Repas 7,50 1 97 727,50 Petits Déjeuners 2,00 1 37 74,00 - - - TVA 1 2 TOTA HT 1 831,50 Base 801,50 1 030,00 0%Remise - Taux 5,50% 19,60% Net Commercial 1 831,50 Montant 44,08 201,88 Montant TVA 245,96 TOTAL TTC 2 077,46 Payable avant le : 31 mai 2xxx Données Calculées Les informations sur fond noir constituent la partie pré-imprimée du document. La facture est adressée au client, dans la semaine qui suit le séjour. Jacques Chambon 6/9
Décomposition en phrases type Seules les données nous intéressent. Après les avoir identifiées, il faut reconstituer les phrases type. Une facture a une date. Une facture a un numéro Une facture s adresse à un client. Un client a une raison sociale. Un client a une adresse. Un client a un code postal. Un client a une ville. Une facture a un commentaire. Une facture contient plusieurs services. Un service a une désignation. Un service a un prix. Un service a une quantité pour une facture. Cette dernière phrase est indécomposable. En admettant qu elle le soit : la décomposition serait le suivante : Un service a une quantité. Examinons la facture. Séjour : Est FAUX Centre du Cap Ferret : Groupe de 10 personnes. Séjour 12-13 Avril 2003 Services facturés Prix Unitaire Quantité Montant Location PV 7,50 10 75,00 Hébergement 15,00 10 150,00 Location VTT 7,00 8 56,00 En comparant avec la facture précédente, on voit que les services identiques sont facturés au même prix. On peut donc affirmer que le prix est lié à la nature du service. Par contre la Quantité facturée est différente selon les factures pour le même service, mais aussi dans la même facture selon les services. Cela signifie donc que la quantité facturée est dépendante du SERVICE ET de la FACTURE. Première représentation graphique s'adresse à CLIENT FACTURE 1,1 contient SERVICE Jacques Chambon 7/9
Deuxième représentation graphique F A C T U R E 1, 1 N u m é r o d a t e c o m m e n t a ir e 1, n A d r e s s e r C O N T E N I R Q u a n t it é 0, n 0, n C L I E N T R a is o n s o c ia l e o u n o m A d r e s s e C o d e P o s t a l V il l e S E R V I C E D é s ig n a t io n P r ix Une Facture ne s adresse qu à un seul client (1) Un Client peut avoir plusieurs factures à régler, mais peut être aucune. (0) Une Facture peut comporter plusieurs lignes de facture (n), mais au moins une. (1) Un Service peut figurer dans plusieurs lignes de facture (n), mais peut être dans aucune. (0) Un modèle exprime une certaine VUE de la Réalité. C est une vision en «COMPREHENSION». Chaque Entité et association va se transformer en Tables. Il devient donc possible de donner un exemple du contenu de chaque table. C est une vision en «EXTENSION». Ce type de représentation peut vous aider à bien comprendre l organisation d un modèle. N hésitez pas à l utiliser! Donnez vous des exemples! FACTURE Numéro date commentaire 225 22/05/2002 Centre du Cap Ferret : Groupe de30 personnes 226 30/05/2002 Week Centre end du Cap 20 - Ferret 21 Mai : 1995 Groupe de 10 personnes. 227 30/05/2002 Week Centre end d'arcachon 27-28 Mai : Groupe 1995 de 50 personnes Dimanche 28 Mai 1995 CLIENT Raison sociale ou nom Adresse Code Postal Ville A.E.C.A. 25, Place TOURNY 33000 BORDEAUX Les Amis du Ferret 36, Cours du Médoc 33000 BORDEAUX Lous GOUYATS de L'ADOU 25, rue du Toro 40100 DAX SERVICE CONTENIR Désignation Prix Quantité Location PV 7,50 30 Location 420 15,00 42 Location Catamaran 17,00 97 Hébergement 15,00 37 Repas 7,50 25 Petit Déjeuner 2,00 5 Location VTT 7,00 10 Le jeu d essai précédent vous permet de mettre en évidence l absence de liens entre tables. Il manque donc les clés primaires. On appelle clé primaire un attribut (colonne) d une table qui permet d'identifier de façon unique, une occurrence (ligne) d une table. Une clé primaire doit être : unique ; non nulle ; et stable dans le temps. Jacques Chambon 8/9
Troisième représentation graphique Chaque Entité doit posséder une clé primaire. Une clé primaire est un attribut existant ou un code qui permet d obtenir plus facilement le critère d unicité. Dans notre exemple comme plusieurs clients peuvent avoir le même nom, nous préfèrerons les identifier (une clé primaire est aussi appelée identifiant) par un numéro unique (code client) attribué par le Centre. L en sera de même pour les services. FACTURE Numéro date commentaire 1,1 Adresser CONTENIR Quantité CLIENT Code Client Raison sociale ou nom Adresse Code Postal Ville SERVICE Code service Désignation Prix Clés étrangères : elles n apparaissent pas de façon explicite dans le modèle : elles se traduisent par les liens. On appelle clé étrangère un attribut qui est clé primaire dans une autre table. Elles apparaissent par contre dans la vision en «Extension». Deux cas peuvent exister : Association UN à PLUSIEURS : la clé primaire de l Entité «du coté PLUSIEURS» devient la clé étrangère de l Entité «du coté UN».(on dit qu elle remonte). Association PLUSIEURS à PLUSIEURS : les clés primaires de chaque Entité «remontent dans l association nommée pour donner une clé primaire composée. Jacques Chambon 9/9