Действительное время
Эта статья нуждается в дополнительных цитатах для проверки . ( ноябрь 2008 г. ) |
В темпоральных базах данных время действия — это период времени, когда событие произошло или что-то было правдой в реальном мире, или, более формально, когда факт был действительным в смоделированной реальности.
называется события датой и временем Период действия — это интервал, основанный на времени события, которое в хранилище данных . [1] [2] Другие названия - это период времени применения. [1] или реальная временная шкала . [1] SQL:2011 поддерживает допустимое время с помощью так называемых таблиц периодов времени приложения . [3] [4] [5] [6] В таблице базы данных время действия часто представляется двумя дополнительными столбцами таблицы, например start_validtime
и end_validtime
. Временной интервал замыкается на нижней границе (обозначается [
) и открыта у своей верхней границы (обозначается )
).
На уровнях интеграции (например, хранилище данных ) действительное время контролируется исходной системой , которая доставляет данные в хранилище данных. [7] По многим причинам действительная временная шкала отличается от временной шкалы транзакции (то есть, когда данные поступают в хранилище), и важно, чтобы хранилище данных могло однозначно сообщать о том, что на самом деле произошло в прошлом, путем объединения этих двух временных шкал. [7] В битемпоральных моделях данных действительное время и время транзакции могут быть представлены двумерно в декартовой системе координат . Когда данные доставляются с уровня интеграции и должны быть представлены на уровне представления (часто в многомерной модели или широкой таблице ), часто желательно иметь данные только на одной временной шкале.
История
[ редактировать ]Термин «действительное время» был придуман Ричардом Т. Снодграссом и его докторантом (1986). [8]
По состоянию на декабрь 2011 года стандарт ISO/IEC 9075, язык базы данных SQL:2011, часть 2: SQL/Foundation, включал в определения таблиц положения, определяющие «таблицы периодов времени приложения» (то есть таблицы времени действия).
Пример
[ редактировать ][ Требуется дополнительная строка: «Зарегистрирована смерть Джона». ]
Дата | Что произошло в реальном мире | Действие базы данных | Что показывает база данных |
---|---|---|---|
1975-04-03 | Джон родился | Ничего | Нет человека по имени Джон Доу |
1975-04-04 | Отец Джона официально сообщает о рождении Джона | Вставлено:Человек (Джон Доу, Смоллвиль) | Джон Доу живет в Смоллвилле. |
1994-08-26 | После окончания школы Джон переезжает в Бигтаун, но забывает зарегистрировать свой новый адрес. | Ничего | Джон Доу живет в Смоллвилле. |
1994-12-26 | Ничего | Ничего | Джон Доу живет в Смоллвилле. |
1994-12-27 | Джон регистрирует свой новый адрес | Обновлено: Человек (Джон Доу, Бигтаун) | Джон Доу живет в Бигтауне. |
2001-04-01 | Джон умирает | Удален:Человек (Джон Доу) | Нет человека по имени Джон Доу |
Действительное время — это время, в течение которого факт является истинным в реальном мире. В приведенном выше примере таблица Person получает два дополнительных поля: valid_from
и valid_to
, указывая, когда адрес человека действителен в реальном мире. 4 апреля 1975 г. отец Джона с гордостью зарегистрировал рождение своего сына. Затем чиновник внесет в базу данных новую запись о том, что Джон живет в Смоллвилле с 3 апреля. Обратите внимание: хотя данные были вставлены 4-го числа, в базе данных указано, что информация действительна с 3-го числа. Чиновник еще не знает, переедет ли Джон когда-нибудь в другое место и когда это произойдет, поэтому в базе данных valid_to
заполняется бесконечностью (∞) или очень поздней датой (например, 2300-01-01). В результате получается эта запись в базе данных:
Человек (Джон Доу, Смоллвиль, 3 апреля 1975 г. , ∞) |
27 декабря 1994 г. Джон сообщает свой новый адрес в Бигтауне, где он живет с 26 августа 1994 г. Чиновник Бигтауна не меняет адрес текущей записи Джона Доу в базе данных. Он добавляет новое:
Персона (Джон Доу, Большой город, 26 августа 1994 г. , ∞) |
Исходная запись «Человек» (Джон Доу, Смоллвиль, 3 апреля 1975 г., ∞) затем обновляется (не удаляется!). Поскольку теперь известно, что Джон перестал жить в Смоллвилле 26 августа 1994 г., valid_to
запись может быть заполнена. База данных теперь содержит две записи для Джона Доу.
Человек (Джон Доу, Смоллвиль, 3 апреля 1975 г. , 26 августа 1994 г. ) |
Человек (Джон Доу, Бигтаун, 26 августа 1994 г. , ∞) |
Когда Джон умирает, база данных снова обновляется. Текущая запись будет обновлена с указанием даты смерти как последней. valid_to
для Бигтауна, поскольку Джон больше не живет в Бигтауне. Новая запись не добавляется. База данных теперь выглядит так:
1975-04-03-, 1994-08-26 ) |
Человек (Джон Доу, Бигтаун, 26 августа 1994 г. , 1 апреля 2001 г. ) |
См. также
[ редактировать ]- Время транзакции , когда данные были загружены в базу данных
- Время принятия решения , когда было принято решение об интерпретации истории в базе данных.
- Медленно меняющееся измерение
Ссылки
[ редактировать ]- ^ Jump up to: а б с «Не очень мягкое продолжение проблемы битемпоральных данных — Роелант Вос» .
- ^ «Основы API событий | Akeneo API» . api.akeneo.com . Проверено 10 февраля 2024 г.
- ^ «Световые вычисления | Обзор временных характеристик SQL: 2011» . IllustratedComputing.com . Проверено 18 июня 2024 г.
- ^ «Темпоральные таблицы прикладного периода» . www.ibm.com . Проверено 18 июня 2024 г.
- ^ «Периоды подачи заявления» . База знаний MariaDB . Проверено 18 июня 2024 г.
- ^ «Справочный портал SAP» . help.sap.com . Проверено 18 июня 2024 г.
- ^ Jump up to: а б «Нежное введение в проблемы с битемпоральными данными — Роелант Вос» .
- ^ Ричард Т. Снодграсс и Илсу Ан, «Временные базы данных», IEEE Computer 19 (9), сентябрь 1986 г., стр. 35-42.