Page 1
MERISE
Les objets du Modèle Conceptuel de Données : o Entité en vidéo
CLIENT(numClient , nom , prenom , adresse)
o Association en vidéo , lecture association en vidéo
o Cardinalités o 0,1 o 1,1 o 0,n o 1,n o n,n
MERISE1 - 2 types associations (CIF et CIM)
o CIF Contrainte d’Intégrité Fonctionnelle ou hiérarchique ou pére/fils Exemple :
CLIENT(numClient , nom , prenom , adresse)
COMMANDE(numCommande ,dateCommande , #numClient)
Une association de type 1:n (c’est à dire qui a les cardinalités maximales positionnées à « 1 » d’une côté de l’association et à « n » de l’autre côté) se traduit par la création d’une clé étrangère dans la relation correspondante à l’entité côté
« 1 ».
Cette clé étrangère référence la clé primaire de la relation correspondant à l’autre entité.
o La normalisation en vidéo CLIENT
numClient nom prénom adresse
1,1 0,n
CLIENT
numClient nom prénom adresse
COMMANDE
numCommande dateCommande passe
Page 2
o CAS PARTICULIERS : ASSOCITIONS 1,1 : On entend par association 1,1 une association dont les cardinalités maximales sont à 1 de chaque côté
Exemple 1 : Dans le cadre d’une course à la voile en solitaire, représentez le schéma relationnel après avoir fait le schéma Entité-Relations pour les informations suivantes : numero du marin, nom du marin, numéro du voilier, nom du voilier.
On formera une seule entité !
Exemple 2 : Dans un immeuble, un appartement peut bénéficier d’une place de parking ou pas mais jamais de plusieurs.
Travail à faire : Représentez le schéma relationnel après avoir fait le schéma Entité-Relations
APPARTEMENT (numAppartement , superficie) Clé primaire : numAppartement
PLACE_PARKING (numPlace , Etage , numAppartement) Clé primaire : numPlace
Clé étrangère : numAppartement qui référence numAppartement de la table APPARTEMENT
Exemple 3 : Une activité culturelle peut disposer d’un animateur ou pas mais jamais de plusieurs. Un animateur peut s’occuper au maximum d’une activité culturelle.
Travail à faire : Représentez le schéma relationnel après avoir fait le schéma Entité-Relations
ANIMATEUR (numAnimateur , nom) Clé primaire : numAnimateur
ACTIVITE_CULTURELLE (idActivite , nomActivite) Clé primaire : idActivite
ANIMER (numAnimateur , idActivite) Clé primaire : nimAnimateur + idActivite
Clé étrangère : numAnimateur qui référence numAnimateur de la table ANIMATEUR Clé étrangère : idActivite qui référence idActivite de la table ACTIVITE_CULTURELLE
1,1 0,1
bénéficie APPARTEMENT
numAppartement superficie
PLACE_PARKING numPlace Etage
0,1
0,1
anime ACTIVITE_CULTURELLE idActivité
nomActivité ANIMATEUR
numAnimateur nom
Page 3
o CIM Contrainte d’Intégrité Multiple ou non fonctionnelle Exemple :
COMMANDE(numCommande ,dateCommande) PRODUIT(refProduit, libelleProduit)
CONCERNER(#numCommande , #refProduit , quantité)
Une association de type n :n (c’est à dire qui a les cardinalités maximales positionnées à « n » des 2 côtés de l’association) se traduit par la création d’une relation dont la clé primaire est composée des clés étrangères référençant les relations correspondant aux entités liées par l’association.
Les éventuelles propriétés de l’association deviennent des attributs de la relation.
Si le nom du MCD n’est pas significatif, on peut renommer le nom de la table.
Dans notre exemple, plutôt que la table « CONCERNER », on la nommera « LIGNE_DE_COMMANDE ».
Exemple:
CAS GESTION DES ABSENCES DU PERSONNEL
MCD MERISE
ATTENTION DANS UN MCD PAS DE CLE ETRANGERE
SCHEMA RELATIONNEL (les clés étrangères apparaissent) Atelier(num_atelier, nom_atelier, superficie)
Mois(mois, libelle)
Qualification(num_qualif, libelle_qualif)
Employe(num_employe, nom_employe, ann_employe, num_qualif#, num_atelier#) Sabsenter(num_employe#, mois#, nb_jour)
Cumuler(num_employe#, annee, nb_jour)
1,n 1,n
COMMANDE numCommande dateCommande
PRODUIT refProduit libelléProduit concernee
quantité
Page 4
MODELE PHYSIQUE (les clés étrangères apparaissent)
o ASSOCIATION TERNAIRE en vidéo
MERISE 2 :
Exemple modèle assez complet / mcd démo de JMERISE
Page 5
o MERISE 2 : La spécialisation / généralisation en video
1 entité mère et x entités filles (x de 1 à n) Un exemple :
MCD (extrait)
o Les contraintes sur entités en vidéo SCHEMA RELATIONNEL
client(Num_client, Nom_client, Adresse_client, Code_postal_client, Ville_client, Prenom_client) hypermarche(Num_client#, Total_ventes)
superette(Num_client#, remise_accordee) MODELE PHYSIQUE
Page 6
o MERISE 2 : La réflexivité en vidéo MCD version hiérarchique
SCHEMA RELATIONNEL
Article(Code, Libelle, PU, type , code1#)
MCD version non hiérarchique
SCHEMA RELATIONNEL
Article(Code, Libelle, PU, type) Remplacable_par(code1#, code2#)
MODELE PHYSIQUE
Page 7
o MERISE 2 : L’entité faible en vidéo
Dans l’entreprise BÂTITOUT, les factures relatives à un chantier sont identifiés par le numéro de chantier et par un numéro d’ordre séquentiel (1,2 , 3, …). Exemple :
N°Chantier N°Facture
001 1
001 2
001 3
002 1
003 1
On vous communique deux extraits de MCD différents pour modéliser les faits ci-dessus : Solution 1
Solution 2
Quelle solution vous paraît meilleure ?
Dans la solution 1, on aboutit à des doublons (2 factures porteraient le même numéro)
La solution 2 est plus conforme car elle intègre le numéro de chantier dans l’identifiant de l’entité FACTURE et élimine ainsi le problème des doublons. Problème : dans un MCD on ne peut pas reprendre deux fois une même propriété. D’où la notation apportée par Merise 2.
Avec Merise 2 la représentation est la suivante :
Les parenthèses entourant les cardinalités 1,1 indiquent que N° Facture est un identifiant relatif.
L’identifiant complet de l’entité FACTURE est la concaténation de N°Chantier et N°Facture.
Cela se traduira au niveau relationnel par le schéma suivant : CHANTIER N°Chantier,AdrChantier, NomChef)
FA CTURE(#N° Chantier, N°Facture, DateFacture)
CHANTIER N° Chantier AdrChantier NomChef
FACTURE N°Facture DateFacture FIGURER
1,n 1,1
CHANTIER N° Chantier AdrChantier NomChef
FACTURE
N°Chantier+N°Facture DateFacture FIGURER
1,n 1,1
Le numéro de facture recommence à 1 à chaque changement de chantier.
CHANTIER N° Chantier AdrChantier NomChef
FACTURE N°Facture DateFacture FIGURER
1,n
(
1,1)
Page 8
o MERISE 2 : L’agrégation ou pseudo entité en video
Situation : Dans l’entreprise X, les représentants vendent des produits dans différentes régions.
Mais un produit pour une région donnée n’est vendu que par un seul représentant.
Le MCD suivant a été établi :
Extrait du SLD relationnel :
VENDRE(#N°Rep, #N°Région, #N°Produit) Extrait de la table Vendre :
N°REP N°Region N°Produit
1 5 1
1 3 2
2 5 2
2 3 3
3 3 1
3 5 3
CONCLUSION
:Ce MCD ne traduit pas correctement la réalité, il faut recourir à la structure « agrégation » qui permet d’associer une entité à un couple d’entités:
SLD relationnel :
REPRESENTANT(N°Rep, NomRep) REGION(N°Region, LibRegion)
PRODUIT(N°Produit, LibelleProduit, PrixProduit) COUVRIR(#N°Region,#N°Produit, #N°Rep)
PRODUIT N° Produit LibelleProduit PrixProduit REGION
N° Region LibRegion
REPRESENTANT N° Rep
NomRep VENDRE
1,n 1,n 1,n
PRODUIT N° Produit LibelleProduit PrixProduit REGION
N° Region LibRegion
REPRESENTANT N° Rep
NomRep
COUVRIR
1,n 1,n
VENDRE 1,1 1,n
L’association Couvrir est agrégée et constitue une pseudo-entité
Page 9
L’association qui relie REPRESENTANT à la pseudo entité est de type hiérarchique (cardinalité 1,1). Il est tout à fait possible que l’association soit non hiérarchique.
Exemple : On considère cette fois ci qu’un produit pour une région donnée, s’il est vendu, peut l’être vendu par plusieurs représentants :
Le MCD devient alors
Complétez le schéma relationnel : REPRESENTANT(N°Rep, NomRep) REGION(N°Region, LibRegion)
PRODUIT(N°Produit, LibelleProduit, PrixProduit) COUVRIR(#N°Region,#N°Produit)
VENDRE(#N°Rep, #N°Region,#N°Produit)
o MERISE2 / LES CONTRAINTES SUR ASSOCIATION en vidéo
De même que des contraintes peuvent être posées sur des entités, d'autres sont appliquées aux associations.
Il y a deux contraintes supplémentaires : l'inclusion (une occurrence d'une association doit exister dans une autre association) et l'égalité (inclusion dans les deux sens, une occurrence doit exister dans les deux relations).
De plus, il y a la notion de pivot.
Exemple : Un voilier ne peut être loué que s'il a été réservé. Si un locataire loue, c'est qu'il a réservé. Il y a une contrainte d'inclusion de 'Louer' dans ' Réserver' avec Locataire comme pivot.
PRODUIT N° Produit LibelleProduit PrixProduit REGION
N° Region LibRegion
REPRESENTANT N° Rep
NomRep
COUVRIR
1,n 1,n
VENDRE 0,n 1,n
Ajout d’une relation
Page 10
Pivot d'une contrainte
Le pivot est l'entité concernée par l'expression de la contrainte.
Exemple :
Un article est soit fabriqué (produit finis) avec des articles (matières), soit livré (ces matières) par un fournisseur (mais pas les deux). Les attributs sont différents selon le cas.
On aura :
1. Une contrainte d'exclusion : un article est fabriqué ou livré mais pas les deux.
2. Un pivot : il s'agit de l'article, pas du fournisseur ou autre.
Le pivot est désigné par une flèche ou un trait pointillé qui relie le symbole de la contrainte et le pivot.