Бітемпоральне моделювання

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Бітемпоральне моделювання — специфічний випадок техніки інформаційного моделювання темпоральних баз даних, спроєктований для обробки історичних даних уздовж двох різних ліній часу[1]. Це уможливлює перемотування інформації до того, «якою вона була насправді» у поєднанні з «як вона була записана» в певній точці часу. Задля можливості цього, інформація не може відкидатися, навіть, якщо вона помилкова. У, наприклад, фінансовій звітності часто бажано мати змогу перестворити старий звіт і так, як він насправді виглядав на час створення, і так, як він має виглядати з урахуванням виправлень даних, внесених після його створення.

Реалізації бітемпорального моделювання можуть бути здійснені за допомогою реляційних і графових баз даних. Як таке, бітемпоральне моделювання вважається відмітним від розмірнісного[en] та взаємодоповнювальним до нормалізації баз даних. Стандарт SQL:2011 забезпечує мовні конструкції для роботи з бітемпоральними даними. Проте, більшість поточних рішень усе ще специфічні для постачальника.

Філософія[ред. | ред. код]

Бітемпоральне моделювання використовує бітемпоральні структури як основні компоненти. Це має наслідком наявність у базі даних узгодженого типу темпоральності для всіх даних.

Переваги бітемпорального моделювання[ред. | ред. код]

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

  1. Якомога точніші дані, якими вони відомі зараз
  2. Дані, якими вони були відомі в будь-якій точці часу
  3. Коли та чому змінювалися найточніші дані

Реалізації у значущих продуктах[ред. | ред. код]

  • MarkLogic запровадив підтримку бітемпоральних даних у версії 8.0. Мітки дійсного та системного часу зберігаються в документах JSON або XML[2].
  • XTDB[3] (колишня Crux) — відкрита база даних, яка індексує документи за допомогою моделі даних «сутність — атрибут — значення» і забезпечує бітемпоральні запити на момент часу мовами SQL і Datalog.
  • TerminusDB[en] — відкрита, документо-орієнтована, графова база даних, яка використовує дельта-кодування та забезпечує бітемпоральну функціональність[4].

Див. також[ред. | ред. код]

Примітки[ред. | ред. код]

  1. Fowler, Martin (16 лютого 2005). Temporal Patterns. martinfowler.com (англійською) . Архів оригіналу за 4 квітня 2017. Процитовано 4 квітня 2017.
  2. Bridgwater, Adrian (24 листопада 2014). Data Is Good, «Bidirectionalized Bitemporal» Data Is Better. Forbes (англійською) . Архів оригіналу за 30 грудня 2021. Процитовано 30 грудня 2021.
  3. XTDB. 9 вересня 2021. Архів оригіналу за 20 травня 2022. Процитовано 2 червня 2022.
  4. terminusdb/terminusdb. GitHub (англійською) . Архів оригіналу за 12 вересня 2021. Процитовано 12 вересня 2021.