Utiliser des données dans un site Internet implique de les stocker dans une base de données. Le couple Php/MySQL a fait depuis longtemps ses preuves dans le domaine du développement Web.
Mais concevoir une base de données nécessite au préalable d'avoir identifié, puis organisé toutes les données nécessaires à l'application. Nous allons dans ce chapitre étudier une partie de la méthode Merise, liée à la modélisation des données. Elle consiste à concevoir un Modèle Conceptuel de Données (MCD), le transposer en Modèle Logique de Données Relationnelles (MLDR), puis à générer le Modèle Physique correspondant (MPD).
Parce que la maintenance d'une application informatique met clairement en évidence plusieurs types de problèmes, depuis les modifications qu'entraîne un changement de matériel, jusqu'à la refonte complète de l'application qu'exige la mise en place d'une réglementation totalement nouvelle, il a paru essentiel de dégager des niveaux correspondant à ces préoccupations différentes. Pour Merise et la plupart des méthodes de conception, il est classique de mettre en évidence 3 niveaux de réflexion :
Il correspond à la définition des finalités de l'entreprise en explicitant sa raison d'être. Ce niveau, décrit à travers un ensemble de règle de gestion, traduit les objectifs et les contraintes qui pèsent sur l'entreprise. On y retrouve par exemple les règles de gestion du personnel, de tenue de la comptabilité, de livraison des produits finis, etc..
Son rôle est de définir l'organisation qu'il est souhaitable de mettre en place dans l'entreprise. On parle de choix d'organisation. L'analyste précise les postes de travail, la chronologie des opérations, les choix d'automatisation, etc..
Enfin, sont intégrés les moyens techniques nécessaires au projet. Ils s'expriment en terme de matériels ou de logiciels, et sont les plus sujets à changements (évolution technologique).
La conception du système d'information se fait par étapes, afin d'aboutir à un système d'information fonctionnel reflétant une réalité physique. Il s'agit donc de valider une à une chacune des étapes en prenant en compte les résultats de la phase précédente. D'autre part, les données étant séparées des traitements, il faut vérifier la concordance entre données et traitements afin de vérifier que toutes les données nécessaires aux traitements sont présentes et qu'il n'y a pas de données superflues. Cette succession d'étapes est appelée cycle d'abstraction pour la conception des systèmes d'information :
Système d'information manuel
Expression des besoins
Modèle conceptuel
Modèle logique
Modèle physique
Système d'information automatisé
Tableau 3. Les différents modèles de Merise
| Niveaux | Données | Traitements | Questions |
| Conceptuel | Modèle Conceptuel des Données (MCD) | Modèle conceptuel des Traitements (MCT) | Quoi ? |
| Organisationnel | Modèle Logique des Données (MLD) | Modèle Organisationnel des Traitements (MCT) | Qui ? Où ? Comment ? |
| Technique | Modèle Physique des Données (MPD) | Modèles Opérationnel des Traitements (MOpD) | Comment ? |
Une des images les plus classique de l'informaticien est celle d'un technicien concevant des solutions géniales à des problèmes qui ne lui sont pas posés, et rétif à tout dialogue avec l'utilisateur. Même si les cas d'écoles qui sont présentés en formation ont des objectifs clairement posés sur un existant vide, dans la vie professionnelle, il en va généralement bien autrement. Lors des différentes interviews qui jalonnent l'étude préalable, l'analyste recense les données apparaissant dans les différents documents de l'entreprise. Au cours de la conception détaillée, il va tenter de les décomposer en données élémentaires, et les épurer, c'est-à -dire n'en retenir que les pertinentes.
Etablir un dictionnaire des données, c'est recenser l'ensemble des informations de l'application, et leur attribuer un type de données, c'est-à -dire indiquer sous quelle forme informatique elles seront enregistrées.
Une donnée élémentaire est une donnée qui ne peut être décomposée. Souvent les données brutes sont constituées de plusieurs parties, mais on ne doit décider de les décomposer qu'en fonction de l'usage qui en sera fait.
Exemple 1. Exemple
Une adresse postale d'un client est une donnée brute, qu'on peut décomposer en AdresseRue, CodePostal et Ville. Cela permet par exemple de sélectionner tous les clients d'une ville. Mais si on a aussi besoin de connaître tous les clients d'une rue, on sera alors obligé de décomposer AdresseRue en NuméroRue et NomRue.
Lorsque deux noms recouvrent la même réalité, il s'agit d'une synonymie. Lorsqu'un même nom de données recouvre plusieurs réalités, il s'agit d'une polysémie. Il faut bien sûr supprimer ces deux défauts.
Exemple 2. Exemple
CodeClient et referenceClient sont deux noms de données qui peuvent recouvrir la même réalité, c'est-à -dire le moyen d'identifier le client. Il ne faut donc retenir qu'un seul nom pour cette propriété.
Une donnée calculée est une donnée dont la valeur peut être obtenue en appliquant une règle de calcul aux valeurs d'autres données élémentaires. Ces données ne doivent pas entrer dans le modèle conceptuel des données.
Les données élémentaires, calculées ou non calculées, épurées et retenues pour leur pertinence, constituent le dictionnaire des données. Pour chacune d'elles, on précise le type et le domaine de définition. On indiquera également si elles sont calculées ou non.
Tout au long de ce dossier, nous allons tenter de modéliser un système d'information concernant des accidents de la circulation. En voici les grands traits :
Un club de chasse sous-marine désire informatiser les résultats de parties de chasse. Tous les pêcheurs du club sont connus sous un pseudo. Les parties de chasse ne sont pas communes (chacun chasse individuellement). On considère qu'il ne peut y avoir qu'une seule chasse dans la même journée. Les espèces sont cataloguées en fonction de leur niveau de tir (difficulté qu'ils présentent à être chassés) et de leur poids moyen.
Lorsqu'on enregistre le résultat d'une chasse, seul le nombre de poissons par espèce est comptabilisé (les poissons ne sont pas pesés : on raisonne toujours à partir du poids moyen).
Enfin, à chaque niveau de tir est associé un nombre de points (plus le niveau est élevé, plus le nombre de points est important), qui permet d'attribuer un score à chaque partie de chasse. L'objectif du club est de permettre d'établir les documents suivants :
l'inventaire des espèces de poissons et le niveau de tir qui leur est attribué
le récapitulatif du nombre de prises dans l'année pour l'ensemble des chasseurs du club
le bilan des parties de chasse pour un chasseur donné (NB : on désire voir apparaître le lieu où s'est effectuée chaque chasse).
Définition : Appelée aussi information élémentaire, données élémentaire ou rubrique, la propriété désigné le plus petit élément d'information manipulable. Pour être correctement définie, une propriété doit toujours être décrite par un " nom de propriété ", prendre ses valeurs dans un domaine de valeurs et avoir un sens dans le système d'information étudié.
Note
Une propriété est véritablement élémentaire si elle n'est pas décomposable en un ensemble de propriétés signifiantes plus petites. On dit alors qu'elle est atomique. Par exemple, une adresse postale peut être décomposé en : - numéro de rue - nom de rue - code postal - ville Mais cette décomposition fine n'est pas systématique, elle est uniquement guidée par la pertinence à traduire une réalité de l'entreprise. Ainsi, il n'est pas nécessaire de découper une date en trois propriétés distinctes, jour, mois et année.
Une entité est un type d'élément (abstrait ou concret) du monde réel défini par : - une existence propre et une utilité pour l'organisation étudiée - des occurrences multiples (c'est-à -dire au moins deux) - des propriétés (au moins une), dont un identifiant.
Parmi toutes les propriétés d'une entité, une ou plusieurs d'entre elles doivent jouer un rôle particulier, celui de permettre de distinguer chaque occurrence de l'entité par rapport à toutes les autres. Cette propriété ou groupe de propriétés est appelé identifiant. Il existe plusieurs types d'indentifiant :
. Identifiant simple : il est composé d'une seule propriété (exemple précédent) . Identifiant composé : il est composé de deux propriétés ou plus. . Identifiant relatif : il est constitué pour partie d'une propriété appartenant à une autre entité. . Identifiant hérité : il résulte d'un lien de dépendance avec une entité générique.
L'identifiant d'une entité est l'ensemble des propriétés soulignées.
Définition : Une association est un type d'élément du monde réel défini par :
- une absence d'existence intrinsèque
- au moins une occurrence
- une dimension (mesurée par le nombre d'entités rattachées)
- une utilité pour l'organisation étudiée.
.
Formalisme : L'association est représentée par un ovale.
Exercice :
Représenter les associations reliant les entités de notre club de chasse sous marine.
Définition : Une occurrence de propriété est une valeur que peut prendre une propriété.
Une occurrence d'entité est un ensemble ayant une existence propre d'occurrences de ses propriétés.
Une occurrence de relation est constituée d'une et d'une seule occurrence de chacune des entités associées. L'occurrence de chacune des propriétés de l'association est en relation avec les occurrences des entités associées.
Exemple 6.
Soient les occurrences suivantes :
{PAYET, JEAN, 23/10/1970} : une occurrence de l'entité " STAGIAIRE ".
{BDD} et {JAVASCRIPT} : deux occurrences de l'entité " MODULE ".
12 peut être une occurrence de " NOTE " associée aux occurrences {PAYET, JEAN, 23/10/1970} et {BDD} ; 13 une autre occurrence de " NOTE " associée aux occurrences {PAYET, JEAN, 23/10/1970} et {JAVASCRIPT}.
Définition : La cardinalité d'une entité par rapport à une association s'exprime par deux nombres appelés cardinalité minimum et cardinalité maximum.
La cardinalité minimale peut être égale à 0 ou à 1.
Si la cardinalité est égale à 0, c'est qu'il existe au moins une occurrence de l'entité qui ne participe pas aux occurrences de l'association.
Si la cardinalité est égale à 1, chaque occurrence de l'entité participe aux occurrences de l'association.
La cardinalité maximale exprime le nombre maximum de fois o๠une occurrence de l'entité participe aux occurrences de l'association. On la note égale à n, elle peut être égale à 1 ou à tout autre nombre strictement positif (quand le nombre d'occurrences est quantifiable).
Exemple 7. Cardinalités
Un stagiaire peut ne pas avoir de note, c'est à dire qu'il peut exister un stagiaire qui n'a pas passé l'évaluation (cardinalité minimum = 0).
Un stagiaire peut être inscrit à plusieurs module et avoir une note pour chacun des modules auxquels il est inscrit (cardinalité maximum = n)
Il est possible que personne ne se présente à l'évaluation pour un module (cardinalité minimum = 0)
Plusieurs notes peuvent être attachées à un même module (cardinalité maximum = n)
Comme pour le modèle entité - association, on définit des domaines dans lesquels des attributs prennent leur valeur. Une relation est un ensemble d'entités et sa description peut prendre la forme d'un tableau dans lequel chaque ligne représente une occurrence d'entité et chaque colonne un attribut.
La relation COUREUR(nom, prénom, dateNaissance) peut se représenter par :
La relation ETAPES (NuméroEtape, VilleDépart, VilleArrivée, NbKm) peut se représenter par
Un n-uplet est une occurrence d'une relation. Plus concrètement, il représente une ligne du tableau. On dit aussi t-uple au lieu de n-uplet. Exemple : (1,St Denis, StPaul, 50) est un n-uplet de la relation ETAPES
La cardinalité d'une relation est son nombre d'occurrence. Dans l'exemple précédent, la cardinalité de la relation COUREUR est de 2.
Le degré d'une relation est son nombre d'attribut. . Dans l'exemple précédent, le degré de la relation COUREUR est de 3.
Une clef primaire est constituée d'un ou plusieurs attributs de la relation. Elle permet d'identifier sans équivoque chaque n-uplet de la relation.
Dans la relation Coureur, NOM peut ne pas être suffisant pour distinguer les occurrences, en cas d'homonymie. On peut rajouter un attribut à la relation, un numéro de coureur, qui devient clef primaire
Selon les dépendances fonctionnelles observées, il peut être nécessaire de connaître la clef primaire d'une relation pour identifier un n-uplet d'une autre relation. Dans ce cas, la clef primaire de la première devient clef étrangère de la seconde.
Exemple : soit la nouvelle relation qui permet de modéliser les temps des coureurs : TEMPS(NumCoureur, NumeroEtape, tempsrealisé). Les clefs NumCoureur et NuméroEtape, clefs primaires des relations COUREUR et ETAPES, permettent d'identifier chaque n-uplet de la relation. En effet, un coureur ne participe qu'une seule fois à une étape ! Ce sont donc les clefs étrangères de COUREUR.
On représente chaque relation de la modélisation par : NOMRELATION (clefPrimaire1, clePrimaire2, ..., attribut1, Attribut2, .. ,#clefEtrangère1,#clefEtrangère1)
Exemple : TEMPS (#NumCoureur,#NumeroEtape, tempsrealisé)
COUREUR (NumCoureur, (nom, prénom, dateNaissance)
ETAPES (NuméroEtape, VilleDépart, VilleArrivée, NbKm)
Le passage du MCD vers le modèle relationnel se base sur l'application de quatre règles simples, énoncées ci-dessous. Il est à noter que cette transformation peut se faire en sens inverse, en appliquant les mêmes règles.
Toute entité du MCD est traduite en une table dont la clef primaire et les attributs proviennent de l'entité
Une association binaire qui a une cardinalité égale à 0,1 ou 1,1 pour une entité est traduite par une clef étrangère ajoutée à la table qui traduit cette entité. Cette clef étrangère est la clef primaire de l'entité associée.
Une association binaire qui n'a pas de cardinalité égale à 0,1 ou 1,1 est traduite en une table dont la clef primaire est constituée de l'ensemble des identifiants des entités qui y participent.
Vous gérez une base de données archéologique dans laquelle vous voulez mettre les informations suivantes. Un objet est trouvé par une équipe donnée, dans un site donné. L'équipe est reconnue par le nom de son directeur, et le site par son numéro, sa longueur, sa largeur. Le site appartient à une zone de fouille qui peut en contenir plusieurs. La zone de fouille porte le nom de la ville la plus proche. L'objet est identifié par un numéro, une désignation (qui le décrit), une catégorie (par exemple, meuble, accessoire, élément d'architecture, manuscrit...), par un état de complétude (s'il est total ou s'il est partiel comme un pied de table, un tesson de bouteille ou un nez de gargouille, etc...) et par un état de conservation ( intact, bon, à restaurer, mauvais état, très mauvais). Plusieurs équipes peuvent fouiller simultanément la même zone de fouille, mais pas le même site. En revanche les équipes tournent, d'un site à l'autre, chaque jour. QUESTION : proposez un modèle entité-association représentant cet énoncé, en justifiant les cardinalités des couples entité-association, ainsi que les clés des entités. Proposez le modèle relationnel correspondant
La première étape de l'étude a dégagé les données suivantes à stocker :
Numéro d'ouvrage (NumeroOuvrage)
Titre de l'ouvrage (TitreOuvrage)
Numéro interne du livre attribué par la bibliothèque (NumeroInterne)
Numéro d'auteur (NumeroAuteur)
Nom de l'auteur (NomAuteur)
Numéro d'étudiant (NumeroEtudiant)
Nom de l'étudiant (NomEtudiant)
Numéro de la faculté (NumeroFaculte)
Nom de la faculté (NomFaculte)
Date du prêt (DatePret)
Date de retour (DateRetour)
Les contraintes :
Un ouvrage peut avoir plusieurs auteurs.
Un auteur peut écrire plusieurs ouvrages.
Un étudiant n'appartient qu'à une faculté et ne peut emprunter que trois livres à la fois.
Un ouvrage figure en plusieurs exemplaires dans la bibliothèque.
Le délai d'emprunt d'un livre est de trois semaines. Au-delà de cette période, l'étudiant doit payer une pénalité.
Une école désire gérer la participation de ses élèves à divers concours d'entrée dans la fonction pulique. Chaque élève est encadré par un tuteur de l'école. Dans chaque concours, l'élève doit réaliser un projet qu'il choisit lui-même. Le jury accorde toujours un nombre de points qui permet d'établir le classement (si 2 élèves ont le même nombre de points, ils sont ex-æquos).
On désire connaître les concours auxquels ont participé les élèves, le projet réalisé, la place et le nombre de points qu'ils ont obtenus (NB : pour la place, on ne gère que les élèves de l'école).
Les informations collectées sont :
nom de l'élève
prénom de l'élève
nom du tuteur
prénom du tuteur
nom du concours
lieu du concours
dotation globale du concours
date du concours
nombre de points obtenus
place obtenue
nom projet réalisé
Donnez le MCD correspondant, puis le modèle relationnel.
La société OPHCO a la charge de la gestion des immeubles HLM des villes de plus de 5.000 habitants du département. Actuellement, on compte une douzaine de villes de ce type. La gestion des immeubles recouvre notamment l'affectation des appartements en fonction des demandes, la facturation des loyers, les travaux d'entretien, le suivi des règlements, etc... Dans l'optique d'une informatisation prochaine du système de gestion, on vous demande de poursuivre une étude des données, qui a abouti pour l'instant à :
une liste des données à utiliser dans le système d'information ,
la liste des règles de gestion à respecter.
Voici la liste des données :
Revenu Locataire
Loyer Mensuel
Type Appart
Code Gardien
N° Cité
Nom Cité
Code Appartement
N° Contrat
Nom Ville
Nom Locataire
N° Etage
Nom Gardien
Garage (O/N)
N° Immeuble
Date Signature Bail
Prénom Gardien
Prénom Locataire
Superficie Appart.
Durée Bail
N° Porte
Voici les règles de gestion :
RG 1 - Pour une ville (de plus de 5.000 habitants) du département, il existe au moins une cité HLM.
RG 2 - Chaque cité HLM est identifiée par un numéro.
RG 3 - Pour un numéro de cité, il existe un nom de ville et un seul.
RG 4 - Un même nom de cité peut être utilisé pour plusieurs cités différentes, mais dans des villes différentes.
RG 5 - Chaque cité est surveillée par un gardien et un seul, mais un gardien peut surveiller plusieurs cités d'une même ville.
RG 6 - Chaque cité peut comporter jusqu'à 6 types d'appartements.
RG 7 - Une cité comporte plusieurs immeubles, numérotés de 1 à N. Chaque immeuble contient au moins 2 types d'appartements.
RG 8 - Chaque appartement est identifié par un code.
RG 9 - Un appartement peut disposer d'un garage, mais ce n'est pas toujours le cas.
RG 10 - Un appartement peut être occupé par un locataire, qui signe un contrat de location.
RG 11 - Chaque contrat est identifié par un numéro, et permet de fixer le montant du loyer valable pour la
Vous devez modéliser le système d'information selon le formalisme MCD, puis en donner le modèle relationnel.
On souhaite réaliser la gestion d'une vidéothèque personnelle, sachant que le prêt à ses amis devient vite un casse tête et une source de perte non négligeable ;-). Pour gérer ce problème, on dispose des informations suivantes :
Un film possède les caractéristiques suivantes : Un code, un titre, une année de sortie, une durée et un résumé.
Dans les films jouent des acteurs, ayant bien sûr un nom et un prénom.
Chaque film est d'un genre particulier
On dispose dans notre vidéothèque de plusieurs supports : VHS, DIVX, DVD, mà¹ais on ne prete que les VHS
On prend soin d'enregistrer les personnes empruntant les films, en retenant leur adresse et leur téléphone.
Il s'agit d'une petite entreprise artisanale de plomberie, chauffage et d'électricité qui travaille pour des particuliers qui construisent ou rénovent leur maison.
La société emploie :
M. Durand gérant de l'entreprise
Mme Durand secrétariat,
M. Durand fils chef de chantier
M. Duval chef magasinier
des ouvriers
C'est M. Durand qui s'occupe des contacts avec la clientèle et de la négociation des devis : après visite du client, il fait une offre (prestation, prix). Une discussion s'engage avec le client qui peut amener à modifier le devis initial. Par contre, le devis signé ne peut plus être modifié. Un devis se voit attribuer un numéro. Au final le devis devra faire apparaître les données suivantes :
numéro du devis ( calcué de façon incrémentale )
identification complète du client ( nom, prénom,adresse,téléphone,fax,e-mail)
lieu des travaux ( adresse complète )
la date de signature
la date du début des travaux
descriptif des prestations et coûts des prestations
montant global du devis
M. Durand n'accepte un chantier que si le client a signé au préalable un devis. Lorsque l'affaire est conclue, celle-ci est enregistrée et mise dans le planning des chantiers. Il faut alors rechercher les articles et les fournitures à commander aux fournisseurs : tout chantier doit démarrer à la date promise au client. Un chantier est caractérisé par :
numéro
identification complète du client
lieu des travaux
date début de chantier
durée chantier
liste des ouvriers affectés
liste des fournitures nécessaires
Les fournitures sont commandées directement aux représentants de différents grossistes lors de leur passage dans l'entreprise. C'est Mme Durand qui enregistre les devis signés en fin de semaine. Elle prépare les commandes aux fournisseurs (qui doivent être visées par M. Durand) et donne au magasinier la liste des articles à sortir au début du chantier. Elle est aussi en charge de la comptabilité.
Le chef magasinier est en charge des planning de travail, il choisit les produits à commander en fonction des devis et des catalogues fournisseurs, et organise les travaux sur les chantiers. M. Duval, chef magasinier, trie les articles lors de la livraison. Les articles courants (tuyaux de cuivre, colliers...) sont rangés dans des rayons par famille de produits et les articles spécifiques à un chantier sont rangés dans un casier spécial au nom du client. Un article est référencé par :
Code famille
Code produit
Libellé produit
Quantité en stock
Prix produit HT
On prépare un chantier huit jours avant son ouverture pour s'assurer que les articles nécessaires sont disponibles. Si ce n'est pas le cas, la secrétaire effectue une relance urgente auprès des fournisseurs. C'est lors de la préparation du chantier que sont affectés les ouvriers par le chef de chantier.
On vous fournit le dictionnaire des données suivant :
dDevis: Identifiant devis
DateS : Date signature devis
IdCli : Identifiant client
Nom : Nom du client
Adresse Fac : Adresse de facturation client
Adresse chantier : Adresse du chantier client
Tel: téléphone client
Idchantier : Identifiant chantier
Date début chantier
Durée chantier
IdPrestation : Identifiant Tache effectuée sur le chantier
Libelle prestation
Coût prestation : coût d'une tache
Montant global devis : Cout chantier à facturer ht (somme (coût chaque prestation) + somme (prix*qté) chaque prod)
Montant global devis TTC : Cout chantier à facturer ttc (Mont glob. devis * TVA)
IdOuvriers : Ouvrier travaillant ds l'entreprise
Nom ouvrier : Nom Ouvrier travaillant ds l'entreprise
Ouvriers affectés : Ouvrier de l'entreprise affecté à un chantier
Code produit : Id produit
Libelle Produit : Libelle du produit
Prix Produit ht : prix du produit à facturer
Qté en stock
Qté prod : Qté prod affectée à chantier
Code famille : Identifiant famille produit
Libelle famille : Libelle famille produit
Vous devez faire :
Le modèle conceptuel des données
Le modèle logique des données (modèle relationnel).












