База даних звітності — Вікіпедія

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

Проблема[ред. | ред. код]

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

Вирішення[ред. | ред. код]

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

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

Зауваження[ред. | ред. код]

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

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

Переваги[ред. | ред. код]

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

Недоліки[ред. | ред. код]

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

Посилання[ред. | ред. код]