Merise ****** Dans cette méthode on peut établir deux éléments: * Modèle de Conception des Données (**MCD**) * Modèle Physique des Données (**MPD**) Une entité ========== .. mpd:: A [Table="Client - id Nom Tél"]; Relation ======== Un employé a une et une seule société. Une société a 1 ou n employés. **MCD** .. mpd:: A [Table="Employé - id Nom"]; B [Table="Société - id Nom"]; R [Relation="A"]; R --(1,1) A; R --(1,n) B; **MPD** .. mpd:: A [Table="Employé - id # id_societe Nom"]; B [Table="Société - id Nom"]; A -> B; On peut aussi le représenté ainsi .. mpd:: A [Table="Employe _id_ %idSociete% Nom"]; B [Table="Societe - id Nom"]; A >- B; Relation binaire aux cardinalités complexes =========================================== Une commande est composée de 1 ou n produits distincts en certaine quantité. Un produit est présent dans 0 ou n commandes en certaine quantité. **MCD** .. mpd:: A [Table="Commande - id date"]; B [Table="produit - id lib"]; R [Relation="Compose quantite"]; R --(1,n) A; R --(0,n) B; **MPD** .. mpd:: A [Table="Commande - id date"]; B [Table="produit - id lib"]; R [Table="Ligne - id_commande - id_produit quantite"]; R -> A; R -> B; Relation n-aire =============== n étudiant parle une ou plusieurs langues avec un niveau. Chaque langue est donc parlée par 0 ou n étudiants avec un niveau. Pour chaque niveau, il y a 0 ou plusieurs étudiants qui parlent une langue. **MCD** .. mpd:: A [Table="Etudiant - id nom"]; B [Table="Niveau - id lib"]; C [Table="Langue - id langue"]; R [Relation="parle"]; R --(1,n) A; R --(0,n) B; R --(0,n) C; **MPD** .. mpd:: A [Table="Etudiant - id nom"]; B [Table="Niveau - id lib"]; C [Table="Langue - id langue"]; R [Table="PARLE - id_etudiant - id_niveau - id_langue"]; R -> A; R -> B; R -> C; Association Réflexive ===================== Prenons l'exemple d'une société organisée de manière pyramidale : chaque employé a 0 ou 1 supérieur hiérarchique direct. Simultanément, chaque employé est le supérieur hiérarchique direct de 0 ou plusieurs employés. **MCD** .. mpd:: A [Table="Employe - id nom"]; R [Relation="sup_hierarchique"]; R --(0,1) A; R --(0,n) A; **MPD** .. mpd:: A [Table="Employe - id - id_sup_hierarchique nom"]; A -> A;