База даних звітності

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

Проблема

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

Вирішення

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

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

Зауваження

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

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

Переваги

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

Недоліки

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

Посилання

 

Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9

Portal di Ensiklopedia Dunia