Upload
others
View
65
Download
0
Embed Size (px)
Citation preview
MERISEMERISESGBDR / PHPMYADMIN SGBDR / PHPMYADMIN
SQL SQL
Raymond RAZAFIMAMONJY
[email protected] 1Copyright Raymond RAZAFIMAMONJY
MERISE Il existe plusieurs méthodes pour concevoir un système d'information informatisé, IMS (Information Management System), RACINES, MERISE, ...
La méthode IMS (Information Management System) : a débuté comme une base de
données hiérarchique créée par IBM en 1966 pour le compte de Rockwell et le programme
Apollo. Il fut utilisé pour suivre les factures des matériels pour le programme Saturn V.
IMS est toujours en fonctionnement une quarantaine d'années après son lancement et
[email protected] Copyright Raymond RAZAFIMAMONJY 2
IMS est toujours en fonctionnement une quarantaine d'années après son lancement et
continue à donner lieu à des développements sous le système d'exploitation MVS d'IBM
(OS/390, z/OS).
La méthode RACINES : est une méthode informatique destinée à étudier la stratégie du
système d'information. RACINES est un acronyme de rationalisation des Choix Informatiques.
Elle a pour but de définir des priorités d'informatisation par domaine dans le cadre d'un
fonctionnement global futur, en tenant compte des budgets et des calendriers.
MERISE La Méthode MERISE (Méthode d'Étude et de Réalisation Informatique pour les Systèmes
d'Entreprise) :
o Une représentation Merise permet de valider les choix par rapport aux objectifs,
o de quantifier les solutions retenues,
o de mettre en œuvre des techniques d'optimisation et enfin de guider jusqu'à
[email protected] Copyright Raymond RAZAFIMAMONJY 3
l'implémentation.
o Elle est certainement le langage de spécification le plus répandu dans la communauté
francophone de l'informatique des systèmes d'information, et plus particulièrement dans le
domaine des bases de données.
MERISE MERISE est une méthode française née dans les années 70, à la demande du Ministère de
l'Industrie qui souhaitait une méthode de conception des SI. Popularisé à partir des années 80.
MERISE est donc une méthode d'analyse et de conception des SI basée sur le principe de la
séparation des données et des traitements. Elle possède un certain nombre de modèles (ou
schémas) qui sont répartis sur 3 niveaux principaux :
[email protected] Copyright Raymond RAZAFIMAMONJY 4
o Le niveau conceptuel,
o Le niveau logique ou organisationnel,
o Le niveau physique.
Dans ce cours, nous ne nous intéresserons qu'à certains schémas permettant la conception
d'une base de données relationnelle puis sa réalisation sur un SGBDR.
MERISE
[email protected] Copyright Raymond RAZAFIMAMONJY 5
MERISE : Modèle Conceptuel de Communication
Prérequis : la notion d’Unité Fonctionnelle
Définitions:
Le dessin externe classique, utilisé pour représenter des fonctions, des traitements à
programmer, est celui des unités fonctionnelles.
Une U.F. (ou fonction logique) regroupe un ensemble de tâches réalisées sur un même
poste de travail, suivant un même mode de travail (conversationnel ou temps différé),
[email protected] Copyright Raymond RAZAFIMAMONJY 6
avec la même périodicité.
MERISE : Modèle Conceptuel de Communication
Prérequis : la notion d’Unité Fonctionnelle
On peut la positionner ainsi :
o Une entreprise se décompose en domaines, c'est à dire de très gros projets : gestion commerciale, gestion d'une bibliothèque, etc.
o Un domaine se décompose en applications (ou activités ou encore processus) : gestion des commandes, gestion des règlements, etc.
[email protected] Copyright Raymond RAZAFIMAMONJY 7
gestion des commandes, gestion des règlements, etc.
o Chaque application se décompose en fonctions : saisie de commandes, édition de bons de livraisons, etc.
o Une fonction est composée de tâches ou de modules fonctionnels : saisir les coordonnées d'un client, ...
o Enfin, chaque tâche est composée d'opérations élémentaires : saisie le n° du client, afficher un solde de compte, un nom de client, ...
MERISE : Modèle Conceptuel de Communication
Prérequis : la notion d’Unité Fonctionnelle
Formalisme des unités fonctionnelles.
Une U.F. est donc un ensemble de tâches déclenchées de deux façons possibles :
Interactive (ou conversationnelle) : Les U.F. ont pour origine un même type d'évènement(s), comme un coup de téléphone pour une commande peut provoquer la saisie d'une commande
Batch (ou différé) : Les U.F.ont pour origine une ou plusieurs restitution(s) à produire à une
[email protected] Copyright Raymond RAZAFIMAMONJY 8
Batch (ou différé) : Les U.F.ont pour origine une ou plusieurs restitution(s) à produire à une même date , par exemple l'édition de fin de mois des fiches de paie des salariés.
Voici maintenant les symboles utilisés pour décrire une U.F. :
MERISE : Modèle Conceptuel de Communication
Prérequis : la notion d’Unité Fonctionnelle
Construction et description.
Construction des U.F. :
Une première démarche consiste à partir du M.C.D.
Pour toute entité nous définissons une U.F. conversationnelle de mise à jour ou de consultation. Par mise à jour, nous entendons les opérations habituelles d'ajout, de modification et de suppression d'informations.
[email protected] Copyright Raymond RAZAFIMAMONJY 9
suppression d'informations.
Reprenons le M.C.D. traité dans ce cours :
A l'entité CLIENT correspond une U.F. de mise à jour :
MERISE : Modèle Conceptuel de Communication
Prérequis : la notion d’Unité Fonctionnelle
Description des U.F. :
Pour chaque unité fonctionnelle (organisationnelle), il faut décrire :
o Le but (l'objectif, l'usage ou le résultat demandé par l'utilisateur).
o La périodicité (quotidien, hebdomadaire, trimestriel, ...).
[email protected] Copyright Raymond RAZAFIMAMONJY 10
o Le responsable.
o Le dessin d'U.F. (ci dessus).
o Le descriptif de traitement.
Les fichiers logiques permanents, les tables d'une base de données sont décrits une fois en dehors des descriptifs d'unités fonctionnelles, car ils sont utilisés dans plusieurs U.F.
MERISE : Modèle Conceptuel de Communication
Prérequis : la notion d’Unité Fonctionnelle
Voyons maintenant la construction du dessin d'U.F. en lui-même. On représente par des ovales tous les fichiers avec lesquels l'U.F. doit être en relation.
Ces fichiers correspondent aux tables logiques du M.L.D ( Modèle Logique des Données) défini, c'est à dire aux entités et aux associations porteuses.
Ces fichiers sont reliés à l'U.F. selon la façon dont ils sont exploités par l'.U.F. : en lecture, en écriture ou en mise à jour (lecture/écriture).
[email protected] Copyright Raymond RAZAFIMAMONJY 11
écriture ou en mise à jour (lecture/écriture).
On représente un écran si, pour le traitement de l'U.F., il y a un besoin d'interactivité avec l'utilisateur. Ex : pour créer un nouveau client, il faut rentrer ses coordonnées.
Il en sera de même pour les états imprimés si, dans la gestion de l'U.F. il y a des documents à imprimer. Ex : établir un listing des clients.
Pour bien illustrer la construction d'U.F. voici celle qui correspond à la gestion des produits :
MERISE : Modèle Conceptuel de Communication
Prérequis : la notion d’Unité Fonctionnelle
U.F. de gestion des produits.
But : traitement des produits.Périodicité : tous les jours de 9h à 17h.Responsable : Service commercial.
[email protected] Copyright Raymond RAZAFIMAMONJY 12
Descriptif : La saisie s'effectue sur le N°produit. La mise à jour elle, sur le libellé du produit, le prix unitaire, son code TVA et la quantité. Enfin l'édition des catalogues de produits se fait par facture et/ou par magasins.
MERISE : Modèle Conceptuel de Communication
Prérequis : la notion d’Unité Fonctionnelle
Formalisme des diagrammes d'U.F.
Le diagramme d'unité fonctionnelle est un dessin d'U.F. dont les différents modules fonctionnels apparaissent distincts dans le dessin, alors que dans le formalisme d'une U.F ils n'apparaissent que dans le descriptif.
Une fonction n'est pas interruptible, c'est à dire qu'elle n'a pas besoin d'attendre d'autres entrées, ou évènements que ceux ayant provoqué le lancement du travail.
[email protected] Copyright Raymond RAZAFIMAMONJY 13
d'autres entrées, ou évènements que ceux ayant provoqué le lancement du travail.
Un module, en revanche n'est pas sécable : un découpage plus fin n'aurait aucun sens, au niveau de la compréhension externe (pour un utilisateur).
MERISE : Modèle Conceptuel de Communication
Prérequis : la notion d’Unité Fonctionnelle
Un D.U.F. correspond à la description plus fine d'une unité fonctionnelle. Ex : étudions la saisie d'un prêt dans une bibliothèque.
L'emprunteur choisit un livre dans la bibliothèque, et se présente à l'enregistrement du prêt de livre, voici ce qui pourrait se passer :
Le numéro de l'emprunteur est saisi, l'opérateur vérifie à l'écran le nom et l'état de l'emprunteur : le nombre de livres déjà empruntés, les dates de retour des livres
[email protected] Copyright Raymond RAZAFIMAMONJY 14
l'emprunteur : le nombre de livres déjà empruntés, les dates de retour des livres empruntés et pas encore rendus, ...
On saisit ensuite le ou les numéro(s) de livres à emprunter.Si tout est en ordre, le prêt est validé et les tables sont mises à jour.
MERISE : Modèle Conceptuel de Communication
Prérequis : la notion d’Unité Fonctionnelle
Construction des D.U.F.
La construction d'un D.U.F. se fait, comme pour les autre modèles, par touches successives, c'est à dire qu'on essaie une solution, et donc un découpage en modules fonctionnels, puis une autre, etc. jusqu'à l'obtention d'une solution satisfaisante.
Pour chaque module, on note à côté des objets mémorisés (fichiers, tables d'une base de données, ...), les rubriques nécessaires. Celles-ci ne coïncident pas toujours avec les
[email protected] Copyright Raymond RAZAFIMAMONJY 15
de données, ...), les rubriques nécessaires. Celles-ci ne coïncident pas toujours avec les rubriques affichées, car il peut exister des rubriques calculées, des constantes, les dates système, ... qui ne sont pas dans l'objet utilisé.
L'ensemble des D.U.F. permet de vérifier le modèle des données mémorisées, ou de le construire, car les D.U.F. donnent la totalité des informations élémentaires nécessaires aux différentes tâches.
MERISE : Modèle Conceptuel de Communication
Prérequis : la notion d’Unité Fonctionnelle
Construction des D.U.F :
Ex : continuons avec l'exemple du prêt de livre.
Nous définissons une exception E1 : il s'agit du cas où un emprunteur n'est pas en ordre (il n'est pas représenté dans le dessin par soucis de clarté, mais il faudrait le traiter ensuite).
[email protected] Copyright Raymond RAZAFIMAMONJY 16
L'exception E2 correspond au cas où un livre ne peut pas être sorti de la bibliothèque. Voici le D.U.F. correspondant au scénario du prêt de livre :
MERISE : Modèle Conceptuel de Communication
Prérequis : la notion d’Unité Fonctionnelle
Construction des D.U.F : DUF SAISIE D’UN PRET
[email protected] Copyright Raymond RAZAFIMAMONJY 17
MERISE : Modèle Conceptuel de Communication
Prérequis : la notion d’Unité Fonctionnelle
Construction des D.U.F :
Pour les manipulations d'objets :
oUne flèche vers la gauche représente une lecture.oUne flèche vers la droite représente une écriture (ou une création).oUne double flèche représente la mise à jour d'une rubrique d'une occurence déjà existante.
[email protected] Copyright Raymond RAZAFIMAMONJY 18
Ce formalisme peut aussi être utilisé dans une description organique,il faut alors être plus précis sur les accès aux tables, les contrôles, ... Il faut aussi envisager d'autres cas exceptionnels comme les N° livre ou N°emprunteur inexistants.
MERISE : Modèle Conceptuel de Communication
DEFINITION
Le modèle conceptuel de communication (M.C.C.) a pour but de modéliser les arcs de
communication entre les différents intervenants (ou acteurs) d'un projet ou d'une
application.
Nous avons vu dans le chapitre sur les U.F. que chaque projet était successivement
décomposé en applications, en fonctions, en modules fonctionnels, puis en opérations
[email protected] Copyright Raymond RAZAFIMAMONJY 19
décomposé en applications, en fonctions, en modules fonctionnels, puis en opérations
élémentaires.
Les U.F. représentaient les modules fonctionnels.
Dans le M.C.C. nous reprenons tous les modules pour modéliser les liens qui les
relient.
MERISE : Modèle Conceptuel de Communication
FORMALISME DU MCCLe M.C.C. représente les acteurs et les arcs de communication entre ces acteurs. Il faut cependant
définir deux types d'acteurs, selon un référentiel que l'on choisira (dans la plupart des cas, le référentiel
sera l'entreprise, ou le service responsable du projet à traiter) :
Les acteurs qui appartiennent au référentiel (Ex : service vente, service comptable, ...).
Les acteurs qui sont en dehors du référentiel (Ex: client, fournisseur, ...).
[email protected] Copyright Raymond RAZAFIMAMONJY 20
Un acteur est modélisé de la façon suivante :
un flux (ou arc) sera modélisé de cette façon :
arc de communication, tout en sachant qu'un flux interne (dans le référentiel) doit avoir une origine. Il
existe 3 types d'origine pour un flux :
Un flux n peut avoir pour origine un flux n-1.
Un flux peut découler d'une décision (notée D).
Un flux peut enfin provenir d'une temporisation (Ex : fin de mois, +60 jours, etc).
MERISE : Modèle Conceptuel de Communication
FORMALISME DU MCC
Un flux n peut avoir pour origine un flux n-1.
Un flux peut découler d'une décision (notée D).
Un flux peut enfin provenir d'une temporisation (Ex : fin de mois, +60 jours, etc).
[email protected] Copyright Raymond RAZAFIMAMONJY 21
Dans un M.C.C. nous faisons abstraction du support de communication pour représenter les flux. Nous n'indiquons pas s'il s'agit d'un document manuscrit, imprimé, d'un fax ou du téléphone ...
MERISE : Modèle Conceptuel de Communication
CONSTRUCTION DU MCC
Pour comprendre la construction d'un M.C.C. voici un exemple :
Une entreprise commerciale est constituée de trois services principaux :
ventes, comptabilité et magasin.
Pour chaque commande passée, le bon est transmis du service vente au service
comptabilité qui envoie la facture au client (qui lui, renverra le règlement).
Le service ventes enverra un bon de sortie au magasin pour le déstockage. Ce dernier
[email protected] Copyright Raymond RAZAFIMAMONJY 22
Le service ventes enverra un bon de sortie au magasin pour le déstockage. Ce dernier
envoie le bon de livraison et la commande au client.
En ce qui concerne les stocks, c'est le magasin qui décide seul du réapprovisionnement.
On dénombre cinq acteurs : Client, Service ventes, Service comptabilité, Magasin et
Fournisseur.
On dénombre ensuite sept flux :
MERISE : Modèle Conceptuel de Communication
CONSTRUCTION DU MCC
On dénombre ensuite sept flux :
(1) et (2) Bon de commande : (du client au service ventes et du service ventes au service
comptabilité).
(3) Facture : du servie comptabilité au client.
(4 )Règlement : du client au service comptabilité.
(5 )Bon de sortie : du service ventes au magasin.
[email protected] Copyright Raymond RAZAFIMAMONJY 23
(5 )Bon de sortie : du service ventes au magasin.
(6 )Bon de livraison+commande : du magasin vers le client.
(7 )Bon de commande fournisseur : du magasin vers le fournisseur.
MERISE : Modèle Conceptuel de Communication
CONSTRUCTION DU MCC
Pour plus de lisibilité et de commodité, seuls les numéros des flux apparaissent sur le graphique.
Rappel : Le référentiel est l’ensemble des acteurs interne de l’entreprise.
[email protected] Copyright Raymond RAZAFIMAMONJY 24
MERISE : Modèle Conceptuel de Communication
EXERCICE
Voici la description du fonctionnement d'une société de services :
Modélisation du système de gestion des affaires d'une société de service.
Le Service Commercial est chargé d'examiner les études de demande client (cahier des charges). Si ceux-ci correspondent à l'activité de la société, le dossier est transmis à la Direction Technique qui élabore un devis estimatif. Celui-ci est complété au Service Commercial, édité et envoyé au client pour accord.
[email protected] Copyright Raymond RAZAFIMAMONJY 25
Si le devis commercial est accepté par le client, le Service Commercial adresse une demande d'étude technique au Service Technique. Le Directeur Technique élabore des devis techniques qui correspondent à un découpage en lots du devis technique.
Chaque devis est transmis à un Chef de Projet. Celui-ci procède à un nouveau découpage technique du devis et établit le planning de réalisation en affectant chacun des postes du devis technique à un Analyste Programmeur.
MERISE : Modèle Conceptuel de Communication
EXERCICE
Les Analystes Programmeurs établissent journalièrement un compte rendu d'activité. Chaque semaine, le Chef de Projet édite un rapport d'avancement et informe la Direction Technique de la situation des travaux en cours.
Lorsqu'un poste du devis technique est réalisé, le chef de Projet transmet les programmes au client qui établit un procès verbal de réception. La recette est signalée au Service Comptable pour facturation.
[email protected] Copyright Raymond RAZAFIMAMONJY 26
Chaque mois, une proposition de facture est établie par le Service Comptable et transmise à la Direction Technique pour être validée. Cette proposition correspond à l'ensemble des lignes du devis commercial non facturées.
Les factures sont ensuite éditées et envoyées au client par le Service Comptable.
MERISE : Modèle Conceptuel de Communication
EXERCICE
Etablir le M.C.C. correspondant à l'organisation de cette société, en mettant en scène les acteurs
suivants, et en prenant la société comme référentiel :
oLe Client.
oLe Service Commercial.
oLa Direction Technique.
[email protected] Copyright Raymond RAZAFIMAMONJY 27
oLa Direction Technique.
oLe Chef de Projet.
oL'Analyste Programmeur.
oLe Service Comptable.
MERISE : Modèle Conceptuel de Communication
EXERCICE
[email protected] Copyright Raymond RAZAFIMAMONJY 28
MERISE : Modèle Conceptuel de Communication
EXERCICE
[email protected] Copyright Raymond RAZAFIMAMONJY 29
MERISE : Modèle Conceptuel des Traitements (M.C.T)
Definition
Tout comme le M.C.C. (chapitre précédent) représentait les arcs de communications, le
M.C.T. a pour principal but de modéliser les traitements d'une application. En cela, il
complète le M.C.C. et se construit à partir de ce dernier et du M.C.D. Pour comprendre un
M.C.T. il faut d'abord connaître les notions suivantes :
Processus.
[email protected] Copyright Raymond RAZAFIMAMONJY 30
o Processus.
o Evènement.
o Opération.
o Résultat.
MERISE : Modèle Conceptuel des Traitements (M.C.T)
FORMALISME
Le M.C.T. est l'ensemble des traitements, chaque traitement correspondant à un processus.
Un processus est composé :
od'évènements,
od'opérations
oet de résultats.
Voici un exemple de processus :
[email protected] Copyright Raymond RAZAFIMAMONJY 31
Voici un exemple de processus :
On notera les évènements E1, E2, E3, ...
Les opérations sont notées Op.1, Op.2, ...
et les résultats sont marqués R.
MERISE : Modèle Conceptuel des Traitements (M.C.T)
FORMALISME
Les évènements : qu'ils soient externes ou internes, il peut y avoir de 1 à n évènement déclenchant un processus ou une opération.
Tout processus commence par un évènement soit externe, soit interne répondant à une de ces deux caractéristiques :
Temporisation (Ex : fin de mois, à une heure donnée, ...)Décision (comme dans le M.C.C.).
[email protected] Copyright Raymond RAZAFIMAMONJY 32
Décision (comme dans le M.C.C.).
Les flèches arrivant aux opérations sont notées :
ET, s'il y a nécessité des tous les résultats à l'entrée de l'opération (Ex : R2 et E2).OU, si l'un des résultats n'est pas nécessaire (Ex : R1 et R5).VIDE, s'il n'y a besoin d'aucune condition (Ex : E1, R3).
On peut très bien avoir plusieurs conditions à l'entrée d'une opération (Ex : Rx et (Ry ou Rz)).
MERISE : Modèle Conceptuel des Traitements (M.C.T)
FORMALISME
Les opérations : elles consistent en un ensemble de traitements élémentaires à effectuer sur les évènements arrivant, en lui ajoutant une valeur abstraite ou concrète.La partie supérieure de l'opération est une description de cet ensemble de tâches. La partie inférieure correspond à une règle d'émission des résultats :
T correspond à toujours (Ex : Op.1, 3 et 4).OK signifie que l'opération est validée et renvoie un résultat bien précis (Ex : Op.2).
(OK barre) signifie que l'opération non validée donne un résultat différent (Ex : Op.2).
[email protected] Copyright Raymond RAZAFIMAMONJY 33
Dans ce cas aussi, il se peut qu'il y ait des règles d'émission de résultats complexes.
Les résultats : ils sont une valeur ajoutée au(x) flux entrant de l'opération et peuvent être de deux types diférents :Valeur concrète : un nouvel objet est créé. (Ex : R1, R2, R3, R5).Valeur abstraite : mise à jour d'un flux entrant (Ex : R4, R6, R7).
Il est à noter que les résultats peuvent devenir des évènements pour les opération suivantes (Ex : R1, R2, R3, R5).
MERISE : Modèle Conceptuel des Traitements (M.C.T)
Démarche de construction du M.C.T.
Les règles de construction de processus étant établies, il reste à dénombrer ces processus
et à définir leur points de départ et d'arrivée.
Basons-nous sur un exemple pour procéder à ce découpage :
[email protected] Copyright Raymond RAZAFIMAMONJY 34
MERISE : Modèle Conceptuel des Traitements (M.C.T)
Démarche de construction du M.C.T.
Les règles de construction de processus étant établies, il reste à dénombrer ces processus
et à définir leur points de départ et d'arrivée.
Basons-nous sur un exemple pour procéder à ce découpage :
En règle générale, on peut distinguer trois types de points de départ pour la construction
d'un processus :
[email protected] Copyright Raymond RAZAFIMAMONJY 35
d'un processus :
Tout flux externe entrant.
Toute temporisation (ici il s'agit de l'origine du quatrième flux).
Toute décision, peuvent être considérés comme points de départ.
MERISE : Modèle Conceptuel des Traitements (M.C.T)
Démarche de construction du M.C.T.
Si on observe attentivement le M.C.C. ci-dessus, nous dénombrons ainsi quatre processus.
[email protected] Copyright Raymond RAZAFIMAMONJY 36
Si on observe attentivement le M.C.C. ci-dessus, nous dénombrons ainsi quatre processus.
Numérotons les et donnons en une courte description :
Processus P1 : Gestion de la commande (déclenché par le bon de commande).
Processus P2 : Gestion des règlements (déclenché par le règlement).
Processus P3 : Gestion des relances (déclenché par H/fin de semaine).
Processus P4 : Gestion des fournisseurs (déclenché par décision du magasin).
MERISE : Modèle Conceptuel des Traitements (M.C.T)
Démarche de construction du M.C.T.
Processus P1 : Gestion de la commande (déclenché par le bon de commande).
[email protected] Copyright Raymond RAZAFIMAMONJY 37
MERISE : Modèle Conceptuel des Traitements (M.C.T)
Démarche de construction du M.C.T.
Processus P2 : Gestion des règlements (déclenché par le règlement).
[email protected] Copyright Raymond RAZAFIMAMONJY 38
MERISE : Modèle Conceptuel des Traitements (M.C.T)
Démarche de construction du M.C.T.
Processus P3 : Gestion des relances (déclenché par H/fin de semaine).
[email protected] Copyright Raymond RAZAFIMAMONJY 39
MERISE : Modèle Conceptuel des Traitements (M.C.T)
Démarche de construction du M.C.T.
Processus P4 : Gestion des fournisseurs (déclenché par décision du magasin).
[email protected] Copyright Raymond RAZAFIMAMONJY 40
MERISE : Modèle Conceptuel des Traitements (M.C.T)
Démarche de construction du M.C.T.
Gestion des invariants:
Le M.C.T. a pour but de construire tous les processus, or si nous n'analysons que le M.C.C.
on se rend compte que nous n'avons étudié que les processus sur les flux.
Il faut repérer les invariants, sur les quels on ne dispose pas de processus de gestion.
[email protected] Copyright Raymond RAZAFIMAMONJY 41
Dans l'exemple que nous avons traité ici, on ne possède pas de processus sur la gestion des
clients.
Il faut donc faire le M.C.T. sur l'invariant CLIENT.
MERISE : Modèle Conceptuel des Traitements (M.C.T)
Démarche de construction du M.C.T.
Le M.C.T. sur invariant est constitué de quatre parties :
Création : Il faut notifier le mode de création de l'identifiant (manuel, automatique, semi-
automatique), les éléments obligatoires en cas de création, les éléments facultatifs et les
conditions de création.
Suppression : Il faut préciser ce qui est supprimé, les conditions de suppression, s'il y a une
[email protected] Copyright Raymond RAZAFIMAMONJY 42
trace de la suppression ou non.
Consultation : Il faut spécifier les critères d'accès, et ce que l'on peut consulter ou pas.
Modification : Il faut préciser les modes de suppression (individuel, global, mixte), et
prévoir les conséquences des modifications (voire même insérer une date d'effet pour
certaines modifications).
MERISE : Modèle Conceptuel des Traitements (M.C.T)
EXERCICE 1
Soit le M.C.C de la « Gestion des approvisionnement » suivants.
Etablissez sa M.C.T
[email protected] Copyright Raymond RAZAFIMAMONJY 43
MERISE : Modèle Conceptuel des Traitements (M.C.T)
EXERCICE 1
M.C.T de la « Gestion des approvisionnement»
[email protected] Copyright Raymond RAZAFIMAMONJY 44
MERISE : Modèle Conceptuel des Traitements (M.C.T)
EXERCICE 1
M.C.T
Gestion des approvisionnement
[email protected] Copyright Raymond RAZAFIMAMONJY 45
MERISE : Modèle Conceptuel des Traitements (M.C.T)
EXERCICE 2
Soit le M.C.C de la « Gestion des cartes bleues» suivants.
Etablissez sa M.C.T
[email protected] Copyright Raymond RAZAFIMAMONJY 46
MERISE : Modèle Conceptuel des Traitements (M.C.T)
EXERCICE 2
M.C.T Gestion des cartes bleues
[email protected] Copyright Raymond RAZAFIMAMONJY 47
MERISE : Modèle Conceptuel des Traitements (M.C.T)
EXERCICE 1
M.C.T Gestion des cartes bleues
[email protected] Copyright Raymond RAZAFIMAMONJY 48
MERISE : Modèle Conceptuel des Données (M.C.D)
C'est une représentation graphique et structurée des informations mémorisées par un SI.
Le MCD est basé sur deux notions principales :
Les entités et les associations, d'où sa seconde appellation : le schéma Entité/Association.
L'élaboration du MCD passe par les étapes suivantes :
La mise en place de règles de gestion (si celles-ci ne vous sont pas données),
[email protected] Copyright Raymond RAZAFIMAMONJY 49
La mise en place de règles de gestion (si celles-ci ne vous sont pas données),
L'élaboration du dictionnaire des données,
La recherche des dépendances fonctionnelles entre ces données,
L'élaboration du MCD (création des entités puis des associations puis ajout des
cardinalités).
MERISE : Modèle Conceptuel des Données (M.C.D)
Les règles de gestion métiers
Avant de vous lancer dans la création de vos tables (ou même de vos entités et associations pour rester dans un vocabulaire conceptuel), il vous faut recueillir les besoins des futurs utilisateurs de votre application.
Et à partir de ces besoins, vous devez être en mesure d'établir les règles de gestion des données à conserver.
Prenons l'exemple d'un développeur qui doit informatiser le SI d'une bibliothèque.
[email protected] Copyright Raymond RAZAFIMAMONJY 50
Prenons l'exemple d'un développeur qui doit informatiser le SI d'une bibliothèque. On lui fixe les règles de gestion suivantes :
Pour chaque livre, on doit connaître le titre, l'année de parution, un résumé et le type (roman, poésie, science fiction, ...).
Un livre peut être rédigé par aucun auteur (dans le cas d'une œuvre anonyme), un auteur ou plusieurs auteurs dont on connaît le nom, le prénom, la date de naissance et le pays d'origine.
MERISE : Modèle Conceptuel des Données (M.C.D)
Les règles de gestion métiers
Chaque exemplaire d'un livre est identifié par une référence composée de lettres et de chiffres et ne peut être paru que dans une et une seule édition.
Un inscrit est identifié par un numéro et on doit mémoriser son nom, prénom, adresse, téléphone et adresse e-mail.
Un inscrit peut faire zéro, un ou plusieurs emprunts qui concernent chacun un et un seul
[email protected] Copyright Raymond RAZAFIMAMONJY 51
Un inscrit peut faire zéro, un ou plusieurs emprunts qui concernent chacun un et un seul exemplaire.
Pour chaque emprunt, on connaît la date et le délai accordé (en nombre de jours).
MERISE : Modèle Conceptuel des Données (M.C.D)
Les règles de gestion métiers
Ces règles vous sont parfois données mais vous pouvez être amené à les établir vous-même dans deux cas :
Vous êtes à la fois maîtrise d'œuvre (MOE) et maîtrise d'ouvrage (MOA), et vous développez une application pour votre compte et/ou selon vos propres directives.
Ce qui arrive le plus souvent : les futurs utilisateurs de votre projet n'ont pas été en mesure
[email protected] Copyright Raymond RAZAFIMAMONJY 52
Ce qui arrive le plus souvent : les futurs utilisateurs de votre projet n'ont pas été en mesure de vous fournir ces règles avec suffisamment de précision ; c'est pourquoi vous devrez les interroger afin d'établir vous même ces règles.
N'oubliez jamais qu'en tant que développeur, vous avez un devoir d'assistance à maîtrise d'ouvrage si cela s'avère nécessaire.
MERISE : Modèle Conceptuel des Données (M.C.D)
Le dictionnaire des données
Structure d'un système automatisé d'informations:
Une application informatique (logiciel, jeux, ...) est constituée de trois composantes
fonctionnelles principales :
[email protected] Copyright Raymond RAZAFIMAMONJY 53
Une fonction d'interface utilisateur/machine qui consiste à définir les informations à saisir,
et celles à transmettre à l'utilisateur.
Une fonction de mémorisation qui a pour but de stocker ces informations (scores,
sauvegardes, documents, ...) sur des supports externes. Cette fonction implique une
structuration des données sous forme de fichiers ou de bases de données.
MERISE : Modèle Conceptuel des Données (M.C.D)
Le dictionnaire des données
Une fonction de traitement effectuée à partir des informations saisies et mémorisées.
Les traitements se distinguent en quatre catégories fondamentales :
Les contrôles : ils permettent de valider les données saisies et de s'assurer de leurs conformité (vraisemblance d'une date, prix et quantité commandée supérieurs à zéro, ...)
Les mises à jour : elles permettent l'évolution des informations mémorisées par ajout,
[email protected] Copyright Raymond RAZAFIMAMONJY 54
Les mises à jour : elles permettent l'évolution des informations mémorisées par ajout, suppression ou modification (augmentation d'un prix, suppression d'un article dans une commande).La consultation : les critères de selection permis peuvent avoir une influence sur l'organisation et la structuration des données mémorisées, sur la rapidité d'un programme, ...Les calculs : ils doivent respecter certaines règles de gestion, d'algorithme. Ex : Prix TTC = Prix HT +TVA.
MERISE : Modèle Conceptuel des Données (M.C.D)
Le dictionnaire des donnéesLes Informations:
Toute information manipulée possède cinq caractéristiques, plus ou moins importantes :Le nom : il paraît évident que chaque information doit posséder un nom unique et propre à elle : il ne doit pas y avoir de polysémie, ni de synonymes.
Polysémie :
Deux noms d'informations sont polysémiés, si elles ont le même nom et expriment des valeurs différentes.
[email protected] Copyright Raymond RAZAFIMAMONJY 55
valeurs différentes. Ex : la date de facturation a le nom DATE et la date de commande a le nom DATE elle aussi, alors qu'il s'agit de deux dates différentes. On peut les renommer DATE_FACT pour la première et DATE_CDE pour la seconde.
Synonyme :
Les noms synonymes sont des noms qui représentent deux fois la même propriété. Ex : dans un document le nom du client est nommé NOM_CLIENT, dans un autre il est nommé NOM_DU_CLIENT. Tous deux représentent la même propriété : le nom du client .Dans un cas de redondance, il faut donc supprimer l'un des deux champ.
MERISE : Modèle Conceptuel des Données (M.C.D)
Le dictionnaire des données
Les Informations :
La nature :
Une information peut être calculée ou non.
Une information non calculée (NC) est un champ de texte, ou un nombre dont on ne sert pas pour des calculs. Ex : le nom d'un client, son adresse, un numéro de téléphone ou le code postal.
[email protected] Copyright Raymond RAZAFIMAMONJY 56
Ex : le nom d'un client, son adresse, un numéro de téléphone ou le code postal.
Une donnée calculée (C) peut l'être à partir d'autres données calculées ou non. Ex : montant HT (C) = quantité (NC) * prix HT (NC).
En revanche, une quantité en stock, par exemple, est calculée comme suit : quantité en stock = ancien stock + somme des entrées - somme des sorties. Une telle donnée pourra être calculée et mémorisées (CM).
MERISE : Modèle Conceptuel des Données (M.C.D)
Le dictionnaire des données
Les Informations:
Le type : une information peut se caractériser par des types différents :
D pour une date (JJ/MM/AAAA),
A pour une donnée alphanumérique,
N pour un nombre,
[email protected] Copyright Raymond RAZAFIMAMONJY 57
N pour un nombre,
B pour une valeur booléenne (vrai ou faux).
La longueur : il convient de donner une longueur à chaque donnée, en nombre de
caractères ou de chiffres.
Les observations : pour chaque propriété, on peut associer un commentaire ou une
remarque, qui pourra aider.
Ex : pour une date on peut indiquer qu'elle est sous la forme JJ/MM/AAAA.
MERISE : Modèle Conceptuel des Données (M.C.D)
Le dictionnaire des données
En résumé, toute propriété est caractérisée par :
L'ensemble des propriétés d'un système d'informations compose ainsi un Dictionnaire Global (ou Brut) des Données.
[email protected] Copyright Raymond RAZAFIMAMONJY 58
Global (ou Brut) des Données.
Remarque : On pourra trouver le terme de PROPRIETE à la place d'INFORMATION, ou vice-versa, sachant que chacun des deux termes désignent la même chose.
Reprenons l'exemple de notre bibliothèque et du système de gestion des emprunts que nous
sommes chargés d'informatiser.
Après l'étude des règles de gestion, nous pouvons établir le dictionnaire des données suivant
MERISE : Modèle Conceptuel des Données (M.C.D)
Le dictionnaire des données
[email protected] Copyright Raymond RAZAFIMAMONJY 59
MERISE : Modèle Conceptuel des Données (M.C.D)
Le dictionnaire des données : Exercice
Construction d'un Dictionnaire Global des Informations.
Le dictionnaire doit être constitué après l'étude physique de l'existant (phase de recueil).
L'analyse des fiches, des documents, des fichiers permet de construire le dictionnaire.
L'étude des travaux, des postes de travail et des tâches déjà informatisées, permet de mettre en évidence les règles de gestion et d'organisation.
[email protected] Copyright Raymond RAZAFIMAMONJY 60
mettre en évidence les règles de gestion et d'organisation.
Ex : examinons les deux documents suivants et construisons le dictionnaire des données.
MERISE : Modèle Conceptuel des Données (M.C.D)
Le dictionnaire des données : Exercice
Ex : examinons les deux documents suivants et construisons le dictionnaire des données.
[email protected] Copyright Raymond RAZAFIMAMONJY 61
MERISE : Modèle Conceptuel des Données (M.C.D)
Le dictionnaire des données : Exercice
Ex : examinons les deux documents suivants et construisons le dictionnaire des données.
Voici un indice
[email protected] Copyright Raymond RAZAFIMAMONJY 62
MERISE : Modèle Conceptuel des Données (M.C.D)
Le dictionnaire des données : Exercice
Ex : examinons les deux documents suivants et construisons le dictionnaire des données.Résultats de la première ébauche
[email protected] Copyright Raymond RAZAFIMAMONJY 63
MERISE : Modèle Conceptuel des Données (M.C.D)
Le dictionnaire des données : Exercice
Ex : examinons les deux documents suivants et construisons le dictionnaire des données.
Résultats de la première ébauche
Nous remarquons que les informations non calculées (NC) étant les plus fréquentes,
nous n'inscrirons dans la colonne NATURE, que les informations calculées (C) et calculées
mémorisées (CM), afin de faciliter la rédaction du dictionnaire.
Sur ce dictionnaire, ne figurent pas les date de facturation et la date de l'état des stocks,
[email protected] Copyright Raymond RAZAFIMAMONJY 64
cela signifie que dans chaque dictionnaire, nous ne nous occuperons pas de :
odate système.
otouches de fonctions.
onuméros de pages (documents imprimés).
MERISE : Modèle Conceptuel des Données (M.C.D)
Le dictionnaire des données : Exercice
Dans la colonne OBSERVATIONS, nous avons utilisé les termes règle 1, règle 2, ... pour montrer que ces propriétés étaient liées à des règles de gestion. Il est nécessaire de préciser ces règles :
règle 1 : Une information Total HT est égal à la somme des prix unitaires HT des produits soumis au même taux de TVA.
règle 2 : Le montant TVA est égal au Total HT multiplié par le taux de TVA correspondant.
[email protected] Copyright Raymond RAZAFIMAMONJY 65
règle 3 : Le montant TTC est égal à la somme des informations Total HT plus les différents montants de TVA.
règle 4 : La quantité en stock est, pour une période donnée, et pour chaque magasin, obtenue à partir de l'ancienne valeur à laquelle on ajoute la somme des entrées et à laquelle on soustrait la somme des sorties.
A cette étape, il est important de vérifier qu'il n'existe pas de polysémies ou de synonymes pour les noms. L'exemple du dessus contient un polysémie N°produit et un synonyme (Libellé produit et Désignation produit).
MERISE : Modèle Conceptuel des Données (M.C.D)
Le dictionnaire des données : Exercice
Résultats de la deuxième ébauche
[email protected] Copyright Raymond RAZAFIMAMONJY 66
Le dictionnaire des données n'est jamais figé, il est sans cesse complété et enrichi par de nouvelles données dans le cycle de vie du projet. Toutes les propriétés, mêmes celles calculées, doivent être recensées dans ce dictionnaire en début.
MERISE : Modèle Conceptuel des Données (M.C.D)
Le dictionnaire des données : Exercice
Le dictionnaire des données n'est jamais figé, il est sans cesse complété et enrichi par de nouvelles données dans le cycle de vie du projet. Toutes les propriétés, mêmes celles calculées, doivent être recensées dans ce dictionnaire en début.Cependant afin d’affiner et de finaliser le dictionnaires , il faut respecter la règle suivante :
Les données qui figurent dans le MCD (et donc dans le dictionnaire des données) doivent être, dans la plupart des cas, élémentaires :
[email protected] Copyright Raymond RAZAFIMAMONJY 67
Elles ne doivent pas être calculées : les données calculées doivent être obtenues, par le calcul, à partir de données élémentaires qui, elles, sont conservées en base. Cependant, il existe quelques cas où il s'avère pertinent de conserver, pour des raisons d'optimisation, une donnée calculée, le montant d'une commande par exemple.
On ne conservera pas les données calculées intermédiaires sauf en cas d'obligation légale (c'est le cas pour un montant HT par exemple, où les composantes peuvent d'ailleurs avoir un prix variable dans le temps). Cela évite de refaire les calculs plusieurs fois pour un résultat qui restera fixe.
MERISE : Modèle Conceptuel des Données (M.C.D)
Le dictionnaire des données : Exercice
Elles ne doivent pas être composées :
les données composées doivent être obtenues par la concaténation de données
élémentaires conservées en base.
Par exemple une adresse est obtenue à partir d'une rue, d'une ville et d'un code postal :
ce sont ces trois dernières données qui sont conservées et donc qui figureront dans le
MCD (et dans le dictionnaire des données).
[email protected] Copyright Raymond RAZAFIMAMONJY 68
MCD (et dans le dictionnaire des données).
Lorsque l'on n‘effectue jamais de calcul sur une donnée numérique, celle-ci doit être de
type AN (c'est le cas par exemple pour un numéro de téléphone).
MERISE : Modèle Conceptuel des Données (M.C.D)
Le dictionnaire des données : Exercice
Construction d'un Dictionnaire Epuré des Informations:
Cette étape consiste à recopier le dictionnaire global des informations en ne conservant
que les données non calculées (NC) et calculées mémorisées (CM).
L'étude des règles de gestion et de calcul permet parfois de découvrir de nouvelles
informations qui n'étaient pas présentes dans les documents fournis.
[email protected] Copyright Raymond RAZAFIMAMONJY 69
informations qui n'étaient pas présentes dans les documents fournis.
Ex : ici, il faut ajouter les propriétés Taux de TVA et Sortie de stock, en raison des règles de
gestion énoncées plus haut.
La dernière étape consiste à classer par ordre alphabétique sur le nom, le dictionnaire
épuré.
Et voici, le dictionnaire épuré final.
MERISE : Modèle Conceptuel des Données (M.C.D)
Le dictionnaire des données : Exercice
Construction d'un Dictionnaire Epuré des Informations:
Cette étape consiste à recopier le dictionnaire global des informations en ne conservant que les données non calculées (NC) et calculées mémorisées (CM).
L'étude des règles de gestion et de calcul permet parfois de découvrir de nouvelles informations qui n'étaient pas présentes dans les documents fournis. Ex : ici, il faut ajouter les propriétés Taux de TVA et Sortie de stock, en raison des règles de gestion énoncées plus haut.
[email protected] Copyright Raymond RAZAFIMAMONJY 70
énoncées plus haut.
La dernière étape consiste à classer par ordre alphabétique sur le nom, le dictionnaire épuré.Et voici, le dictionnaire épuré final.
MERISE : Modèle Conceptuel des Données (M.C.D)
Le dictionnaire des données : Exercice
Construction d'un Dictionnaire Epuré des Informations:
[email protected] Copyright Raymond RAZAFIMAMONJY 71
Il est à noter qu'il n'est pas nécessaire d'inclure la colonne DOCUMENT dans le dictionnaire épuré des données.
MERISE : Modèle Conceptuel des Données (M.C.D)
Le dictionnaire des données : Exercice
Construction d'un Dictionnaire Epuré des Informations:
[email protected] Copyright Raymond RAZAFIMAMONJY 72
Il est à noter qu'il n'est pas nécessaire d'inclure la colonne DOCUMENT dans le dictionnaire épuré des données.
MERISE : Modèle Conceptuel des Données (M.C.D)
Les dépendances fonctionnelles
Soit deux propriétés (ou données) P1 et P2. On dit que P1 et P2 sont reliées par une dépendance fonctionnelle (DF) si et seulement si une occurrence (ou valeur) de P1 permet de connaître une et une seule occurrence de P2.
Cette dépendance est représentée comme ceci :P1 → P2On dit que P1 est la source de la DF et que P2 en est le but.Cas d’une dépendances fonctionnelles élémentaire.
[email protected] Copyright Raymond RAZAFIMAMONJY 73
Par ailleurs, plusieurs données peuvent être source comme plusieurs données peuvent être but d'une DF. Exemples :P1,P2 → P3P1 → P2,P3P1, P2 → P3,P4,P5Cas d’une dépendances fonctionnelles composées
MERISE : Modèle Conceptuel des Données (M.C.D)
Les dépendances fonctionnelles
…
En reprenant les données du dictionnaire précédent, on peut établir les DF suivantes :
id_em → date_em, delais_em, id_i, ref_eid_i → nom_i, prenom_i, rue_i, ville_i, cp_i, tel_i, tel_port_i, email_i, date_naissance_iref_e → id_lid_l → titre_l, annee_l, resume_l, id_t, id_edid_t → libelle_t
[email protected] Copyright Raymond RAZAFIMAMONJY 74
id_t → libelle_tid_ed → nom_edid_a → nom_a, prenom_a, date_naissance_a, nom_p
MERISE : Modèle Conceptuel des Données (M.C.D)
Les dépendances fonctionnelles
On peut déduire les conclusions suivantes de ces DF :
À partir d'un numéro d'emprunt, on obtient une date d'emprunt, un délai, l'identifiant de l'inscrit ayant effectué l'emprunt, la référence de l'exemplaire emprunté.
À partir d'une référence d'exemplaire, on obtient l'identifiant du livre
[email protected] Copyright Raymond RAZAFIMAMONJY 75
À partir d'une référence d'exemplaire, on obtient l'identifiant du livre correspondant.
À partir d'un numéro de livre, on obtient son titre, son année de parution, un résumé, l'identifiant du type correspondant, son numéro d'édition.
MERISE : Modèle Conceptuel des Données (M.C.D)
Les dépendances fonctionnelles
Une DF doit être :
élémentaire : C'est l'intégralité de la source qui doit déterminer le but d'une DF. Par exemple si P1 → P3 alors P1,P2 → P3 n'est pas élémentaire.
Dépendance fonctionnelle Dépendance fonctionnelle élementaireélementaire::
Une dépendance Fonc]onnelle de A → B est élémentaire s'il n’existe pas une donnée C, sous-ensemble de A, décrivant une dépendance de type C → B.
[email protected] Copyright Raymond RAZAFIMAMONJY 76
C, sous-ensemble de A, décrivant une dépendance de type C → B.
Exemple:
RéférenceProduit → Désigna]on
NuméroCommande, RéférenceProduit → Quan]té
NuméroCommande, RéférenceProduit → Désigna]on
MERISE : Modèle Conceptuel des Données (M.C.D)
Les dépendances fonctionnelles
1. RéférenceProduit→ Désignation2. NuméroCommande, RéférenceProduit→ Quantité (df composée)3. NuméroCommande, RéférenceProduit→ Désignation
La première dépendance fonctionnelle est correcte car ayant deux rubriques elle est élémentaire.
La deuxième dépendance fonctionnelle est correcte aussi car la connaissance d'un numéro de commande et d'une référence produit nous permet de connaitre la
[email protected] Copyright Raymond RAZAFIMAMONJY 77
numéro de commande et d'une référence produit nous permet de connaitre la quantité commandé du produit.Elle est aussi élémentaire car c'est la connaissance du couple (NuméroCommande, RéférenceProduit) et pas seulement d'un des éléménts qui permet la connaissance de la quantité.
La troisième dépendance fonctionnelle n'est pas élémentaire car il existe à l'intérieur d'elle RéférenceProduit → Désignation, qui était déjà une dépendance fonctionnelle élémentaire.Pour connaitre la Désignation, NuméroCommande est dans ce cas superflu.
MERISE : Modèle Conceptuel des Données (M.C.D)
Les dépendances fonctionnelles
MCD rappel des règles d’edition des données
Les Informations:
Toute information manipulée possède cinq caractéristiques, plus ou moins importantes :Le nom : il paraît évident que chaque information doit posséder un nom unique et propre à elle : il ne doit pas y avoir de polysémie, ni de synonymes.
Polysémie :
Deux noms d'informations sont polysémiés, si elles ont le même nom et expriment des
[email protected] Copyright Raymond RAZAFIMAMONJY 78
Deux noms d'informations sont polysémiés, si elles ont le même nom et expriment des valeurs différentes. Ex : la date de facturation a le nom DATE et la date de commande a le nom DATE elle aussi, alors qu'il s'agit de deux dates différentes. On peut les renommer DATE_FACT pour la première et DATE_CDE pour la seconde.
Synonyme :
Les noms synonymes sont des noms qui représentent deux fois la même propriété. Ex : dans un document le nom du client est nommé NOM_CLIENT, dans un autre il est nommé NOM_DU_CLIENT. Tous deux représentent la même propriété : le nom du client .Dans un cas de redondance, il faut donc supprimer l'un des deux champ.
MERISE : Modèle Conceptuel des Données (M.C.D)
Les dépendances fonctionnelles
Dépendance fonctionnelle Dépendance fonctionnelle élementaireélementaire directe:directe:
On dit que la dépendance fonc]onnelle A → B est directe .S’il n’existe aucun a^ribut C tel que l’on puisse avoir A → C et C → B.
En d’autres termes, cela signifie que la dépendance fonctionnelle entre A et B ne peut pas être obtenue par transitivité (sans intermédiaire).
[email protected] Copyright Raymond RAZAFIMAMONJY 79
Exemple :1. NumClasse → NumElève
2. NumEleve → NomElève
3. NumClasse → NomElève
La troisième dépendance fonctionnelle n’est pas directe car nous pourrions écrire :NumClasse → NumElève → NomElève ( ici, c’est une dépendance fonctionnelle transitive).
MERISE : Modèle Conceptuel des Données (M.C.D)
Les dépendances fonctionnelles
Dépendance fonctionnelle composée:Dépendance fonctionnelle composée:
une dépendances fonctionnelle qui comporte plusieurs attributs est dite composée:
Exemple 1 :
sur 100m, Usaine bolt a fait 9.58ssur 200m, Usaine bolt a fait 19.19ssur 400m, Usaine bolt a fait 36.84s
[email protected] Copyright Raymond RAZAFIMAMONJY 80
sur 400m, Usaine bolt a fait 36.84s
(N° course , N° coureur) → (temps)
Interprétation:
Connaissant le numéro de la course et le numéro du coureur , nous connaissons de façons certaine le temps chronométré d'un coureur précis sur une course précis.
MERISE : Modèle Conceptuel des Données (M.C.D)
Les dépendances fonctionnelles
Dépendance fonctionnelle composée:Dépendance fonctionnelle composée:
une dépendances fonctionnelle qui comporte plusieurs attributs est dite composée:
Exemple 2:
Connaissant le code de l'athlète et le code du sport , nous pouvons connaitre de façons sûre et unique le nombre d'année de pratique.
La seule connaissance du code athlètes ne nous permet pas de connaître le nombre d'années de pratique.
[email protected] Copyright Raymond RAZAFIMAMONJY 81
De la même manière la seule connaissance du code du sport ne permet pas la connaissance pleine et entière des années de pratique .
Structurellement il est nécessaire d'avoir les deux informations : -> le code de l'athlète et le code du sport pour pouvoir connaitre les années de
pratique d'un sport précis par athlète précis.
MERISE : Modèle Conceptuel des Données (M.C.D)
Les dépendances fonctionnelles
Résumé :
Une dépendance fonctionnelle noté DF doit être :
élémentaire : C'est l'intégralité de la source qui doit déterminer le but d'une DF. Par exemple si P1 → P3 alors P1,P2 → P3 n'est pas élémentaire mais composée .
[email protected] Copyright Raymond RAZAFIMAMONJY 82
directe : La DF ne doit pas être obtenue par transitivité. Par exemple, si P1 → P2 et P2 → P3 alors P1 → P3 a été obtenue par transitivité et n'est donc pas directe.
Conclusion :
Les DF qui existent entre les données sont parfois évidentes et ne nécessitent pas toujours une modélisation mais celle-ci peut s'avérer utile car elle permet, entre autres, de distinguer les futures entités du MCD et leur identifiants.
MERISE : Modèle Conceptuel des Données (M.C.D)
Les dépendances fonctionnelles
Méthodologie d’élaboration des dépendances fonctionnelles :
L’élaboration des dépendances fonctionnelles est réalisée à l’aide du dictionnaire des
données.
La démarche consiste à rechercher :
[email protected] Copyright Raymond RAZAFIMAMONJY 83
La démarche consiste à rechercher :
- les dépendances fonctionnelles formées par deux rubriques, élémentaires et directes ;
- les dépendances fonctionnelles composées.
MERISE : Modèle Conceptuel des Données (M.C.D)
Les dépendances fonctionnelles Méthodologie d’élaboration des dépendances fonctionnelles
Exemple
Monique, sa fille Rachel et son gendre Marc gèrent un camping dans les Pyrénées orientales.
Le camping est ouvert du 1er juin au 30 septembre.
Ils disposent de cinquante emplacements sur un terrain d’une superficie totale de quarante hectares.
Ils sont équipés d’un logiciel spécialisé dans la réservation des emplacements qui fonctionne très bien
mais qui ne permet pas de gérer les achats de l’épicerie ou du bar selon leurs règles de gestion.
En effet, les vacanciers ne payent leurs achats qu’à la fin de leur séjour.
[email protected] Copyright Raymond RAZAFIMAMONJY 84
En effet, les vacanciers ne payent leurs achats qu’à la fin de leur séjour.
Concrètement, les achats sont inscrits manuellement sur une fiche bristol créée pour chaque famille
de vacanciers.
À la fin du séjour, les cumuls sont réalisés et une facture manuelle concernant les achats est établie.
Les propriétaires du camping souhaiteraient disposer d’un logiciel permettant d’automatiser la
création de la facture grâce à la saisie journalière des achats.
MERISE : Modèle Conceptuel des Données (M.C.D)
Les dépendances fonctionnelles Méthodologie d’élaboration des dépendances fonctionnelles
Exemple
Voici une représentation de la fiche bristol :
[email protected] Copyright Raymond RAZAFIMAMONJY 85
MERISE : Modèle Conceptuel des Données (M.C.D)
Les dépendances fonctionnelles Méthodologie d’élaboration des dépendances fonctionnelles
Exemple
Résolution du cas:
À la lecture de l’énoncé, nous devons déterminer et séparer les informations mémorisables des informations décrivant le contexte.
Les prénoms des propriétaires du camping sont ils des informations stockables ou des informations d’ordre général ? Si nous analysons la demande d’informatisation ces données ne font pas partie du système d’information.
[email protected] Copyright Raymond RAZAFIMAMONJY 86
d’information.
Il en est de même pour les dates d’ouverture, de fermeture, le nombre d’emplacements ou la superficie du camping.Il paraît évident que nous devons nous intéresser à l’élément de base, c’est-à-dire la fiche bristol.
C’est elle qui contient les informations indispensables à l’élaboration de la facture finale.Nous pouvons y trouver le nom de la famille, son adresse, la liste des articles achetés, leur prix unitaire, la quantité, le total.
Il va être nécessaire de rajouter deux informations non présentes : le numéro du client et le code de l’article.
MERISE : Modèle Conceptuel des Données (M.C.D)
Les dépendances fonctionnelles Méthodologie d’élaboration des dépendances fonctionnelles
Exemple
Le dictionnaire des données qui pourrait être élaboré suite à la lecture de l’énoncé :
[email protected] Copyright Raymond RAZAFIMAMONJY 87
MERISE : Modèle Conceptuel des Données (M.C.D)
Les dépendances fonctionnelles Méthodologie d’élaboration des dépendances fonctionnelles
Exemple
Le dictionnaire des données qui pourrait être élaboré suite à la lecture de l’énoncé :
Le dictionnaire des données recense l’ensemble des informations. Comme nous pouvons le constater certaines informations seront déduites (ou calculées) en fonction d’informations élémentaires.
C’est le cas du TotalLigne qui est le résultat de la multiplication du prix unitaire du produit et de sa quantité et du TotalFacture qui est la somme des TotalLigne.
[email protected] Copyright Raymond RAZAFIMAMONJY 88
et de sa quantité et du TotalFacture qui est la somme des TotalLigne.
Ces deux informations sont utiles pour le développeur de l’application qui mettra en oeuvreles procédures de calculs a posteriori.
Dans le cycle de modélisation Merise ces deux informations sont des données déduites et non stockables, elles n’apparaîtront donc pas dans la suite du processus.
MERISE : Modèle Conceptuel des Données (M.C.D)
Les dépendances fonctionnelles Méthodologie d’élaboration des dépendances fonctionnelles
Exemple
Détermination des dépendances fonctionnelles ou DF
À la lecture du dictionnaire nous pouvons déduire deux groupes d’informations distinctes. Un groupe caractérise les clients, l’autre les produits.
Dépendances fonctionnelles pour les clients:
Posons nous la question :« Quand je connais le numéro du client, est ce que je connais de façon sûre et unique le nom du client ? ». Si la réponse est « oui » alors voici la transcription de la Dépendances Fonctionnelle « DF » :
Numcli → Nom
[email protected] Copyright Raymond RAZAFIMAMONJY 89
Voici maintenant l’ensemble des Dépendances Fonctionnelle élémentaires :
Numcli → PrénomNumcli → AdresseNumcli → Code PostalNumcli → Ville
Dépendances fonctionnelles pour les articles :
CodeArticle → Désigna]onCodeArticle → PrixUnitaire
Les DF auraient pu aussi s’écrire de la façon suivante : Numcli → (Nom, Prénom, Adresse, Code Postal, Ville),CodeArticle → (Désigna]on, PrixUnitaire).
MERISE : Modèle Conceptuel des Données (M.C.D)
Les dépendances fonctionnelles Méthodologie d’élaboration des dépendances fonctionnelles
ExempleIntéressons nous à la donnée Qté :
est ce que la connaissance du code de l’article nous permet de connaître de façon sûre et unique une quantité ?
Autrement dit :
Connaissant « 567Nut » nous pouvons connaître de façon sûre et unique la quantité « 4 » ?Nous nous rendons compte que cette donnée Qté fait partie d’une DF composée.
Voici une proposition :
(Numcli, CodeArticle, Date) → Qté
[email protected] Copyright Raymond RAZAFIMAMONJY 90
(Numcli, CodeArticle, Date) → Qté
Et maintenant si nous nous posons la question :
« Connaissant le code du client, le code de l’article et la date d’achat puis je connaître de façon sûre et unique la quantité achetée ? ».Il est évident que la réponse est oui !Voilà, nous venons de définir l’ensemble des DF concernant notre cas.
Rappel : Les dépendances fonctionnelles ne concernent que les données non déduites. C’est pour cela que n’apparaissent pas les données concernant le total par ligne et le total global de la facture qui sont des informations déduites par calcul.
MERISE : Modèle Conceptuel des Données (M.C.D)
Les dépendances fonctionnelles Méthodologie d’élaboration des dépendances fonctionnelles
Exemple
Graphe des dépendances fonctionnelles
C’ est une étape intéressante car il épure le dictionnaire en ne retenant que les données non déduites et élémentaires et il permet une représentation spatiale de ce que sera le futur modèle conceptuel des données.
Voici le graphe des dépendances fonctionnelles concernant le camping :
[email protected] Copyright Raymond RAZAFIMAMONJY 91
MERISE : Modèle Conceptuel des Données (M.C.D)
Les dépendances fonctionnelles Méthodologie d’élaboration des dépendances fonctionnelles
Exemple
Matrice des dépendances fonctionnelles
Une autre façon de représenter les dépendances fonctionnelles est de créer une matrice. Cependant, cette représentation ne présente pas le même intérêt que le graphe, qui lui permet une vision plus graphique du futur modèle conceptuel des données.
Elle se présente sous forme d’un tableau ayant pour entrées l’ensemble des données du dictionnaire.
Les entêtes de lignes sont les données sources des dépendances fonctionnelles
[email protected] Copyright Raymond RAZAFIMAMONJY 92
Les entêtes de lignes sont les données sources des dépendances fonctionnelles
Les entêtes de colonnes sont les données buts des dépendances fonctionnelles
Le tableau est parcouru colonne par colonne, et pour chaque colonne ligne par ligne.
À chaque étape la question suivante doit être posée : la donnée source est elle en dépendance fonctionnelle avec la donnée but ?
En cas de réponse positive, nous inscrivons un « 1 » dans la case d’intersection.
MERISE : Modèle Conceptuel des Données (M.C.D)
Les dépendances fonctionnelles Méthodologie d’élaboration des dépendances fonctionnelles
Exemple
Matrice des dépendances fonctionnelles
[email protected] Copyright Raymond RAZAFIMAMONJY 93
MERISE : Modèle Conceptuel des Données (M.C.D)
Les dépendances fonctionnelles Méthodologie d’élaboration des dépendances fonctionnelles
Exemple
Matrice des dépendances fonctionnelles en versions simplifiée :
[email protected] Copyright Raymond RAZAFIMAMONJY 94
MERISE : Modèle Conceptuel des Données (M.C.D)
Les dépendances fonctionnelles Méthodologie d’élaboration des dépendances fonctionnelles
Exemple
Conclusion :
Il est impératif de bien comprendre et bien maîtriser ces notions de DF, car elles sont les fondations des modèles Merises qui vont suivre.
Donc, il est nécessaire de passer du temps à bien les définir pour éviter les erreurs de conception plus tard.
[email protected] Copyright Raymond RAZAFIMAMONJY 95
conception plus tard.
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD
Le M C D introduit la notion d’entités, de relations et de propriétés. Nous allons commencer par voir certains aspects « théoriques » avant de plonger dans la pratique.
Il décrit de façon formelle les donnéesutilisées par le système d’information.
La représentation graphique, simple et accessible, permet à un non-informaticien de participer à son élaboration.
[email protected] Copyright Raymond RAZAFIMAMONJY 96
participer à son élaboration.
Les éléments de base constituant un modèle conceptuel des données sont :
1. les propriétés ;
2. les entités ;
3. les relations.
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD
1.Les propriétés ( ou attributs):
Les propriétés sont les informations de base du système d’information.
Un client possède un numéro de client, un nom, un prénom, habite à une adresse précise, etc.
Ces informations élémentaires essentielles sont des propriétés.Les propriétés disposent d’un type.
[email protected] Copyright Raymond RAZAFIMAMONJY 97
Les propriétés disposent d’un type.
Elles peuvent être numériques, représenter une date, leur longueur peut être aussi définie. Par exemple : le nom est une propriété de type alphabétique et de longueur 50, c’est à direque la valeur saisie ne comportera aucun chiffre et ne dépassera pas cinquante caractères.
Les types ne sont pas décrits au niveau conceptuel, car ce niveau est trop proche de la définition du système physique. Nous y reviendrons plus tard.
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD
2. Les entités ou objets :
Comme il est aisé de le constater, les clients sont définis par certaines propriétés (numéro, nom, prénom…).
Le fait de les regrouper amène naturellement à créer une entité Clients.
Le symbolisme retenu est le suivant :
[email protected] Copyright Raymond RAZAFIMAMONJY 98
Le symbolisme retenu est le suivant :
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD
2.a L’identifiant :
Une de ces propriétés a un rôle bien précis, c’est l’identifiant nommé aussi la clé.
L’identifiant permet de connaître de façon sûre et unique l’ensemble des propriétés qui participent à l’entité.
Par exemple, le fait de connaître la ville d’un client permet il de connaître son nom ? La réponse est non.
La connaissance du nom du client permet elle de connaître sa ville ?
[email protected] Copyright Raymond RAZAFIMAMONJY 99
La connaissance du nom du client permet elle de connaître sa ville ? La réponse est toujours non, car en cas d’homonymie la confusion entre un DURAND Max et un DURAND Raymond est totale. ( pas de Polysémie ).
Il faut donc trouver, ou inventer, une propriété qui lorsque sa valeur est connue permet la connaissance de l’ensemble des valeurs qui s’y rattachent de façon formelle.
Ainsi, lorsque le numéro du client est connu, son nom, son prénom et toutes les valeurs des autres propriétés qui s’y rattachent sont connues de façon sûre et unique.
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD
Au niveau du formalisme, cette propriété se souligne.
Voici le schéma modifié de l’entité Clients.
[email protected] Copyright Raymond RAZAFIMAMONJY 100
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD
Si on résume :
Formalisme de l’entité: Dans le dictionnaire des données:
[email protected] Copyright Raymond RAZAFIMAMONJY 101
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD
À partir de cette entité, on peut retrouver la règle de gestion suivante :
Un client est identifié par un numéro unique ou clé (id_c) et est caractérisé par un nom, un
prénom , un Code postale, une adresse et une ville .
Une entité peut n'avoir aucune, une ou plusieurs occurrences.
Pour illustrer ce terme d'«occurrence», voici un exemple de table d'occurrences de l'entité
[email protected] Copyright Raymond RAZAFIMAMONJY 102
Pour illustrer ce terme d'«occurrence», voici un exemple de table d'occurrences de l'entité Client comprenant 3 occurences ou 3 uplets:
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD
Remarques :
-La table d'occurrence peut être comparée à l'instance d'une relation (implantation relationnelle d'une entité ou association) à un moment donné. Nous reviendrons sur cette notion de relation dans les prochains slides.
-Au niveau conceptuel, on devrait plutôt parler d'entités-types , les entités étant en fait des instances d'entités-types.
[email protected] Copyright Raymond RAZAFIMAMONJY 103
les entités étant en fait des instances d'entités-types. Par soucis de simplicité, on gardera les termes d'entités et associations tout au long du cours.
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD
3. Les relations ou associations
Nous avons vu que les entités regroupaient un ensemble d’informations élémentaires. Les entités sont souvent liées entre elles.
Par exemple :
Un client peut commander des articles.
[email protected] Copyright Raymond RAZAFIMAMONJY 104
Si nous analysons cette phrase, on distingue deux entités (clients et articles) et un verbe (commander) qui indique un lien entre clients et articles.
Formalisons cette phrase avec Merise.
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD
Formalisons cette phrase avec Merise.
[email protected] Copyright Raymond RAZAFIMAMONJY 105
Voilà la première étape, première car la lecture du schéma doit être améliorée en incorporant une notion importante : les cardinalités.
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD
3.a. Les cardinalités :
Elles expriment le nombre de fois ou l’occurrence d’une entité participe aux occurrences de la relation. Dans notre exemple on peut se poser les questions suivantes :
Combien de fois au minimum un client peut il commander un article ?
Combien de fois au maximum un client peut il commander un article ?
À la première question, nous pouvons répondre qu’un client, pour être client, doit
[email protected] Copyright Raymond RAZAFIMAMONJY 106
À la première question, nous pouvons répondre qu’un client, pour être client, doit
commander au moins un article.
À la deuxième question, nous pouvons répondre qu’un client peut commander plusieurs
articles.
Voici comment symboliser cet état :
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD
3.a. Les cardinalités :
Voici comment symboliser cet état :
[email protected] Copyright Raymond RAZAFIMAMONJY 107
Le n représente la notion de « plusieurs » ; ici nous avons représenté le fait qu’un client peut commander un ou plusieurs articles.
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD
3.a. Les cardinalités :
Il faut que nous nous posions les mêmes questions pour l’article :
Combien de fois au minimum un article peut il être commandé par un client ?
Combien de fois au maximum un article peut il être commandé par un client ?
Pour le minimum, nous pouvons l’interpréter de la façon suivante :A-t-on des articles qui ne peuvent jamais être commandés ?
[email protected] Copyright Raymond RAZAFIMAMONJY 108
A-t-on des articles qui ne peuvent jamais être commandés ?Si nous répondons oui dans ce cas la cardinalité minimale est 0.
Pour le maximum :
A-t-on des articles qui peuvent être commandés plusieurs fois ?Nous pouvons espérer que oui, dans ce cas la cardinalité maximale sera n.
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD
3.a. Les cardinalités :
Voici le schéma finalisé :
La cardinalité minimale (0 ou 1) exprime le nombre de fois minimum qu’une occurrence d’une entité participe aux occurrences d’une relation.
La cardinalité maximale (1 ou n) exprime le nombre de fois maximal qu’une occurrence d’une entité participe aux occurrences de la relation.
[email protected] Copyright Raymond RAZAFIMAMONJY 109
d’une entité participe aux occurrences de la relation.
Si le maximum est connu, il faut inscrire sa valeur.
Par exemple, si dans les règles de gestion le client n’a le droit de commander qu’un maximum de 3 articles en tout et pour tout, dans ce cas là les cardinalités s’exprimeront de cette façon : 1,3.
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD
3.a. Les cardinalités :
Autre exemple :Modélisons le fait qu’une mère élève des enfants.
Nous avons deux entités Mères et Enfants :
Définitions
[email protected] Copyright Raymond RAZAFIMAMONJY 110
Une relation Elever :
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD
3.a. Les cardinalités :
Aujourd’hui, dans une configuration familiale de modèle couple hétérosexuel et monogame. (Et stop ! pas de débats inutile…faite le à la pause si vous le souhaitez)
Les cardinalités seront donc les suivantes:
Une mère peut élever un ou plusieurs enfants.Un enfant peut être élevé par une et une seule mère.
[email protected] Copyright Raymond RAZAFIMAMONJY 111
Bien sûr, tout est question d’interprétation.Au sein d’une équipe de développement, il peut y avoir des divergences de point de vue.
Pour les cardinalités, il faut être le plus logique possible, se référer aux règles de gestion édictées par le commanditaire de l’application , c’est-à-dire le client , votre patron .Et se rappeler la maxime suivante : "Qui peut le plus peut le moins".
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD3. b. Les relations porteuses :
Définition :
Une relation est dite porteuse lorsqu’elle contient des propriétés.
Imaginons que l’on veuille connaître la quantité d’articles commandés par clients, nous nous rendons compte qu’il faut utiliser une nouvelle propriété Quantité.
Cette nouvelle propriété dépend de clients, d’articles ou des deux ?La bonne réponse est que Quantité dépend des deux entités.
[email protected] Copyright Raymond RAZAFIMAMONJY 112
Voici le modèle conceptuel correspondant :
Nous pouvons interpréter ce schéma de la façon suivante :
Le client X a commandé la quantité Y d’articles Z. Si nous désirons connaître la date d’achat, il nous suffit de créer une entité Date à la relation Commander.
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD3. b. Les relations porteuses :
Définition :
Une relation est dite porteuse lorsqu’elle contient des propriétés.
Imaginons que l’on veuille connaître la quantité d’articles commandés par clients, nous nous rendons compte qu’il faut utiliser une nouvelle propriété Quantité.
Cette nouvelle propriété dépend de clients, d’articles ou des deux ?La bonne réponse est que Quantité dépend des deux entités.
Voici le modèle conceptuel correspondant :
[email protected] Copyright Raymond RAZAFIMAMONJY 113
Voici le modèle conceptuel correspondant :
Nous pouvons interpréter ce schéma de la façon suivante :
Le client X a commandé la quantité Y d’articles Z. Si nous désirons connaître la date d’achat, il nous suffit de créer une entité Date à la relation Commander.
Une relation faisant intervenir deux entités est dite binaire.
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD3. b. Les relations porteuses :
Si nous désirons connaître la date d’achat, il nous suffit de créer une entité Date à la relation
Commander.
[email protected] Copyright Raymond RAZAFIMAMONJY 114
Une relation faisant intervenir trois entités est dite ternaire ou « Tripattes ».
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD3.c. Les relations réflexives
Une relation réflexive est une relation d’une entité sur elle même.Par exemple: on désire modéliser le fait qu’un employé peut diriger d’autres employés.
[email protected] Copyright Raymond RAZAFIMAMONJY 115
À la lecture de ce schéma, nous interprétons donc :qu’un employé peut diriger zéro ou plusieurs personnes et qu’un employé est dirigé par
un et un seul autre employé.
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD
4. Règles d’usages
Toute entité doit comporter un identifiant.
Toutes les propriétés de l’entité dépendent fonctionnellement de l’identifiant.
C’est-à-dire que connaissant la valeur de l’identifiant, nous connaissons de façon sûre et unique la valeur des propriétés associées.
Si nous recherchons le client numéro 2, nous devons récupérer le nom et le prénom du client numéro 2 et pas ceux d’une autre personne.
[email protected] Copyright Raymond RAZAFIMAMONJY 116
client numéro 2 et pas ceux d’une autre personne.
Le nom d’une propriété ne doit apparaître qu’une seule fois dans le modèle conceptuel des données. Si nous établissons une entité Clients et une nommée Prospects, nous ne devons pas retrouver la propriété Nom dans les deux entités.Il faut préférer la dénomination suivante Nom_client et Nom_prospect. Pas de polysémie.
Les propriétés résultantes d’un calcul ne doivent pas apparaître dans le modèle conceptuel des données.
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD
Cas pratique
Reprenons le graphe concernant le cas du camping vu précédement et réalisons le modèle conceptuel qui en découle.
Le graphe :
[email protected] Copyright Raymond RAZAFIMAMONJY 117
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD
Le MCD pas à pas :
Commençons par déterminer les entités. Par rapport au graphe, nous pouvons remarquer trois sources de dépendances fonctionnelles :
1. CodeArticle2. Date3. NumCli
Chacune de ces sources peut représenter une entité :
a. Articles
[email protected] Copyright Raymond RAZAFIMAMONJY 118
a. Articlesb. Datec. Clients
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCDLe MCD pas à pas :
Voici la représentation graphique des entités :
[email protected] Copyright Raymond RAZAFIMAMONJY 119
Renseignons maintenant les entités avec leurs propriétés respectives :
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCDLe MCD pas à pas :
Traçons les relations
Nous savons qu’une quantité d’articles est achetée par un client à une date donnée.Nous voyons qu’il existe une relation entre les trois entités.La voici modélisée :
[email protected] Copyright Raymond RAZAFIMAMONJY 120
Examinons les cardinalités: Sur le graphique ci-dessus nous pouvons interpréter qu’au minimum il ne se vend strictement rien.
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCDLe MCD pas à pas :
En pratique, nous pouvons imaginer qu’il ne se passe pas une journée sans que se produise la vente d’un article à un client. En voici le MCD revu :
[email protected] Copyright Raymond RAZAFIMAMONJY 121
Maintenant, nous pouvons lire qu’au minimum un article est acheté dans une certaine
quantité, par au minimum un client à une date donnée.
Voilà qui nous rapproche plus de la réalité.
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD / EXERCICE
[email protected] Copyright Raymond RAZAFIMAMONJY 122
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD / EXERCICE
Cardinalités de la relation mariage dans les 2 cas suivants :
[email protected] Copyright Raymond RAZAFIMAMONJY 123
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD / EXERCICE
[email protected] Copyright Raymond RAZAFIMAMONJY 124
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD / EXERCICE
[email protected] Copyright Raymond RAZAFIMAMONJY 125
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD / EXERCICE
1. Peut-on jouer des matchs de double ?
Non, la cardinalité 2,2 indique qu'un match n'est joué que pas 2 joueurs exactement et non 4 (cas de jeu en double, 2 fois 2 adversaires).
2. Un joueur peut-il gagner un match sans y avoir participé ?
Dans la vraie vie surement non, mais curieusement le modèle n'indique pas cette contrainte de gestion.
[email protected] Copyright Raymond RAZAFIMAMONJY 126
contrainte de gestion.
3. Peut-il y avoir deux matchs sur le même terrain à la même heure ?
La encore rien sur le modèle n'indique cette contrainte
4. Connaissant un joueur, peut-on savoir sur quels terrains il a joué?
Oui, à partir d'un joueur, la relation "participe" indique tous les matchs qu'il a joué et d'après la relation "se joue sur" tous les terrains qu'il a occupé.
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD / EXERCICE
[email protected] Copyright Raymond RAZAFIMAMONJY 127
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD / EXERCICE
1. Un patient peut-il effectuer plusieurs consultations ?
En effet, la cardinalité 1,n indique qu'il peut en prendre plusieurs.
2. Un médecin peut-il recevoir plusieurs patients dans la même consultation ?
Non, les cardinalités 1,1 de part et d'autre de l'entité consultation indique qu'une consultation ne peut avoir qu'un seul et unique patient avec un seul et unique médecin.
3. Peut-on prescrire plusieurs médicaments dans une même consultation ?
[email protected] Copyright Raymond RAZAFIMAMONJY 128
3. Peut-on prescrire plusieurs médicaments dans une même consultation ?
Oui, les cardinalité 0,n entre la consultaion et le médicament précisent qu'à une consultation donnée, on peut prescrire aucun, un ou plusieurs médicaments.
4. Deux médecins différents peuvent-ils prescrire le même médicament ?
Bien sur, un patient peut prendre plusieurs consultations (cardinalités 0,n) avec des médecins différents (pas de contrainte entre le patient et le medecin qui traduirait un medecin référent !)
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD / EXERCICE
[email protected] Copyright Raymond RAZAFIMAMONJY 129
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD / EXERCICE
[email protected] Copyright Raymond RAZAFIMAMONJY 130
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD / EXERCICE
Notion d’entité forte et d’entité faible
Définition
a. Entité forte :
Une entité forte est une entité qui, disposant de son identifiant, peut être considérée de façon isolée.
Définition
b. Entité faible :
[email protected] Copyright Raymond RAZAFIMAMONJY 131
b. Entité faible :
Une entité faible est une entité qui ne peut être considérée qu’en association avec une autre entité.Voici un exemple :
Dans ce cas l’entité forte est l’entité Mères et l’entité faible est l’entité Enfants.
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD / EXERCICE
Notion de Contrainte d’Intégrité Fonctionnelle
Définition
Une contrainte d’intégrité fonctionnelle (ou CIF) est définie par le fait qu’une des entités de l’association est complètement déterminée par la connaissance d’une ou de plusieurs entités participant à cette même association.
Exemple:
[email protected] Copyright Raymond RAZAFIMAMONJY 132
Nous pouvons lire qu’une salle peut contenir zéro ou plusieurs ordinateurs et qu’un ordinateur existe dans une et une seule salle. Dans le cas d’une association binaire comme celle ci, une contrainte d’intégrité fonctionnelle existe à partir du moment ou une cardinalité de type 1,1 existe.
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD / EXERCICE
Donc on peut l’écrire aussi de la manière suivante (au lieu de contenir ):
Notion d’identifiant relatif :
[email protected] Copyright Raymond RAZAFIMAMONJY 133
Notion d’identifiant relatif :
Les identifiants relatifs font partie des extensions Merise/2, je vous les présente volontairement dans ce chapitre.
Certaines entités ont une existence totalement dépendante d’autres entités. Dans ce cas nous avons recours à un identifiant relatif.
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD / EXERCICE
Notion d’identifiant relatif : exemple :Nous devons gérer les exemplaires des livres commandés dans une bibliothèque :
Nous pouvons considérer qu’une bibliothèque achète plusieurs exemplaires du même livre.
[email protected] Copyright Raymond RAZAFIMAMONJY 134
Nous pouvons considérer qu’une bibliothèque achète plusieurs exemplaires du même livre. Doit elle numéroter les exemplaires dans l’ordre séquentiel croisant c’est à direde 1 à 6 000 ou pour chaque ouvrage de 1 au nombre maximal de cet ouvrage présent dans
la bibliothèque ?
Il paraît évident que la solution la plus judicieuse est la seconde proposition. Ainsi, la clé d’identification de l’exemplaire sera la concaténation du Num ISBN (International
Standard Book Number ou Numéro international normalisé du livre) et du Num Exemplaire. L’identification d’un identifiant relatif se traduit par le symbole (R) à côté de la cardinalité.
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD / EXERCICE
Notion d’identifiant relatif : Par exemple suite :Nous devons gérer les exemplaires des livres commandés dans une bibliothèque :
Pour reconnaître un identifiant relatif, nous pouvons aussi nous poser la question
[email protected] Copyright Raymond RAZAFIMAMONJY 135
Pour reconnaître un identifiant relatif, nous pouvons aussi nous poser la question « si je supprime l’ouvrage X de ma bibliothèque, dois je supprimer tous les exemplaires ? ». La réponse est bien entendu oui.
Nous pouvons donc dire que l’existence même de l’entité Exemplaire dépend de l’existence de l’entité Ouvrage.Voici un autre exemple encore plus évident :Vous êtes le responsable informatique d’un centre de formation possédant un campus sur lequel sont construits 3 bâtiments strictement identiques :Ils possèdent 3 étages et chaque étage héberge 12 salles informatiques dans lesquelles peuvent être installés 10 PC
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD / EXERCICE
Par exemple suite :
Nous pouvons en conclure que dans chaque bâtiment, nous pouvons installer 360 ordinateurs et la capacité du campus est de 3*360 ordinateurs soit 1080.
Imaginons le scénario suivant, vous recevez une dotation de 1080 ordinateurs à répartir dans toutes les salles.
En outre, vous devez les numéroter pour les identifier.
[email protected] Copyright Raymond RAZAFIMAMONJY 136
En outre, vous devez les numéroter pour les identifier.Quelle solution choisissez vous ?
Une solution serait de les numéroter de 1 à 1080.
Une autre serait de rendre la numérotation relative à la salle.
Par exemple dans la salle 1 du premier étage du bâtiment A la numérotation serait de 11à 110, dans la salle 2 la numérotation irait de 21 à 210.
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD / EXERCICE
Par exemple suite :
Maintenant, il serait judicieux de rendre la salle relative à l’étage.
La numérotation deviendrait E111, pour le premier ordinateur de la salle 1 de l’étage 1, ou E31210 pour le dixième ordinateur de la salle 12 de l’étage 3.
Vous venez de comprendre que maintenant nous pourrions rendre les étages relatifs aux
[email protected] Copyright Raymond RAZAFIMAMONJY 137
Vous venez de comprendre que maintenant nous pourrions rendre les étages relatifs aux bâtiments et numéroter les ordinateurs de la façon suivante : BAE31210.
Ainsi, nous savons que nous avons affaire à l’ordinateur 10 de la salle 12 de l’étage 3 du bâtiment A.
Si les ordinateurs peuvent être changés de lieu rien qu’en regardant leur identifiant, vous pouvez les réinstaller dans leurs salles respectives.
MERISE : Modèle Conceptuel des Données (M.C.D)
Construction de la MCD / EXERCICE
Voici le modèle conceptuel découlant de cet exemple :
[email protected] Copyright Raymond RAZAFIMAMONJY 138
Imaginons que le centre de formation décide de vendre un bâtiment, tout disparaît en cascade !
MERISE : Modèle Logiques des Données (M.L.D)
Le MLD a pour but de nous rapprocher au plus près du Modèle Physique des Données (MPD). Pour cela, nous partons du MCD et nous lui enlevons les relations, mais pas n’importe comment, il faut en effet respecter certaines règles. Voici la procédure à suivre.
Cas (0, n), (1,1) ou (1,n), (0,1)
Voici un modèle conceptuel de départ :
[email protected] Copyright Raymond RAZAFIMAMONJY 139
MERISE : Modèle Logiques des Données (M.L.D)
Cas (0, n), (1,1) ou (1,n), (0,1)
Voici un modèle conceptuel de départ :
Nous devons supprimer la relation Elever, cela se réalise de façon tout à fait mécanique. L’entité ayant la cardinalité de type 1,1 ou 0,1 absorbe l’identifiant de l’entité la plus forte (0, n ou 1, n).
[email protected] Copyright Raymond RAZAFIMAMONJY 140
L’entité ayant la cardinalité de type 1,1 ou 0,1 absorbe l’identifiant de l’entité la plus forte (0, n ou 1, n).
Cet identifiant est alors appelé la clé étrangère.
Voici le Modèle Logique des Données découlant du Modèle conceptuel précédent :
MERISE : Modèle Logiques des Données (M.L.D)
Nous pouvons l’illustrer par un cas concret.
Béatrice BAPTISTE a trois enfants : Amandine, Cédric, Sylvain.
Patricia AUGUY a deux enfants : Mathilde et Lucie.
Sandrine BAPTISTE a quatre enfants : Ophélie, Olivia, Lucie et Tom.
Voici le contenu du fichier de données Mères.
[email protected] Copyright Raymond RAZAFIMAMONJY 141
MERISE : Modèle Logiques des Données (M.L.D)
Maintenant, illustrons le fichier de données Enfants.
[email protected] Copyright Raymond RAZAFIMAMONJY 142
Si nous désirons connaître les enfants de Patricia AUGUY,
-> il nous faut concevoir une procédure qui réalise une recherche dans le fichier Mères et qui récupère l’identifiant de la mère recherchée.Ensuite, la procédure parcourt le fichier Enfants et chaque fois qu’elle rencontre l’identifiant de la mère dans la rubrique clé étrangère #Numéro_Mère elle affiche la ligne correspondante.
Comme nous le voyons, le principe général est très simple à comprendre.
MERISE : Modèle Logiques des Données (M.L.D)
2. Cas (0,n), (0,n) ou (1,n), (1,n)
illustrons ce cas sur le Modèle Conceptuel des Données suivant :
Dans le cas où la cardinalité maximale est n de chaque côté de la relation, celle ci
se transforme en entité et absorbe les identifiants de chaque entité reliée.
[email protected] Copyright Raymond RAZAFIMAMONJY 143
se transforme en entité et absorbe les identifiants de chaque entité reliée. Les identifiants ainsi absorbés forment la nouvelle clé de l’entité. Cette nouvelle clé est donc formée par la concaténation des clés étrangères des entités reliées.
MERISE : Modèle Logiques des Données (M.L.D)
2. Cas (0,n), (0,n) ou (1,n), (1,n)
Voici la représentation virtuelle des fichiers de données :
[email protected] Copyright Raymond RAZAFIMAMONJY 144
MERISE : Modèle Logiques des Données (M.L.D)
2. Cas (0,n), (0,n) ou (1,n), (1,n)
La concaténation des deux clés étrangères doit être unique. Les couples de clés sont donc (1,1), (2,2), (2,3).… Nous arrivons donc à la conclusion suivante : le client 1 qui adore le Roquefort ne pourra pas en acheter plusieurs fois. Cette situation est anormale, on rappelle que « qui peut le plus peut le moins ».
Continuons à modifier le Modèle Conceptuel des Données.
[email protected] Copyright Raymond RAZAFIMAMONJY 145
MERISE : Modèle Logiques des Données (M.L.D)
2. Cas (0,n), (0,n) ou (1,n), (1,n)
Le Modèle Logique des Données en découlant sera :
[email protected] Copyright Raymond RAZAFIMAMONJY 146
MERISE : Modèle Logiques des Données (M.L.D)
2. Cas (0,n), (0,n) ou (1,n), (1,n)
La nouvelle représentation du fichier commande est maintenant ainsi :
[email protected] Copyright Raymond RAZAFIMAMONJY 147
Nous avons apporté une solution à notre problème initial. Cependant, le même client ne pourra pas acheter deux fois le même fromage le même jour. Une solution élégante serait de concaténer la date et l’heure d’achat.
MERISE : Modèle Logiques des Données (M.L.D)
3. Modèle Logique des Données sur une relation réflexive
Reprenons ce Modèle Conceptuel des Données :
Les règles de passage du MCD au MLD s’appliquent toujours aussi mécaniquement.
[email protected] Copyright Raymond RAZAFIMAMONJY 148
Les règles de passage du MCD au MLD s’appliquent toujours aussi mécaniquement. L’entité ayant la cardinalité la plus faible absorbe l’identifiant de l’entité reliée.Ici, nous n’avons qu’une seule entité, mais le principe est le mêmenous devons donc dupliquer l’identifiant Numéro employé.
MERISE : Modèle Logiques des Données (M.L.D)
3. Modèle Logique des Données sur une relation réflexive
Regardons la représentation du fichier de données.
[email protected] Copyright Raymond RAZAFIMAMONJY 149
Nous observons bien que les employés sont dirigés par l’employé numéro 2.
MERISE : Modèle Logiques des Données (M.L.D)
4. Règles simples de passage du MCD au MLD
L’entité qui possède la cardinalité maximale égale à 1, recevra l’identifiant ou les
identifiants des entités ayant les cardinalités maximales les plus fortes.
Les relations ayant toutes leurs entités reliées avec des cardinalités maximales supérieures
[email protected] Copyright Raymond RAZAFIMAMONJY 150
à 1, se transformeront en entité en absorbant les identifiants des entités jointes.
Toute relation porteuse de propriétés se transformera en entité et absorbera comme clé
étrangère les identifiants des entités qui lui sont liées.
MERISE : Modèle Logiques des Données (M.L.D)
Conception d’un M.L.D pas à pas
[email protected] Copyright Raymond RAZAFIMAMONJY 151
MERISE : Modèle Logiques des Données (M.L.D)
Conception d’un M.L.D pas à pas
Reprenons au cas par cas et commençons par cet extrait du Modèle Conceptuel des Données :
Voici la traduction en Modèle Logique des Données :
[email protected] Copyright Raymond RAZAFIMAMONJY 152
Comme nous pouvons le constater, une nouvelle entité est apparue (Possède). Cette entité contient trois propriétés, dont deux clés étrangères. Le nouvel identifiant de cette entité sera la concaténation des deux clés étrangères.
MERISE : Modèle Logiques des Données (M.L.D)
Conception d’un M.L.D pas à pas
Ici, nous pouvons voir que la cardinalité (1,1) va nous indiquer l’entité qui va recevoir la clé étrangère.
[email protected] Copyright Raymond RAZAFIMAMONJY 153
La propriété NumType va devenir clé étrangère dans l’entité Carte des Plats.
MERISE : Modèle Logiques des Données (M.L.D)
Conception d’un M.L.D pas à pas
[email protected] Copyright Raymond RAZAFIMAMONJY 154
….Paniquez pas….cette partie de MCD n’est pas complexe à transposer en MLD :
MERISE : Modèle Logiques des Données (M.L.D)
Conception d’un M.L.D pas à pas
[email protected] Copyright Raymond RAZAFIMAMONJY 155
MERISE : Modèle Logiques des Données (M.L.D)
Conception d’un M.L.D pas à pas
…Et on continue le processus :
[email protected] Copyright Raymond RAZAFIMAMONJY 156
MERISE : Modèle Logiques des Données (M.L.D)
Conception d’un M.L.D pas à pas
Ici, nous traitons le cas des identifiants relatifs :
La nouvelle clé identifiante de l’entité Bouteilles sera la concaténation des trois clés :
[email protected] Copyright Raymond RAZAFIMAMONJY 157
Bouteilles sera la concaténation des trois clés :
NumBouteille#NumVin#NumViticulteur
MERISE : Modèle Logiques des Données (M.L.D)
Conception d’un M.L.D pas à pas
Ici, nous traitons le cas des identifiants relatifs :
La nouvelle clé identifiante de l’entité Bouteilles sera la concaténation des trois clés :
[email protected] Copyright Raymond RAZAFIMAMONJY 158
Bouteilles sera la concaténation des trois clés :
NumBouteille#NumVin#NumViticulteur
MERISE : Modèle Logiques des Données (M.L.D)
Conception d’un M.L.D pas à pas
[email protected] Copyright Raymond RAZAFIMAMONJY 159
MERISE : Modèle Logiques des Données (M.L.D)
et Modèle Physiques des Données
Conclusion
Comme vous l’avez ressenti, le passage du MCD au MLD est purement mécanique,
il suffit de respecter les quelques règles énoncées plus haut.
Il n’y a plus de travail de conceptualisation ou de réflexion proprement dit.
Lorsque nous réalisons un MLD nous ne faisons que « détruire » un MCD pour recréer un
[email protected] Copyright Raymond RAZAFIMAMONJY 160
Lorsque nous réalisons un MLD nous ne faisons que « détruire » un MCD pour recréer un autre modèle.
MERISE : Modèle Logiques des Données (M.L.D)
et Modèle Physiques des Données
Pour bien commencer
C'est la plus célèbre des interfaces pour gérer une base de données MySQL sur un serveur PHP. De nombreux hébergeurs, qu'ils soient gratuits ou payants, la proposent.Cette interface pratique permet d'exécuter, très facilement et très intuitivement de nombreuses requêtes comme :
créations de table de données,
insertions d'enregistrement,
mises à jour d'enregistrement,
[email protected] Copyright Raymond RAZAFIMAMONJY 161
mises à jour d'enregistrement,
suppressions d'enregistrement,
modifications de structure de la base de données.
Cette interface permet aussi de sauvegarder une base de données sous forme de fichier ainsi transférer facilement ses données.
Grâce à une fenêtre, cette interface permet de tester directement des requêtes directement en langage SQL, cela permet de gagner un temps précieux pour la mise au point des programmes
1 – Page d’accueil
MERISE : Modèle Logiques des Données (M.L.D)
et Modèle Physiques des Données
[email protected] Copyright Raymond RAZAFIMAMONJY 162
MERISE : Modèle Logiques des Données (M.L.D)
et Modèle Physiques des Données
[email protected] Copyright Raymond RAZAFIMAMONJY 163
MERISE : Modèle Logiques des Données (M.L.D)
et Modèle Physiques des Données
[email protected] Copyright Raymond RAZAFIMAMONJY 164
MERISE : Modèle Logiques des Données (M.L.D)
et Modèle Physiques des Données
[email protected] Copyright Raymond RAZAFIMAMONJY 165
MERISE : Modèle Logiques des Données (M.L.D)
et Modèle Physiques des Données
[email protected] Copyright Raymond RAZAFIMAMONJY 166
MERISE : Modèle Logiques des Données (M.L.D)
et Modèle Physiques des Données
[email protected] Copyright Raymond RAZAFIMAMONJY 167
MERISE : Modèle Logiques des Données (M.L.D)
et Modèle Physiques des Données
[email protected] Copyright Raymond RAZAFIMAMONJY 168
MERISE : Modèle Logiques des Données (M.L.D)
et Modèle Physiques des Données
[email protected] Copyright Raymond RAZAFIMAMONJY 169
MERISE : Modèle Logiques des Données (M.L.D)
et Modèle Physiques des Données
[email protected] Copyright Raymond RAZAFIMAMONJY 170
MERISE : Modèle Logiques des Données (M.L.D)
et Modèle Physiques des Données
[email protected] Copyright Raymond RAZAFIMAMONJY 171
MERISE : Modèle Logiques des Données (M.L.D)
et Modèle Physiques des Données
[email protected] Copyright Raymond RAZAFIMAMONJY 172
MERISE : Modèle Logiques des Données (M.L.D)
et Modèle Physiques des Données
[email protected] Copyright Raymond RAZAFIMAMONJY 173
MERISE : Modèle Logiques des Données (M.L.D)
et Modèle Physiques des Données
[email protected] Copyright Raymond RAZAFIMAMONJY 174
MERISE : Modèle Logiques des Données (M.L.D)
et Modèle Physiques des Données
[email protected] Copyright Raymond RAZAFIMAMONJY 175
MERISE : Modèle Logiques des Données (M.L.D)
et Modèle Physiques des Données
[email protected] Copyright Raymond RAZAFIMAMONJY 176
SQL: Structured Query Language
Pour bien commencer
Comment stocker une grande quantité d’informations ? faciles à accéder ?
faciles à mettre à jour ?
Dans les premières années de développement de l'informatique, les données étaient stockées dans des fichiers.
[email protected] Copyright Raymond RAZAFIMAMONJY 177
stockées dans des fichiers. Mais la manipulation des données restaient lourdes... Des techniques de fichiers indexés se sont développées pour la faciliter et ont fait naître le concept de base de données.
Mais c'est la définition du modèle relationnel de données défini en 1970 par Codd(Ingénieur IBM) qui en marqua l'essor. Le modèle relationnel est :
simple,
facile à appréhender,
même pour un non spécialiste
SQL: Structured Query Language
Et repose par ailleurs sur de solides bases théoriques.Le modèle relationnel représente l'information sous forme de tables à double entrée, chaque table représente un type d'objets (table des salariés, tables des articles, tables des véhicules, ...) , ou de relations entre objets (table des commandes liants les acheteurs aux articles).
Ces tables sont manipulées et mise à jour par un langage : le SQL (Structured querylanguage ou langage structuré de requêtes,).
[email protected] Copyright Raymond RAZAFIMAMONJY 178
Le succès du langage SQL est du essentiellement à sa simplicité.
La construction des ordres SQL est :très intuitive,
naturel,
logique
SQL: Structured Query Language
Les bases de données relationnelles organisent les données sous forme de Tables
(Tableaux de valeurs).
Chaque table représente un ensemble d'objets ou de relation entre ces objets. Dans l'exemple présenté, figurent l'ensemble :
des Equipes,
des Coureurs,
des Etapes.
[email protected] Copyright Raymond RAZAFIMAMONJY 179
des Etapes.
Les temps réalisés par les coureurs à chacune des étapes représentent une relation entre les coureurs et les étapes.
SQL: Structured Query Language
Les colonnes des tables s'appellent des attributs (ou champs).
Les lignes s'appellent des enregistrements , occurrences ou encore des n-uplets.
Chaque table doit avoir une clé primaire :Une valeur de la clé primaire ne peut apparaître qu'une seule fois au sein d'une table : ilidentifie l'enregistrement.
Une clé primaire sera donc constituée par un ensemble minimum d'attributs ou aucun
[email protected] Copyright Raymond RAZAFIMAMONJY 180
Une clé primaire sera donc constituée par un ensemble minimum d'attributs ou aucun attributs permettant de distinguer chaque enregistrement de façon unique.
SQL: Structured Query Language
Dans l'exemple présenté :
Dans la table COUREURS, chaque coureur a un numeroCoureur différent.Dans certains cas, plusieurs clés primaires sont possibles pour une seule table.On parle alors de clés candidates. Il faut alors en choisir une comme clé primaire.Les liens existants entre les ensembles sont réalisés par l'intermédiaire de clés étrangèresfaisant elles-mêmes référence à des clés primaires d'autres tables.
C'est ainsi que dans la table COUREURS, la clé étrangère code Equipe
[email protected] Copyright Raymond RAZAFIMAMONJY 181
C'est ainsi que dans la table COUREURS, la clé étrangère code Equipe(faisant référence à la clé primaire de même nom dans la table EQUIPES)traduit les deux règles de gestion suivantes :
Un COUREUR appartient à une EQUIPEUne EQUIPE est composée de plusieurs COUREURS
SQL: Structured Query Language
II Représentation du modèle relationnel
1) Représentation sous forme de liste
On décrit chaque table par la liste, entre parenthèses, de ses attributs. La clé primaire est soulignée et les clés étrangères marquées par un signe distinctif (ici *).
Exemple :
EQUIPES (codeEquipe, nomEquipe, directeurSportif)
[email protected] Copyright Raymond RAZAFIMAMONJY 182
EQUIPES (codeEquipe, nomEquipe, directeurSportif)
COUREURS (numeroCoureur, nomCoureur, codeEquipe*, codePays*)
ETAPES (numeroEtape, depart, arrivee, longueur)
TEMPS (numeroCoureur*, numeroEtape*, temps)
PAYS (codePays, NomPays)
SQL: Structured Query Language
Dans l'exemple présenté :
Dans la table COUREURS, chaque coureur a un numeroCoureur différent.Dans certains cas, plusieurs clés primaires sont possibles pour une seule table.On parle alors de clés candidates.
Il faut alors en choisir une comme clé primaire.Les liens existants entre les ensembles sont réalisés par l'intermédiaire de clés étrangèresfaisant elles-mêmes référence à des clés primaires d'autres tables.
[email protected] Copyright Raymond RAZAFIMAMONJY 183
C'est ainsi que dans la table COUREURS, la clé étrangère code Equipe(faisant référence à la clé primaire de même nom dans la table EQUIPES)traduit les deux règles de gestion suivantes :
Un COUREUR appartient à une EQUIPEUne EQUIPE est composée de plusieurs COUREURS
SQL: Structured Query Language
2) Représentation sous forme graphique
[email protected] Copyright Raymond RAZAFIMAMONJY 184
Un COUREUR appartient à une EQUIPEUne EQUIPE est composée de plusieurs COUREURSUn COUREUR est originaire d'un PAYSUn PAYS est représenté par plusieurs COUREURSUn COUREUR participe à plusieurs ETAPESUne ETAPE fait participer plusieurs COUREURS
SQL: Structured Query Language
Les commandes SQL
Définir comment vos données sont stockées
CREATE DATABASE est utilisé pour créer une nouvelle base de données vide. DROP DATABASE est utilisé pour détruire complètement une base de données existante. CREATE TABLE est utilisé pour créer une nouvelle table dans laquelle vos données seront enregistrées. ALTER TABLE est utilisé pour modifier la définition d'une table existante. DROP TABLE est utilisé pour détruire complètement une table existante.
Manipuler vos données
[email protected] Copyright Raymond RAZAFIMAMONJY 185
Manipuler vos données
SELECT est utilisé quand vous voulez lire (ou sélectionner) vos données. INSERT est utilisé quand vous voulez ajouter (ou insérer) de nouvelles données. UPDATE est utilisé quand vous voulez modifier (ou actualiser) des données existantes. DELETE est utilisé quand vous voulez enlever (ou supprimer) des données existantes. REPLACE est utilisé quand vous voulez ajouter ou modifier (ou remplacer) des données existantes ou non. TRUNCATE est utilisé quand vous voulez vider (ou supprimer) toutes les données d'un modèle.
Exemple :
SQL: Structured Query Language
Les commandes SQL
[email protected] Copyright Raymond RAZAFIMAMONJY 186
SQL: Structured Query Language
La commande SELECT sur une seule table
Pour bien commencer
Nous savons construire des tables sous phpMyAdmin, nous allons maintenant apprendre à en extraire des parties : un sous-ensemble d'enregistrements, un sous-ensemble de champs. L'exemple suivant parle de lui-même:
[email protected] Copyright Raymond RAZAFIMAMONJY 187
SQL: Structured Query Language
La commande SELECT sur une seule table
[email protected] Copyright Raymond RAZAFIMAMONJY 188
La syntaxe de l'ordre SELECT est naturelle comme le montre l'exemple ci-dessus : nous pouvons sélectionner les colonnes nom et prenom de tous les enregistrements, nous pouvons sélectionner les enregistrements dont le code service est 'ING'.
I) Présentation générale d'une requête SELECT
Une requête se présente généralement en 3 partie sous la forme " SELECT .. FROM .. WHERE " SELECT ... précise ce qu'on souhaite extraire :(libellés des champs : 'codeService', 'ville', ...) sous la forme d’une liste auxquels il est possible d’appliquer différents opérateurs et fonctions. FROM ... donne la liste des tables utilisées par la requête; WHERE .... ( facultatif) énonce une condition (filtre) que doivent respecter les enregistrements sélectionnés.
SQL: Structured Query Language
La commande SELECT sur une seule table
[email protected] Copyright Raymond RAZAFIMAMONJY 189
SQL: Structured Query Language
La commande SELECT sur une seule table
[email protected] Copyright Raymond RAZAFIMAMONJY 190
II) La clause WHERE
Elle permet l'expression d'un choix au sein de la table, elle permet de ne retenir qu'une partie des enregistrements de la table : c'est un filtre. Elle s'exprime à l'aide d'opérateurs
1- Opérateur de comparaison
permet la comparaison des valeurs de 2 champs, d'un champs et d'une valeur (ATTENTION, les chaînes de caractères doivent être encadrées de cotes simples : ' )
SQL: Structured Query Language
La commande SELECT sur une seule table
[email protected] Copyright Raymond RAZAFIMAMONJY 191
1- Opérateur de comparaison
SQL: Structured Query Language
La commande SELECT sur une seule table
[email protected] Copyright Raymond RAZAFIMAMONJY 192
1- Opérateur de comparaison
permet la comparaison des valeurs de 2 champs, d'un champs et d'une valeur (ATTENTION, les chaînes de caractères doivent être encadrées de cotes simples : ' )
SQL: Structured Query Language
La commande SELECT sur une seule table
[email protected] Copyright Raymond RAZAFIMAMONJY 193
2- opérateur logique : C'est ce qui permet de lier deux comparaisons
SQL: Structured Query Language
La commande SELECT sur une seule table
[email protected] Copyright Raymond RAZAFIMAMONJY 194
3 - opérateur de recherche
Ces instructions permettent de définir un sous-ensemble des enregistrements en spécifiant des conditions de recherche. Par si une valeur doit être dans une liste donnée : IN ('rouge','vert','jaune') , ou entre deux valeur : BETWEEN 100 AND 200 ..
SQL: Structured Query Language
La commande SELECT sur une seule table
[email protected] Copyright Raymond RAZAFIMAMONJY 195
3 - opérateur de recherche
SQL: Structured Query Language
La commande SELECT sur une seule table
[email protected] Copyright Raymond RAZAFIMAMONJY 196
III) La clause DISTINCT
Elle permet de n’afficher qu’un seul exemplaire lorsque la sélection pourrait afficher des lignes identiques.
SQL: Structured Query Language
La commande SELECT sur une seule table
[email protected] Copyright Raymond RAZAFIMAMONJY 197
IV ) La clause ORDER BY : Classement des données
La clause ORDER BY spécifie la liste des colonnes sur lesquelles l’affichage doit être trié (ASC ou DESC).
SQL: Structured Query Language
La commande SELECT sur une seule table
[email protected] Copyright Raymond RAZAFIMAMONJY 198
V) La clause GROUP BY : Regroupement des données
Elle permet de regrouper les enregistrements selon un de leurs champs. Attention : tous les champs affichés doivent être cités dans le GROUP BY
VI ) La clause HAVING
Elle permet de restreindre les groupes présentés par la clause GROUP BY. Elle ne s'emploie qu'avec la clause GROUP BY (La clause WHERE ne peut pas être utilisée derrière la clause GROUP BY, mais seulement avant)
SQL: Structured Query Language
La commande SELECT sur une seule table
[email protected] Copyright Raymond RAZAFIMAMONJY 199
SQL: Structured Query Language
Les commandes INSERT, DELETE, UPDATE, REPLACE
Si vous avez bien assimilé la requête SELECT, le requête de suppression, d'insertion et de mise à jour vous apparaîtront élémentaires.
Nous débuterons par l'ordre INSERT qui est en fait la création d'un nouvel enregistrement qui doit s'insérer dans sa table.
[email protected] Copyright Raymond RAZAFIMAMONJY 200
SQL: Structured Query Language
Les commandes INSERT, DELETE, UPDATE, REPLACE
I) INSERT
Pour créer un nouvel enregistrement (on dit "insérer un enregistrement dans la table"), il faut renseigner les champs de la table mais :certains sont obligatoires (option "not null" du champ au moment de sa définition lors de la création de la table), d'autres sont facultatifs (option "null" au moment de la définition de la table).
[email protected] Copyright Raymond RAZAFIMAMONJY 201
SQL: Structured Query Language
Les commandes INSERT, DELETE, UPDATE, REPLACEI) INSERT
[email protected] Copyright Raymond RAZAFIMAMONJY 202
SQL: Structured Query Language
Les commandes INSERT, DELETE, UPDATE, REPLACEII ) DELETE
La syntaxe de cet ordre est très intuitif, par exemple pour supprimer l'enregistrement dont le numéro de coureurs est 11 de la table des coureurs, il suffit d'énoncer comme ci-dessous :
[email protected] Copyright Raymond RAZAFIMAMONJY 203
SQL: Structured Query Language
Les commandes INSERT, DELETE, UPDATE, REPLACE
III) UPDATE
Pour mettre à jour un ou plusieurs champs d'un même enregistrement, il suffit d'énoncer à nouveau champ=valeur, pour changer d'équipe un coureur par exemple :
[email protected] Copyright Raymond RAZAFIMAMONJY 204
SQL: Structured Query Language
Les commandes INSERT, DELETE, UPDATE, REPLACE
IV) REPLACE
Cet ordre s'apparente à la mise à jour (UPDATE) mais opère différemment REPLACE=DELETE+INSERT : il remplace un enregistrement existant en le supprimant pour l'insérer à nouveau (contrairement à l'UPDATE, toutes les anciennes valeurs sont effacées).
[email protected] Copyright Raymond RAZAFIMAMONJY 205
SQL: Structured Query Language
Les commandes INSERT, DELETE, UPDATE, REPLACE
IV) REPLACE
2ème méthode : à partir d'association champ=valeur
[email protected] Copyright Raymond RAZAFIMAMONJY 206