База даних звітності — патерн проєктування, який використовується для спрощення роботи із даними аналітики.

Проблема ред.

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

Вирішення ред.

Одним зі способів розв'язувати цю проблему — це додати ще одну базу даних звітності з іншою схемою.

 
Діаграма, що демонструє процес синхронізації бази даних звітності

Зауваження ред.

  • база даних звітності використовується тільки для читання даних
  • для зменшення навантаження на основну базу даних рекомендується синхронізувати бази в період неактивності системи (наприклад раз в ночі). При цьому якщо важлива достовірність даних, можна оновлювати їх за допомогою подій
  • хоч підхід із view розв'язує цю проблему, він є менш гнучким (зміни відбуваються на декількох рівнях, важкість тестування тощо)
  • якщо звіти надаються не на вимогу і немає додаткової фільтрації даних, можна уникнути використання додаткової бази даних. У цьому випадку можна одразу генерувати файли звітів та надавати посилання на них

Переваги та недоліки ред.

Переваги ред.

  • структура бази даних звітності спроєктований таким чином, щоб можна було легше генерувати звіти
  • дані денормалізовані для простішої роботи з ними
  • запити звітностей не навантажують основну базу даних

Недоліки ред.

  • використання додаткової бази даних
  • необхідно вносити зміни в механізм синхронізації при зміні структури основної бази даних
  • синхронізація даних викликає навантаження на основну базу даних

Посилання ред.