В темпоральные базы данных, действительное время (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 г.). |
Смотрите также
использованная литература
- ^ Ричард Т. Снодграсс и Илсу Ан, «Временные базы данных», IEEE Computer 19 (9), сентябрь 1986 г., стр. 35-42.