Действительное время - Valid time

В темпоральные базы данных, действительное время (VT) - это период времени, в течение которого факт базы данных действителен в смоделированной реальности. По состоянию на декабрь 2011 г., ISO / IEC 9075, Язык баз данных SQL: 2011 Часть 2: SQL / Foundation включил в определения таблиц пункты для определения «таблиц периодов времени приложения» (то есть таблиц действительного времени). Действительное время был придуман Ричард Т. Снодграсс и его докторант.[1]

В таблице базы данных действительное время часто представлено двумя дополнительными столбцами таблицы. StartVT и EndVT. Временной интервал закрывается на своем нижняя граница и открыть на своем верхняя граница.


пример:

ДатаЧто случилось в реальном миреДействие базы данныхЧто показывает база данных
3 апреля 1975 г.Джон родилсяНичегоНет человека по имени Джон Доу
4 апреля 1975 г.Отец Джона официально сообщает о рождении ДжонаВставлено: Человек (Джон Доу, Смоллвиль)Джон Доу живет в Смоллвиле
26 августа 1994 г.После окончания школы Джон переезжает в Бигтаун, но забывает зарегистрировать свой новый адрес.НичегоДжон Доу живет в Смоллвиле
26 декабря 1994 г.НичегоНичегоДжон Доу живет в Смоллвиле
27 декабря 1994 г.Джон регистрирует свой новый адресОбновлено: Человек (Джон Доу, Bigtown)Джон Доу живет в Бигтауне
1 апреля 2001 г.Джон умираетУдалено: Человек (Джон Доу)Нет человека по имени Джон Доу

Действительное время - это время, в течение которого факт является истинным в реальном мире. В приведенном выше примере таблица Person получает два дополнительных поля, Valid-From и Valid-To, указывающие, когда адрес человека был действителен в реальном мире. 4 апреля 1975 года отец Джона с гордостью зарегистрировал рождение сына. Затем чиновник внесет новую запись в базу данных о том, что Джон живет в Смоллвилле с 3 апреля. Обратите внимание, что, хотя данные были вставлены 4-го числа, в базе данных указано, что информация действительна с 3-го числа. Чиновник еще не знает, переедет ли Джон когда-нибудь в лучшее место, поэтому в базе данных Valid-To заполнено бесконечностью (∞). Результатом этой записи в базе данных:

Человек (Джон Доу, Смоллвиль, 3 апреля 1975 г., ∞).

27 декабря 1994 г. Джон сообщает свой новый адрес в Бигтауне, где он живет с 26 августа 1994 г. Чиновник Бигтауна не изменяет адрес текущей записи Джона Доу в базе данных. Он добавляет новый:

Человек (Джон Доу, Большой город, 26 августа 1994 г., ∞).

Исходная запись Person (John Doe, Smallville, 3 апреля 1975 г., ∞) затем обновляется (не удаляется!). Поскольку теперь известно, что Джон перестал жить в Смоллвилле 26 августа 1994 г., можно заполнить запись Valid-To. Теперь база данных содержит две записи для Джона Доу.

Человек (Джон Доу, Смоллвиль, 3 апреля 1975 г., 26 августа 1994 г.).
Человек (Джон Доу, Бигтаун, 26 августа 1994 г., ∞).

Когда Джон умирает, база данных обновляется еще раз. Текущая запись будет обновлена, и в ней будет указано, что Джон больше не живет в Бигтауне. Никаких новых записей не добавляется, потому что официальные лица никогда не сообщают рай как новый адрес. База данных теперь выглядит так

Человек (Джон Доу, Смоллвиль, 3 апреля 1975 г., 26 августа 1994 г.).
Человек (Джон Доу, Бигтаун, 26 августа 1994 г., 1 апреля 2001 г.).

Смотрите также

использованная литература

  1. ^ Ричард Т. Снодграсс и Илсу Ан, «Временные базы данных», IEEE Computer 19 (9), сентябрь 1986 г., стр. 35-42.