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

Намалюйте зв’язки

Також доступно 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)

A card model of a region from above: one distribution center joined by red threads to many small stores, and a second center with its own.
Зображення згенеровано ШІ

Модуль 2 з 6 розділу Моделювання даних заради змісту, розділ 2 курсу Data Architect. Кожен модуль самостійний. Попередній: Слухайте іменники · Наступний: Побудуйте логічну модель

Питання, на яке відповідає цей модуль: Як перетворити кандидатів у сутності на концептуальну модель даних?

У нас на дошці іменники. Тепер я хочу знати про лінії між прямокутниками, бо набір сутностей — це ще не модель даних. Чимало змісту живе саме у зв’язках. Роздрібний партнер має розподільчі центри. Маніфест містить доставки. Доставка йде до отримувача. Бригада працює на вантажівці. Кожне з цих тверджень каже мені щось про бізнес, і кожне дає ще одне запитання.

Почніть із мови бізнесу

Section titled “Почніть із мови бізнесу ”

Я все ще не хочу говорити про Salesforce. Я не питаю, чи має це бути зв’язок lookup чи master-detail, не думаю про об’єкти-з’єднувачі Salesforce (Salesforce Junction Object) і не вирішую, що станеться, коли видалять батьківський запис. Я намагаюся зрозуміти бізнес-зв’язок.

Візьміть «роздрібний партнер має розподільчі центри». Звучить просто. Але чи може роздрібний партнер мати один DC чи багато? У Steve Trucking кожен роздрібний партнер має регіональний розподільчий центр у кожному регіоні, який обслуговує Steve Trucking, тож багато. Чи може DC належати більш ніж одному роздрібному партнерові? Чи важливий DC сам по собі, з власним персоналом та історією, чи це просто адреса? Якщо роздрібний партнер піде, чи будуть нас ще цікавити його DC?

Це не запитання про Salesforce. Це бізнес-запитання, і відповіді можуть повністю змінити модель.

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

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

Одне правило, яке треба запам’ятати: кожну позначку читають біля того прямокутника, якого вона торкається. Позначка, найближча до прямокутника, — це максимум; наступна позначка — мінімум.

Як читати лінії Легенда мови діаграм курсу. Проста лінія без позначок означає, що дві речі пов’язані, але скільки — ще не вирішено. Одна риска на кінці означає один; «воронячі лапки» означають багато. З другою позначкою для обов’язковості: дві риски означають рівно один; кружечок і риска — нуль або один; риска і «воронячі лапки» — один або багато; кружечок і «воронячі лапки» — нуль або багато. Кожну позначку читають біля прямокутника, якого вона торкається. ПОЧАТОК: ПРОСТА ЛІНІЯ Проста лінія ці два пов’язані; скільки — ще не вирішено ДАЛІ: ОДИН ЧИ БАГАТО Один одна риска (поперечка): один із прямокутника, якого вона торкається Багато «воронячі лапки»: багато з прямокутника, якого вони торкаються ДАЛІ: ЧИ МОЖЕ БУТИ НУЛЬ? Рівно один дві риски: щонайменше один, щонайбільше один Нуль або один кружечок, потім риска: його може ще не бути Один або багато риска, потім «воронячі лапки»: щонайменше один Нуль або багато кружечок, потім «воронячі лапки»: жодного — теж нормально Читайте кожен кінець біля прямокутника, якого він торкається: найближча позначка — максимум; наступна — мінімум. © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Сидіти, чекати, моделювати

Section titled “Сидіти, чекати, моделювати ”

Перш ніж до Steve Trucking, повернімося до собак із модуля 1. У нас було п’ять прямокутників: Власник, Заводчик, Собака, Порода і Трюк. Тепер я питаю про лінії між ними.

Один чи багато? Власник може мати більше однієї собаки; в Ana їх дві. Собака має одного власника, принаймні в нашій моделі. Це «один до багатьох»: риска біля Власника, «воронячі лапки» біля Собаки. Заводчик має таку саму форму: один заводчик виводить багато собак.

Чи може не бути жодного? Max — із притулку, тож заводчика в нього взагалі немає. Кінець біля Заводчика отримує кружечок: собака має нуль або одного заводчика. Але кожна собака має власника, тож той кінець отримує другу риску: рівно один.

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

Що означає кожна лінія? Власник володіє собакою. Заводчик її виводить. Собака знає свої трюки. Назвіть лінії, і будь-хто зможе переказати вам модель.

Зараз чи з часом? Чи когось цікавить, наскільки добре Bella виконує «Сидіти» сьогодні, чи як вона до цього дійшла? Якщо дресирувальник перевіряє її кожні кілька місяців, кожна перевірка — окремий запис: Оцінка трюку з датою, рівнем навички і тим, хто перевіряв, під Трюком собаки, до якого вона належить. Навіть зв’язок, що став річчю, може мати власну історію.

Породу я поки лишаю непов’язаною. Це досі запитання з модуля 1 — окремий прямокутник чи слово на собаці, — і модуль 4 його розв’яже.

Модель собак зі зв’язками Сім прямокутників. Власник володіє однією або багатьма Собаками, і кожна Собака має рівно одного Власника. Заводчик розводить одну або багато Собак, а Собака має нуль або одного Заводчика. Собака знає нуль або багато Трюків собаки, а Трюк відомий у нуль або багатьох Трюках собаки; кожен Трюк собаки — це одна Собака й один Трюк. Кожен Трюк собаки перевіряється в нуль або багатьох Оцінках трюку. Порода стоїть окремо, ще не пов’язана. володіє розводить знає відомий у перевіряється в Власник Заводчик Собака Порода Трюк собаки Трюк Оцінка трюку рівно один нуль або один один або багато нуль або багато © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Кожне з цих запитань так само працює для справжнього бізнесу. Тепер поставмо їх Steve Trucking.

Питайте «один чи багато?»

Section titled “Питайте «один чи багато?» ”

Одне з перших, що я хочу зрозуміти про зв’язок, — його кардинальність. Це термін із баз даних; саме запитання набагато простіше: скільки цих може бути пов’язано зі скількома тих? На концептуальному рівні є три базові шаблони.

Це важливий крок у процесі: візьміть два різні іменники й зрозумійте їхній зв’язок. У більшості ситуацій це «один до багатьох» або «багато до одного». Лише в рідкісних випадках ви натрапите на «один до одного».

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

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

Базовий з’єднувач: один до багатьох Дві пари прямокутників, кожна з’єднана лінією в базовій нотації «воронячі лапки». Один Роздрібний партнер керує багатьма Розподільчими центрами: одна риска на кінці Роздрібного партнера, «воронячі лапки» на кінці Розподільчого центру. Один Маніфест перелічує багато Доставок, позначено так само. Біля кожного кінця є підпис словами. один Роздрібний партнер багато Розподільчих центрів керує один Маніфест багато Доставок перелічує Роздрібний партнер Розподільчий центр Маніфест Доставка Одна риска — це один. «Воронячі лапки» — це багато. Читайте кожен кінець від прямокутника, якого він торкається. © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Зв’язки «один до одного» існують, але вони рідкісні, і, знайшовши такий, я ставлю запитання. Це справді два різні іменники чи той самий? Якщо різні, який зв’язок «один до одного» між ними? І чи завжди він буде «один до одного», чи лише зараз? Це ключові запитання в проєктуванні моделі даних. Бригада і вантажівка здаються «один до одного» будь-якого ранку: двоє людей, одна вантажівка, один маршрут. За місяць — ні, і саме там ховається найцікавіший зв’язок цієї моделі.

Зв’язки «багато до багатьох» особливо цікаві, бо часто кажуть нам, що в бізнесі є ще одне поняття. Чи може бригада з часом їздити на кількох вантажівках? Так. Чи може на вантажівці їздити кілька бригад? За її життя — безперечно. Тож бригади й вантажівки мають зв’язок «багато до багатьох». Але тепер я хочу знати більше. Чи важливо бізнесу, коли бригада мала вантажівку? Для якого маршруту, якого дня? Хто зробив призначення? Якщо сам зв’язок несе важливу для нас інформацію, ми знайшли ще одне бізнес-поняття: Призначення бригади.

Це важлива звичка моделювання. Іноді найцікавіше — не один з іменників, які ми почули спочатку. Воно ховається у зв’язку між двома іменниками.

Зв’язки можуть ставати речами

Section titled “Зв’язки можуть ставати речами ”

Це одне з місць, де я хочу, щоб адміністратори почали мислити інакше. У Salesforce ми звикли говорити про об’єкти й поля, тож легко вважати прямокутники важливою частиною, а лінії — сантехнікою. Але сам зв’язок може мати бізнес-зміст.

Розгляньмо доставку і продукти в ній. Доставка може містити кілька продуктів, скажімо пральну машину і сушарку. Продукт, та сама модель холодильника, з’являється в тисячах доставок. Досить просто. Але що, як мені треба знати, скільки одиниць цього продукту в цій доставці, чи його встановлюють, чи вивозять старий? Мене вже цікавить не лише зв’язок між Доставкою і Продуктом. Мене цікавить Позиція доставки, і це поняття заслуговує на власну сутність.

Якщо ви прийшли із Salesforce, то, можливо, вже думаєте: «Це об’єкт-з’єднувач». І ви не помиляєтеся. Але я не хочу з цього починати. Позиція доставки — це бізнес-поняття, перш ніж стати об’єктом-з’єднувачем Salesforce (Salesforce Junction Object). Спершу бізнес, потім реалізація.

Кілька моїх звичок щодо таких сутностей-зв’язків, хоч би де їх зрештою збудували.

Назвіть її. Якщо в бізнесу вже є для неї слово, беріть його. Якщо немає, візьміть назви двох батьків і поєднайте їх. Подумайте про замовлення і продукт. Те, що між ними, — Order Item: замовлення і позиція в замовленні. Це дочірній запис обох батьків, і в Salesforce він може стати об’єктом-з’єднувачем Salesforce. Але яка назва йде першою: Item Order чи Order Item? Подивіться, що це за вид даних у кожного батька. Продукт — довідкові дані; замовлення — транзакційні, і саме замовлення визначає зв’язок. Тож це Order Item, або Order Product, так само як у Salesforce є Opportunity Product. У Steve Trucking це Позиція доставки (Delivery Item). Визначальна назва йде першою, і запис сортується поруч зі своїм власником у кожному списку, який ви колись побачите.

Дайте їй власний ключ. Спокусливо сказати, що Позиція доставки ідентифікується Доставкою плюс Продуктом, і на цьому зупинитися. Це складений ключ, а зі складеними ключами працювати набагато важче: кожна система, що посилається на запис, мусить нести обидві половини. Дайте сутності-зв’язку власний ідентифікатор, а Доставку плюс Продукт лишіть як правило унікальності, а не як ідентичність.

Два батьки, одна дитина: дайте їй власний ключ Два батьківські записи й один дочірній. Доставка (ID запису — ID доставки; дата доставки, статус) містить багато Позицій доставки. Продукт (ID запису — ID продукту; назва, номер моделі) є в багатьох Позиціях доставки. Позиція доставки стоїть між ними: вона має власний ID запису, ID позиції доставки, і несе ID доставки та ID продукту своїх двох батьків, а також кількість. Примітка внизу: ID доставки плюс ID продукту — правило унікальності, а не ID запису. ТРАНЗАКЦІЙНІ ДАНІ ДОВІДКОВІ ДАНІ містить є в Доставка ID доставки ID ЗАПИСУ Дата доставки Статус Позиція доставки ID позиції доставки ID ЗАПИСУ ID доставки ID продукту Кількість Product ID продукту ID ЗАПИСУ Назва Номер моделі ID доставки + ID продукту: правило унікальності, а не ID запису. один багато © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Зверніть увагу, чого на ній немає: серійного номера. Кількість і серійний номер не належать до одного запису. Кількість рахує кілька одиниць речі; серійний номер ідентифікує одну конкретну річ. Якщо бізнесу потрібні серійні номери, кожна одиниця стає окремим записом, і п’ять холодильників — це п’ять записів. Я не бачу сенсу в Позиції доставки з Деталлю позиції доставки під нею. Або одне, або інше: агрегат із кількістю або один запис на одиницю. Тут — кількість.

Стежте за атрибутами, яким потрібна історія. Деякі сутності-зв’язки після створення вже не змінюються: пральна машина в цій доставці лишається пральною машиною в цій доставці. Інші змінюються постійно. Цього тижня бригада має вантажівку 117, а наступного тижня вантажівка переходить до іншої бригади. Коли зв’язок змінюється, а бізнесу важливо, яким він був, сутності-зв’язку потрібні дати, і стежити варто саме за Призначенням бригади. Запитайте рано, чи важливе бізнесу зараз чи з часом; ми до цього зараз повернемося.

Зв’язки мають зміст не лише в кардинальності

Section titled “Зв’язки мають зміст не лише в кардинальності ”

«Один до багатьох» — недостатньо, щоб зрозуміти зв’язок. Я також хочу знати, що зв’язок означає.

Доставка має місце. Яке? Розподільчий центр, з якого вона виїжджає? Дім отримувача, куди вона їде? Це не взаємозамінні речі. Дві моделі можуть мати однакові прямокутники й однакову кардинальність, а лінії — означати зовсім різне. Тому добра модель — не просто прямокутники, з’єднані лініями. Лінії потребують назв. Якщо я дам іншому архітекторові свою діаграму, йому не доведеться вгадувати, що означає зв’язок, а якщо я показую її бізнесу, вона має говорити знайомою йому мовою.

Лініям потрібні назви Дві панелі, у кожній прямокутник Місце над прямокутником Доставка, з’єднані двома лініями, кожна позначена як одне місце до багатьох доставок. У лівій панелі, «Лінії без назв», обидві лінії без підписів і виглядають однаково. У правій панелі, «Лінії з назвами», одна лінія підписана «виїжджає з», а інша «доставляється до». Ті самі прямокутники, та сама кардинальність: лише назви кажуть, яка лінія яка. ЛІНІЇ БЕЗ НАЗВ ЛІНІЇ З НАЗВАМИ виїжджає з доставляється до Місце Доставка Місце Доставка Ті самі прямокутники, та сама кардинальність. Лише назви кажуть, яка лінія яка. © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Обов’язковість теж важлива

Section titled “Обов’язковість теж важлива ”

У запитанні «скільки?» ховається ще одне: чи зв’язок обов’язковий? Чи може доставка існувати до того, як її поставили в маршрут? Мусить: маніфест приходить за день-два до доставки, а маршрути остаточно формують напередодні ввечері. Чи може доставка існувати без роздрібного партнера? Ні; кожна доставка походить із маніфесту партнера. Це обов’язковість.

Знову ж таки, не стрибайте одразу до позначки Required у Salesforce. Є різниця між «кожна доставка мусить мати роздрібного партнера» і «Salesforce має вимагати поле роздрібного партнера під час створення запису». Вони можуть закінчитися однаковою реалізацією, але це не однакові твердження. Перше — бізнес-правило; друге — один зі способів його забезпечити. Як архітектори ми хочемо зрозуміти перше, перш ніж вирішувати друге.

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

Читаємо обидві позначки на кожному кінці Три прямокутники в ряд: Маніфест, Доставка, Зупинка. Маніфест перелічує одну або багато Доставок, і кожна Доставка є рівно в одному Маніфесті: дві риски на кінці Маніфесту, «воронячі лапки» і риска на кінці Доставки. Зупинка вивантажує нуль або багато Доставок, і кожна Доставка є на нуль або одній Зупинці: кружечок і «воронячі лапки» на кінці Доставки, кружечок і риска на кінці Зупинки. Найближча до прямокутника позначка — максимум; наступна — мінімум. рівно один Маніфест один або багато Доставок перелічує нуль або один Зупинка нуль або багато Доставок вивантажує Маніфест Доставка Зупинка Найближча до прямокутника: максимум (один чи багато). Наступна: мінімум (риска — щонайменше один, кружечок — нуль). © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Ось запитання, яке я ставлю часто: ви маєте на увазі зараз чи з часом?

Бригада працює на вантажівці. Зараз? На сьогоднішньому маршруті? Доки ці двоє працюють разом? Це дає різні моделі. Якщо бізнесу важливо лише, яку вантажівку бригада має сьогодні, модель може лишатися простою. Якщо потрібна кожна вантажівка, на якій бригада їздила, коли і на якому маршруті, нам потрібна історія, і знайдене нами Призначення бригади раптом стає дуже важливим.

Призначення бригади: яка бригада має яку вантажівку Два батьківські записи й один дочірній. Бригада (ID запису — ID бригади; назва, статус) виконує багато Призначень бригади. Вантажівка (ID запису — ID вантажівки, також відома за бортовим номером; марка, модель, статус) використовується в багатьох Призначеннях бригади. Кожне Призначення бригади має власний ID запису і несе ID бригади та ID вантажівки, без дат. Примітка внизу: яка бригада має яку вантажівку, але не відколи. виконує використовується в Бригада ID бригади ID ЗАПИСУ Назва Статус Призначення бригади ID призначення бригади ID ЗАПИСУ ID бригади ID вантажівки Вантажівка ID вантажівки ID ЗАПИСУ Бортовий номер ТАКОЖ ВІДОМИЙ ЯК Марка Модель Статус Яка бригада має яку вантажівку, але не відколи. один багато © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Це поширене джерело помилок моделювання. Ми моделюємо поточний стан, бо його видно на екрані. А за кілька тижнів роздрібний партнер подає претензію про пошкодження, і хтось питає: «Яка бригада мала вантажівку 117 17 березня?» І ми виявляємо, що перезаписували відповідь щоразу, коли змінювалося призначення.

Один зі способів зберегти цю історію — зробити призначення окремим записом. Коли бригаду призначають, ми створюємо Призначення бригади з датою початку. Коли призначення змінюється, ставимо дату завершення на старий запис і створюємо новий із власною датою початку. Тепер «хто мав це призначення пів року тому?» — просте запитання, а не розкопки в історії полів чи журналі змін даних. А щойно в бригади багато призначень, хтось запитає, яке з них поточне, тож я додав би ще прапорець Active.

Призначення бригади в часі: дати і прапорець Active Два батьківські записи й один дочірній, з датами. Бригада (ID запису — ID бригади; назва, статус) виконує багато Призначень бригади. Вантажівка (ID запису — ID вантажівки, також відома за бортовим номером; марка, модель, статус) використовується в багатьох Призначеннях бригади. Кожне Призначення бригади має власний ID запису і несе ID бригади та ID вантажівки, дату початку, дату завершення і прапорець Active. Примітка внизу: кожна зміна завершує одне призначення і починає наступне, а Active позначає поточне. виконує використовується в Бригада ID бригади ID ЗАПИСУ Назва Статус Призначення бригади ID призначення бригади ID ЗАПИСУ ID бригади ID вантажівки Дата початку Дата завершення Active Вантажівка ID вантажівки ID ЗАПИСУ Бортовий номер ТАКОЖ ВІДОМИЙ ЯК Марка Модель Статус Кожна зміна завершує одне призначення і починає наступне. Active позначає поточне. один багато © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Тож коли мені розповідають про зв’язок, я питаю не лише, як речі пов’язані. Я питаю: чи змінюється цей зв’язок і чи важлива нам його історія?

Малюйте, перш ніж налаштовувати

Section titled “Малюйте, перш ніж налаштовувати ”

Наша модель Steve Trucking стає корисною. Ми знаємо, які зв’язки «один до багатьох», де «багато до багатьох» ховає ще одне поняття, які зв’язки необов’язкові і які змінюються з часом. І ми досі не створили жодного об’єкта Salesforce. Це навмисно.

Концептуальна модель після модулів 1 і 2 Концептуальна модель Steve Trucking, згрупована як дані клієнтів, транзакційні дані та довідкові дані. Роздрібний партнер надсилає Маніфести, що перелічують Доставки, і керує Розподільчими центрами. Кожна Доставка виїжджає з Розподільчого центру, доставляється до Отримувача і містить Позиції доставки. Маршрути мають Зупинки, на яких вивантажують Доставки. Призначення бригади пов’язує Бригаду і Вантажівку з Маршрутом, тож модель зберігає, хто якою вантажівкою їздив і коли. ДАНІ КЛІЄНТІВ ТРАНЗАКЦІЙНІ ДАНІ ДОВІДКОВІ ДАНІ керує надсилає перелічує містить виїжджає з доставляється до має вивантажує працює на виконує використовується в Роздрібний партнер рітейлер, для якого доставляємо Отримувач хто отримує Маніфест список доставок партнера Доставка одне замовлення одному отримувачу Позиція доставки що у вантажівці Маршрут зупинки за один день Зупинка одна адреса на маршруті Призначення бригади хто, якою вантажівкою і коли Розподільчий центр звідки виїжджають доставки Бригада двоє людей Вантажівка транспортний засіб рівно один нуль або один один або багато нуль або багато © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Цю діаграму я маю могти показати бізнесу, і людям не треба знати Salesforce, щоб сказати мені, чи вона правильна. Якщо вони не можуть її перевірити, бо вона повна термінології Salesforce, я надто швидко перейшов до фізичного дизайну.

Що тут вирішує архітектор

Section titled “Що тут вирішує архітектор ”

Опрацьовуючи зв’язки в концептуальній моделі, я вирішую:

  • Як основні бізнес-сутності пов’язані між собою.
  • Чи кожен зв’язок «один до одного», «один до багатьох» чи «багато до багатьох» — зараз і з часом.
  • Чи кожен зв’язок обов’язковий чи необов’язковий.
  • Чи не ховає зв’язок «багато до багатьох» змістовне бізнес-поняття.
  • Чи змінюється зв’язок з часом і чи потрібна нам його історія.

Lookup чи master-detail, налаштування об’єкта-з’єднувача, каскадна поведінка і спільний доступ — це фізичні рішення; ми до них дійдемо. Зараз ми ще відповідаємо на важливіше запитання: як насправді працює цей бізнес? Щойно ми розуміємо сутності й зв’язки між ними, можна починати додавати деталі, що їх описують. Тоді наша концептуальна модель починає ставати логічною моделлю даних.