Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

Chapitre 158 minIntermédiaire

Aide-mémoire Merise : vocabulaire, notations et règles

Par Josselyn C., prof de BTS SIO. Mis à jour le .

À la fin de ce chapitre, tu sauras

  • retrouver vite une définition ou une notation ;
  • revoir les règles de passage et les formes normales ;
  • appliquer les dix réflexes avant de rendre une copie.

Cet aide-mémoire rassemble sur une page le vocabulaire de Merise, la lecture des cardinalités, les règles de passage du MCD au MLD, les formes normales et les correspondances avec UML. Il sert à réviser la veille d'une épreuve ou à vérifier un point pendant un projet ; chaque ligne renvoie au chapitre qui l'explique.

Le vocabulaire

TermeDéfinition courteChapitre
Règle de gestionPhrase qui décrit un fonctionnement ou une contrainte de l'organisation2
Dictionnaire des donnéesTableau des données élémentaires à mémoriser : code, signification, type, longueur, nature2
Dépendance fonctionnelle (A → B)Une valeur de A détermine une seule valeur de B3
DF élémentaireAucune partie de la source ne suffit3
DF transitiveA → B et B → C donnent A → C, qui passe par B3
EntitéEnsemble d'objets de même nature à mémoriser4
OccurrenceUn objet précis d'une entité, ou un lien précis d'une association4
PropriétéDonnée élémentaire qui décrit une entité ou une association4
IdentifiantPropriété (ou groupe) qui distingue chaque occurrence ; souligné4
AssociationLien entre entités, nommé par un verbe4
Association porteuseAssociation qui a des propriétés, dépendant de toutes les entités reliées4
CardinalitéCouple (min, max) sur une patte, du côté de l'entité décrite5
CIFContrainte d'intégrité fonctionnelle : une patte au maximum 1, future clé étrangère5
Association réflexiveAssociation d'une entité avec elle-même, avec deux rôles6
Association ternaireAssociation de trois entités ; une occurrence est un triplet6
Entité faible, identifiant relatifEntité identifiée par son identifiant propre et celui d'une autre entité ; patte (1,1)6
Héritage (spécialisation, généralisation)Entité générique et entités spécialisées qui héritent de ses propriétés7
HistorisationConserver les valeurs passées d'une information7
MLD, schéma relationnelTables, clés primaires (soulignées) et clés étrangères (#)8
MPDScript SQL pour un SGBD précis9
1FN, 2FN, 3FNFormes normales : valeurs atomiques ; toute la clé ; rien que la clé10
Rétro-conceptionRetrouver le MCD d'une base existante11

Les cardinalités

CardinalitéSe litMot de l'énoncé
0,1zéro ou un« peut avoir un », « au plus un »
1,1exactement un« un seul », « chaque… a un »
0,nzéro, un ou plusieurs« peut avoir plusieurs », « éventuellement »
1,nau moins un« au moins un », « un ou plusieurs »

La question à poser : « Un [entité] [verbe] combien de [autre entité], au minimum, au maximum ? ». La réponse s'écrit du côté de l'entité de départ. En UML et en pattes de corbeau, elle s'écrit de l'autre côté.

Les règles de passage du MCD au MLD

Dans le MCDDans le MLD
EntitéTable ; l'identifiant devient la clé primaire
Association un à plusieurs (x,1 — x,n)Clé étrangère dans la table du côté du maximum 1 ; NOT NULL si 1,1, facultative si 0,1
Association plusieurs à plusieurs (x,n — x,n)Table de clé primaire composée des deux clés étrangères, plus les propriétés portées
Association un à un (0,1 — 1,1)Clé étrangère unique du côté 1,1
Association un à un (1,1 — 1,1)Fusion des deux tables, en général
Réflexive un à plusieursClé étrangère renommée dans la même table
Réflexive plusieurs à plusieursTable à deux clés étrangères renommées vers la même table
TernaireTable à trois clés étrangères ; clé primaire réduite s'il y a une CIF
Entité faibleClé primaire composée : clé étrangère vers l'entité forte et identifiant propre
HéritageUne table par entité, une seule table avec une colonne de type, ou les tables spécialisées seules
Entité DATE d'une association historiséePas de table : la date entre dans la clé primaire

Compte de contrôle : nombre de tables = entités + associations plusieurs à plusieurs + associations ternaires (en tenant compte de l'héritage).

Les traductions de l'héritage

SolutionTablesQuand
Une table par entitéLa table générique et une table par spécialisation, dont la clé primaire est une clé étrangèreCas général
Une seule tableLa table générique avec toutes les colonnes et une colonne de typePeu de propriétés propres, aucune association propre
Tables spécialisées seulesUne table par spécialisation, avec les colonnes communes recopiéesTotalité, et aucune association vers l'entité générique

Les contraintes

SymboleNomRègle
XExclusionAu plus un (une spécialisation, une association)
TTotalitéAu moins un
XT ou +PartitionExactement un
SSimultanéitéLes deux ou aucun
IInclusionLes liens d'une association sont inclus dans ceux d'une autre

Les formes normales

FormeConditionCe qu'on corrige
1FNUne clé primaire, des valeurs atomiques, pas de groupe répétitifUne liste dans une colonne, des colonnes tel1, tel2
2FN1FN, et chaque colonne non clé dépend de toute la cléUne dépendance d'une partie d'une clé composée
3FN2FN, et aucune colonne non clé ne dépend d'une autre colonne non cléUne dépendance transitive
FNBCToute source de DF est une clé candidateUne colonne non clé qui détermine une partie de la clé

À retenir : chaque colonne dépend de la clé, de toute la clé, et de rien que la clé.

Merise, UML et pattes de corbeau

MeriseUMLPattes de corbeau
EntitéClasseTable (entité)
PropriétéAttributColonne
Identifiant souligné(pas de notion)Clé primaire (PK)
0,10..1, de l'autre côtéCercle et trait, de l'autre côté
1,11, de l'autre côtéDeux traits, de l'autre côté
0,n* ou 0..*, de l'autre côtéCercle et patte de corbeau, de l'autre côté
1,n1..*, de l'autre côtéTrait et patte de corbeau, de l'autre côté
Association porteuseClasse-associationTable d'association
HéritageGénéralisation(selon l'outil)

Du dictionnaire au type SQL

DonnéeType MySQL
Identifiant attribué par le systèmeINT AUTO_INCREMENT
Code fixe (code postal, ISBN, SIRET)CHAR(n)
TexteVARCHAR(n), TEXT pour un texte long
MontantDECIMAL(p,s), jamais FLOAT
Quantité, compteurSMALLINT, INT
Date ; date et heureDATE ; DATETIME
Oui ou nonBOOLEAN
TéléphoneVARCHAR(20), jamais un nombre

Les dix réflexes

  1. Lire tout l'énoncé avant de dessiner, et numéroter les règles de gestion.
  2. Retirer les données calculées et les paramètres du dictionnaire.
  3. Distinguer l'objet et ses exemplaires : document et exemplaire, modèle et véhicule, spectacle et représentation.
  4. Donner un identifiant à chaque entité ; créer un numéro quand rien n'est unique et stable.
  5. Nommer chaque association par un verbe ; un nom cache souvent une entité.
  6. Justifier chaque cardinalité par une phrase, dans les deux sens.
  7. Se demander si l'on garde l'historique : si un même couple peut se répéter, il faut une entité ou une date dans l'identification.
  8. Placer la clé étrangère du côté du maximum 1.
  9. Vérifier la 3FN : la clé, toute la clé, rien que la clé.
  10. Écrire ce que le schéma ne garantit pas, et comment on le fera respecter (trigger, application).

Chapitre terminé !

Tu as lu ce chapitre jusqu'au bout. Passe au suivant tant que c'est frais.

chapitres
–
de série
–
du cours
–
Cours suivant : SQLRevoir le sommaire du cours