Перейти до вмісту

Моделювання даних заради змісту

Також доступно 28 мовами

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) · Français (Canada) · 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.
Зображення згенеровано ШІ

Навчальний посібник до розділу 2 курсу Data Architect. Спершу прочитайте шість модулів; ця сторінка допоможе перевірити, що запам’яталося.

Про цей посібник. Він побудований лише на власному змісті цього курсу та на переліку цілей в опублікованому посібнику Salesforce до іспиту. Він ніколи не спирається на справжні екзаменаційні запитання і не претендує на знання того, що буде на іспиті. Якщо ви складали іспит, будь ласка, не надсилайте мені запитань із нього: сертифікаційна угода забороняє ними ділитися, а завчати відповіді — у будь-якому разі хибний шлях до того, щоб стати архітектором.

Цей розділ — фундамент для частини іспиту Data Modeling and Database Design, яка становить чверть іспиту. Він охоплює мислення; наступний розділ, Архітектура даних Salesforce, — те, як це будує платформа. Тож для більшості того, що перевіряють про об’єкти, поля і зв’язки, потрібні обидва розділи.

Пункти з цього розділу, які найімовірніше знадобляться на іспиті. Кожен прив’язаний до своєї цілі іспиту і веде туди, де його пояснено. Позначайте їх у міру просування.

DM-1: порівняння технік проєктування моделі даних Salesforce

Іспит — це підлога, а не стеля. Ось звички з цього розділу, потрібні архітекторові, незалежно від того, чи спитають про них колись на іспиті.

  • Забудьте на хвилину про Salesforce. Моделюйте бізнес, перш ніж відображати його на Account і Contact.
  • Слухайте слово, що ховає дві речі. У Steve Trucking «клієнт» — це роздрібний партнер і отримувач.
  • Модель — частина розмови. Ваша перша модель не має бути правильною; вона має показати, де ви помиляєтеся.
  • Називайте лінії. Дві моделі з однаковими прямокутниками можуть означати різне.
  • Питайте «зараз чи з часом?» про кожен зв’язок.
  • Унікальний, незмінний, без змісту, ніколи не персональні дані.
  • Покладіть факт на його місце, потім свідомо відступіть і запишіть чому.
  • Денормалізація не прибирає складність; вона її переносить. Знайте, хто володіє правдою.
  • Одне джерело правди, багато форм: екрани, звіти, сховище даних і ШІ.
  • Не проєктуйте з Setup. Намалюйте модель, перш ніж натиснути New Custom Object.
  • Простежуйте кожне фізичне рішення назад до чогось, що потрібно бізнесу.
ТермінОдним реченням
СутністьРіч, яка важлива бізнесу і про яку він зберігає дані
Кандидат у сутностіІменник, який може стати сутністю, коли ви про нього розпитаєте
АтрибутФакт, що описує сутність
Зв’язокЯк дві сутності поєднані, названо мовою бізнесу
КардинальністьСкільки одних пов’язано зі скількома інших
Обов’язковістьЧи зв’язок обов’язковий, чи може бути нуль
«Воронячі лапки»Позначка «багато» на кінці лінії
Об’єкт-з’єднувачСпосіб Salesforce будувати зв’язок «багато до багатьох»: дочірній запис обох батьків
Концептуальна модельЩо існує в бізнесі і як воно пов’язане; без Salesforce
Логічна модельДані: атрибути, унікальні ID і зв’язки, досі не прив’язані до платформи
Фізична модельЯк платформа це збудує: об’єкти, поля і типи зв’язків
Природний ключІдентифікатор, що вже існує в бізнесі, як VIN вантажівки
Сурогатний ключІдентифікатор, створений лише для ідентифікації запису
Зовнішній ідентифікаторID того самого запису в іншій системі, що зберігається й зіставляється
Нормалізація (1НФ, 2НФ, 3НФ)Кожен факт — на його місці: одне значення на поле, факти про весь ключ, жодних фактів про інші факти
ДенормалізаціяСвідоме копіювання чи сплощення даних із причиною, яку можна назвати
Аномалія оновленняТой самий факт зберігається в багатьох місцях, тож одна зміна лишає деякі копії хибними

Короткі сценарії в стилі курсу. Визначтеся з відповіддю, перш ніж розгорнути її.

1. Бізнес каже вам, що бригада їздить на вантажівці. Через шість тижнів хтось питає, яка бригада мала вантажівку 117 певного дня. Що мала містити модель?

Призначення бригади: зв’язок між бригадою і вантажівкою як окремий запис із датою початку, датою завершення і маршрутом. З часом бригади й вантажівки пов’язані як «багато до багатьох», а бізнесу важлива історія. Поле на вантажівці було б перезаписане. Перечитайте Час змінює зв’язки.

2. Команда пропонує використовувати номер телефону кожного отримувача як унікальний ID, «бо він унікальний». Що ви скажете?

Він не проходить тестів: номери телефонів змінюються і ними діляться, тож він не незмінний і не надійно унікальний, і це персональна інформація, яку копіювали б у кожну систему, пов’язану із записом. Використайте згенерований ID без змісту, а номер телефону тримайте як атрибут. Перечитайте Далі треба поговорити про унікальні ID.

3. Доставка має поля Item 1, Item 2 і Item 3. Надходить доставка з чотирма позиціями. У чому справжня проблема і як її виправити?

Модель сховала повторювану структуру всередині полів (проблема першої нормальної форми). Виправлення — не поле Item 4; це сутність Позиція доставки, дочірня до Доставки, щоб кожна позиція була записом. Перечитайте Перша нормальна форма.

4. Кожна доставка зберігає ім’я менеджера розподільчого центру. Менеджер змінюється. Що пішло не так?

Факт про щось інше (розподільчий центр) зберігали на доставці: проблема третьої нормальної форми, а тепер ще й аномалія оновлення в сотнях записів. Менеджерові місце в розподільчому центрі; доставка посилається на розподільчий центр. Перечитайте Третя нормальна форма.

5. Вид зупинки (лише доставка, зі встановленням, з вивезенням) потребує тривалості, навичок бригади і чек-листа. Список вибору чи об’єкт?

Об’єкт. У нього більше однієї колонки інформації, ним керує бізнес, і він змінюється за власним графіком. Статус доставки, короткий стабільний перелік міток, лишається списком вибору. Перечитайте Lookup чи список вибору?.

6. Партнери хочуть показник вчасності за регіонами, а регіон живе на розподільчому центрі. Ви копіюєте регіон на кожну доставку. Що треба вирішити?

Хто володіє правдою, як копія лишається синхронізованою і чи мають старі доставки зберігати регіон, що був правдою на момент доставки, чи слідувати за розподільчим центром, якщо він переїде. Денормалізація перенесла складність, а не прибрала її. Перечитайте Іноді перемагає звітність.

7. Трюк на кшталт «Сидіти» може бути пов’язаний із сотнями тисяч улюбленців. Master-detail чи lookup від Трюку улюбленця до Трюку?

Lookup. Настанова Salesforce — не більше 10 000 дочірніх записів на одного батька, а популярний трюк її перевищить. Master-detail пасує від Трюку улюбленця до Улюбленця, бо трюк улюбленця ніколи не змінює батька, а один улюбленець знає лише кілька трюків; саме це й дає улюбленцю змогу підсумовувати свій лічильник Відомих трюків. Перечитайте Сидіти, чекати, моделювати.