• Aucun résultat trouvé

Modélisation de BDD avec MS VISIO

Quand nous construisons directement les tables d'une base de données dans un logiciel de gestion des bases de données, nous sommes exposés à deux difficultés:

1. Nous ne savons pas toujours dans quelle table placer certaines colonnes (par exemple l'adresse de livraison se met dans la table des clients ou dans la table des

commandes?).

2. Nous avons du mal à prévoir les tables de jonction intermédiaires (par exemple une table des articles vendus qui est indispensable entre les tables des clients et la table des articles)

Il est donc nécessaire de recourir à une étape préliminaire de conception et il s'agit d'une partie importante du travail du développeur est la modélisation de la base de données (sinon le

coût de correction est très important!). Pour exercer cela correctement (sans passer par une feuille A0 collée sur un mur et gribouillée de part en part), il existe des logiciels spéciaux tels que Merise ou MS Visio (pour ne citer que ceux que l'auteur connaît relativement bien).

Remarque: Il existe des cours de modélisation sur 2 jours, mais le sujet est au fait beaucoup plus étendu et fait l'objet d'un métier à lui seul. Le spécialiste dans le domaine est souvent informaticien théoricien ou mathématicien avec un excellent bagage d'algèbre relationnelle.

De plus je conseille aux personnes travaillant avec des PME ou des consultants indépendants de travailler plutôt avec le logiciel gratuit MySQL Workbench pour la modélisation plutôt que MS Visio qui est très coûteur pour un indépendant ou une PME.

Nous allons nous restreindre dans le cadre de ce cours à l'utilisation de MS Visio 2000. La démarche a changé dans la 2002 et la 2003 et le forward-engineering (le fait d'exporter le schéma d'une base de données existante dans MS Visio) n'est disponible depuis la version 2007 que dans la version Vision Enterprise Architect (il y a quatre versions de

Microsoft Office Visio à ma connaissance). Par contre, le reverse-engineering (le fait

d'importer le schéma d'une base de données existante dans MS Visio) est toujours disponible dans la version pro et premium.

L'utilisation en étant très simple, le formateur va vous orienter sur la manière de procéder pour créer par exemple les schémas de base de données auxquels doivent arriver les participants à un cours MS Access après 3 à 4 jours de cours. Le schéma de notre base de données pour l'ensemble de la formation ressemblera au tout début au modèle logique de données (MLD) présenté ci-dessous.

Figure 4 Modèle Logique de Données (MLD) dans MS Visio

Sur la gauche de l'écran, se trouvent les deux formes "Entity" et "Relations" nécessaires à la modélisation des données de la page suivante:

Légende: PK = Primary Key, FK = Foreign Key, I = Index

Lors de l'insertion d'une table, après un double clic sur cette dernière (nous avons pris pour exemple ci-dessous la table "tbl_sorties") apparaît la fenêtre pop-up suivante:

Et voici les propriétés des autres registres (voir page suivante):

Concernant le typage des colonnes ci-dessus, celui-ci a nettement changé dans les ultérieures.

Il a été standardisé pour proposer une compatibilité vers différentes normes SQL, raison pour laquelle on trouvera par exemple les typages LONGTEXT et LONGCHAR (ce dernier étant à privilégier pour MS Access) qui pour un forward engineering vers MS Access se retrouveront de toute façon convertis en type Mémo.

Pour le registre "Trigger" le lecteur se référera à une formation SQL Server, DBL2, Oracle.

Pour le registre "Check" l'auteur de ce document donne sa langue au chat… Les deux autres

registres "Entended" et "Notes" ne sont pas absolument indispensables, nous en ferons donc pas mention.

Concernant les relations, il suffit de "glisser" une forme représentative de cette dernière entre les deux tables et de l'y accrocher (il faut que les tables deviennent alors rouge).

Pour relier la clé primaire (PK) idArticles de la table tblArticles à la clé étrangère

strNbArticles (oui… la dénomination des champs est mauvaise…sur les captures d'écran) de tblEntrees (un article peut être entré plusieurs fois…) il suffit par un double clic sur la relation pour faire apparaître la boîte suivante:

Avec la touche Ctrl du clavier, sélectionnez dans la liste de droite et de gauche, les champs à lier et cliquez sur le bouton Associate.

Ensuite, vous pouvez dans Misceallaneous:

Nous voyons que dans MS Visio, les options proposées vont plus loin que celles proposées par MS Access seul.

En ce qui concerne l'intégrité référentielle:

Pour exporter le schéma dans une base, il faut d'abord avoir créé le support logique de cette dernière. Dans MS Access cela consiste, par exemple, à créer un fichier *.mdb vide (exemple:

visio.mdb).

Enfin, nous remarquons qu'il est désagréable de ne pas avoir la cardinalité des relations, pour cela heureusement dans le menu Database/Options nous avons une boîte de dialogue

permettant de les afficher (nous conseillons vivement de tout cocher):

Dès lors nous avons:

Avec MS Visio, allez dans le menu Database/Generate (avec MS Visio 2003 et antérieur puisque depuis 2007 il faut Visual Studio avec Visio Enterprise Architect...). Apparaît alors la fenêtre suivante (si aucune erreur n'est détectée par MS Visio dans votre modélisation):

Cliquez sur Next après avoir activé les mêmes options que dans la figure ci-dessus.

Sélectionnez MDB file already exists et cliquez sur Next autant de fois que nécessaire pour arriver à la fenêtre suivante:

Cliquez dans la boîte ci-dessus sur OK sans saisir ni User ni Password. Allez ensuite chercher la base cible:

Cliquez sur OK:

Cliquez enfin sur Next et Finish. Ouvrez le fichier visio.mdb et vous y trouverez toutes les tables et relations modélisées dans MS Visio (c'est pas beau ça non !!??).

Suite à cette démonstration, nous vous demandons de faire deux exercices (au cas où MS Visio n'est pas disponible, nous vous demandons d'utiliser du papier grand format) en groupe(s) et de présenter ensuite votre résultat et vos conclusions au formateur ainsi qu'aux autres groupes.

Remarques: les notations seront les suivantes sur vos feuilles:

Tableau 2 Légendes Modélisation BDD

I = index 1 = one CU = Cascade Update LR = Right Jointure

PK = Primary Key = many CD = Cascade Deletion LS = Simple Jointure FK = Foreign Key RI = Referential

Integrity LJ = Left Jointure

Veuillez également respecter la nomenclature pour les objets et champs MS Access (voir page suivante).

Documents relatifs