История и актуальные проблемы темпоральных баз данных


Линии времени - часть 2


В любой СУБД каждой записи базы данных можно сопоставить тот промежуток времени, когда данная запись была представлена в базе данных, т.е. промежуток времени между моментами добавления записи и ее удаления из базы данных. При этом отметим, что операция обновления, которая действительно вносит изменения в запись, понимается как составная операция удаления старой записи и добавления новой. Очевидно, что значения транзакционного времени не могут относиться к будущему. В подавляющем числе СУБД транзакционное время используется для работы с блокировками, журналом для восстановления системы. В некоторых системах администраторы даже могут использовать специальные расширения языка SQL, позволяющие получить доступ к транзакционному времени и истории изменений записей в базе данных.

СотрудникЗарплата
ALAN500
BOB400

Рис. 1. Таблица без темпоральных расширений

Чтобы ответить на вопрос, как соотносятся между собою модельное и транзакционное время, рассмотрим следующий пример. Пусть имеется таблица, в которой хранится информация о текущей зарплате сотрудника (рис. 1). При наличии поддержки действительного времени мы могли бы в любой момент сказать, какая у сотрудника была зарплата за произвольный период времени (рис. 2). Таким образом, данные о зарплате могут быть представлены как последовательность изменяющихся значений. При наличии поддержки транзакционного времени мы могли бы сказать, в какой момент в таблицу были внесены изменения (рис. 3).

СотрудникЗарплатадействительное
время
ALAN500с 1 января 2006
BOB300с 1 марта 2005
по 31 января 2006
BOB400с 1 февраля 2006

Рис. 2. Таблица с поддержкой действительного времени

Табельный
номерЗарплататранзакционное
время
ALAN500с 20 декабря 2005
BOB300с 3 марта 2005
по 27 января 2006
BOB500с 28 января 2006
по 5 февраля 2006
BOB400с 6 февраля 2006

Рис. 3. Таблица с поддержкой транзакционного времени

Теперь предположим, что для таблицы поддерживается как действительное, так и транзакционное время (рис. 4). Тогда в случае, если неправильно введенные данные были впоследствии исправлены, можно будет точно сказать, когда это было сделано.


Начало  Назад  Вперед



Книжный магазин