Aller au contenu

Modéliser les données pour leur sens

Aussi en 28 langues

English · Español · 日本語 · Português (Brasil) · Français · Deutsch · Italiano · 한국어 · 简体中文 · Português (Portugal) · 繁體中文 · Bahasa Indonesia · Türkçe · Polski · Tiếng Việt · ไทย · Nederlands · العربية · עברית · Українська · हिन्दी · Русский · Svenska · Dansk · Norsk bokmål · Suomi · Español (México) · Deutsch (Schweiz)

An open sketchbook on a drafting table at dawn, a building sketched on one page and a data model on the other, with a pencil, an eraser, a cup and a lamp.
Image générée par IA

Guide d’étude du chapitre 2 du cours Data Architect. Lisez d’abord les six modules ; cette page vous aide à vérifier ce que vous en avez retenu.

À propos de ce guide d’étude. Il est construit uniquement à partir du contenu de ce cours et de la liste des objectifs publiée dans le guide d’examen de Salesforce. Il ne s’appuie jamais sur de vraies questions d’examen et ne prétend pas savoir ce que contient l’examen. Si vous avez passé l’examen, merci de ne pas m’en envoyer les questions : l’accord de certification interdit de les partager, et apprendre des réponses par cœur n’est de toute façon pas la bonne manière de devenir architecte.

Ce chapitre est la base de la section Data Modeling and Database Design de l’examen, qui représente un quart de l’examen. Il couvre la réflexion ; le chapitre suivant, L’architecture de données Salesforce, couvre la façon dont la plateforme la construit. La plupart de ce qui est testé sur les objets, les champs et les relations a donc besoin des deux chapitres.

Les points de ce chapitre les plus susceptibles de compter à l’examen. Chacun est rattaché à son objectif d’examen et renvoie à l’endroit où il est enseigné. Cochez-les au fur et à mesure.

DM-1 : comparer les techniques de conception d’un modèle de données Salesforce

L’examen est le plancher, pas le plafond. Voici les habitudes de ce chapitre dont un architecte a besoin, qu’une question les aborde ou non.

  • Oubliez Salesforce un instant. Modélisez le métier avant de le transposer en Compte et Contact.
  • Écoutez le mot qui en cache deux. Chez Steve Trucking, « client » était un partenaire distributeur et un destinataire.
  • Le modèle fait partie de la conversation. Votre premier modèle n’est pas fait pour être juste ; il est fait pour vous montrer où vous vous trompez.
  • Nommez les traits. Deux modèles avec les mêmes boîtes peuvent signifier des choses différentes.
  • Demandez « maintenant, ou dans le temps ? » pour chaque relation.
  • Unique, immuable, sans signification, jamais une donnée personnelle.
  • Mettez un fait à sa place, puis prenez du recul délibérément, et écrivez pourquoi.
  • La dénormalisation ne supprime pas la complexité ; elle la déplace. Sachez à qui appartient la vérité.
  • Une source de vérité, plusieurs formes : écrans, rapports, entrepôt et IA.
  • Ne concevez pas depuis la Configuration. Dessinez le modèle avant de cliquer sur Nouvel objet personnalisé.
  • Faites remonter chaque décision physique jusqu’à quelque chose dont le métier a besoin.
TermeEn une ligne
EntitéUne chose dont le métier se soucie et sur laquelle il conserve des données
Entité candidateUn nom qui pourrait devenir une entité, une fois qu’on s’est posé la question
AttributUn fait qui décrit une entité
RelationLa façon dont deux entités sont reliées, nommée dans le langage du métier
CardinalitéCombien de l’une sont liés à combien de l’autre
Caractère facultatifSi la relation est obligatoire, ou peut être nulle
Patte de corbeauLa marque pour « plusieurs » à l’extrémité d’un trait
Objet de jonctionLa façon dont Salesforce construit une relation plusieurs-à-plusieurs : un enfant des deux parents
Modèle conceptuelCe qui existe dans le métier et comment c’est lié ; pas de Salesforce
Modèle logiqueLes données : attributs, ID uniques et relations, toujours sans lien avec une plateforme
Modèle physiqueComment la plateforme va le construire : objets, champs et types de relation
Clé naturelleUn identifiant qui existe déjà dans le métier, comme le VIN d’un camion
Clé de substitutionUn identifiant créé uniquement pour identifier l’enregistrement
Identifiant externeL’ID qu’un autre système donne au même enregistrement, conservé et mis en correspondance
Normalisation (1FN, 2FN, 3FN)Mettre chaque fait à sa place : une valeur par champ, des faits sur toute la clé, pas de faits sur d’autres faits
DénormalisationCopier ou aplatir des données délibérément, pour une raison qu’on peut nommer
Anomalie de mise à jourLe même fait stocké à de nombreux endroits, de sorte qu’un changement laisse certaines copies fausses

De courts scénarios dans le style du cours. Décidez de votre réponse avant de l’ouvrir.

1. Le métier vous dit qu'une équipe conduit un camion. Six semaines plus tard, quelqu'un demande quelle équipe avait le camion 117 un jour donné. Que le modèle aurait-il dû contenir ?

Une affectation d’équipe : la relation entre équipe et camion comme enregistrement à part entière, avec une date de début, une date de fin et la tournée. Équipes et camions sont en plusieurs-à-plusieurs dans le temps, et le métier s’intéresse à l’historique. Un champ sur le camion aurait été écrasé. Relisez Le temps change les relations.

2. Une équipe propose d'utiliser le numéro de téléphone de chaque destinataire comme ID unique, « parce qu'il est unique ». Que répondez-vous ?

Il échoue aux tests : les numéros de téléphone changent et sont partagés, donc ils ne sont ni immuables ni uniques de façon fiable, et ce sont des informations personnelles qui seraient copiées dans chaque système relié à l’enregistrement. Utilisez un ID généré sans signification et gardez le numéro de téléphone comme attribut. Relisez Ensuite, il faut parler des identifiants uniques.

3. Une livraison a des champs Article 1, Article 2 et Article 3. Une livraison avec quatre articles arrive. Quel est le vrai problème, et la correction ?

Le modèle a caché une structure répétée dans des champs (un problème de première forme normale). La correction n’est pas un champ Article 4 ; c’est une entité article de livraison, enfant de la livraison, pour que chaque article soit un enregistrement. Relisez Première forme normale.

4. Chaque livraison stocke le nom du responsable du centre de distribution. Le responsable change. Qu'est-ce qui n'allait pas ?

Un fait concernant autre chose (le centre de distribution) était stocké sur la livraison : un problème de troisième forme normale, et maintenant une anomalie de mise à jour sur des centaines d’enregistrements. Le responsable a sa place avec le centre ; la livraison pointe vers le centre. Relisez Troisième forme normale.

5. Le type d'arrêt (livraison seule, avec installation, avec enlèvement) a besoin d'une durée, de compétences d'équipe et d'une liste de contrôle. Liste de sélection ou objet ?

Un objet. Il a plus d’une colonne d’information, il est géré par le métier et il change à son propre rythme. Le statut d’une livraison, une liste d’étiquettes courte et stable, reste une liste de sélection. Relisez Référence ou liste de sélection ?.

6. Les partenaires veulent un tableau de bord de ponctualité par région, et la région se trouve sur le centre de distribution. Vous copiez la région sur chaque livraison. Que devez-vous décider ?

À qui appartient la vérité, comment la copie reste synchronisée, et si les anciennes livraisons doivent garder la région qui était vraie à leur date ou suivre le centre s’il change de région. Dénormaliser a déplacé la complexité ; cela ne l’a pas supprimée. Relisez Parfois, les rapports l’emportent.

7. Un tour comme « Assis » pourrait être lié à des centaines de milliers d'animaux. Principal-détails ou référence de Tour de l'animal vers Tour ?

Une référence. Salesforce recommande au plus 10 000 enfants par parent, et un tour populaire dépasserait ce seuil. Principal-détails convient entre Tour de l’animal et Animal, car le tour d’un animal ne change jamais de parent et un animal ne connaît que quelques tours ; c’est aussi ce qui permet à l’animal de faire le cumul de son nombre de Tours connus. Relisez Assis, pas bouger, modèle.