Що було першим, процес чи дані, які використовували цей процес? Я знаю, що це якесь питання "курка чи яйце", але у випадку програмного забезпечення я вважаю, що це процес.
Наприклад, ви можете створювати свою модель даних поступово, впроваджуючи один окремий випадок використання за один раз із простою пам'яттю (або що-небудь настільки просте в реалізації). Коли вам здається, що ви реалізували достатньо випадків використання для того, щоб окреслити основні сутності, ви можете замінити стійкість пам’яті справжньою базою даних, а потім продовжувати вдосконалювати схему, рухаючись вперед, по одному випадку використання за один раз.
Це виводить фокус із бази даних і переміщує її до основи проблеми: бізнес-правил. Якщо ви почнете з реалізації бізнес-правил, ви зрештою знайдете (до речі, процес, подібний до Natural Selection), які дані справді потрібні бізнесу. Якщо ви почнете з моделювання бази даних, без зворотного зв’язку про те, чи справді потрібні ці дані (або в такому форматі, або в такому рівні нормалізації тощо), ви або в кінцевому підсумку зробите багато пізніх коригувань у схему (яка може зажадати важких процедур міграції, якщо бізнес вже працює з нею), або вам доведеться реалізувати "робочі обходи" в бізнес-правилах, щоб скласти модель, що не відповідає настроюванню даних.
TL; DR: База даних залежить від бізнесу - вона їх визначає. Дані вам не знадобляться, якщо у вас немає процесу, який працює з ними (звіт - це також процес). Спершу реалізуйте процес, і ви знайдете, які дані йому потрібні. Спершу моделюйте дані, і ви, можливо, зможете порахувати, скільки припущень було неправильним, коли ви вперше моделювали їх.
Трохи поза темою, але дуже важливо: робочий процес, який я описую, часто використовується разом із дуже важливими практиками, такими як "Найпростіша річ, яка могла б працювати", тестова розробка та фокус на роз'єднанні вашої архітектури від деталей, які стати на шляху (підказка: база даних). Щодо останнього, ця розмова досить добре підводить ідею.