Подскажите, пожалуйста, планируете ли вы возобновление программ высшего образования? Если да, есть ли какие-то примерные сроки? Спасибо! |
Моделирование темпоральных (временных) данных в хранилищах данных
Модель, основанная на таблицах событий
Разработка непрерывной исторической модели ставит своей целью создание модели данных, которая отражает историю изменения данных в ХД. Это модель сложнее, чем модель кумулятивных снимков, в том числе и с точки зрения ее интерпретации. Несмотря на это, непрерывная историческая модель является более релевантной для анализа временных рядов параметров предметной области.
Подход к моделированию темпоральных данных , основанный на фиксации событий предметной области, состоит в добавлении временной метки фиксации события (факта) как атрибута экземпляра сущности предметной области и отражении момента времени в таблице БД как истории жизни данных предметной области. Например, учет оплаты счетов покупателем.
Таблица реляционной БД, представляющая события предметной области, называется таблицей событий (Event Table). Рассмотрим пример такой таблицы учета оплаты счетов клиентом (табл. 7.7). Событие для сущности предметной области "Счет" состоит в создании экземпляра сущности, содержащего данные о том, что в такое-то время покупатель оплатил счет на определенную сумму. Временная метка в этой таблице фиксирует время оплаты счета покупателем, т.е. представляет время фиксации факта оплаты счета. Проектировщик может добавить в такую таблицу временную метку со временем, определенным пользователем. Данные таблицы поддерживают, в частности, историю оплаты счетов конкретным покупателем. Обновление данных этой таблицы не производится, поскольку она предназначена для накопления данных (только операции добавления).
Номер счета | Покупатель | Сумма оплаты | Дата оплаты |
---|---|---|---|
1001 | Иванов А.И. | 1000 | 12.01.2009 |
1003 | Петров Е.С. | 25000 | 17.11.2008 |
1006 | Васильева Е.К. | 300 | 23.02.2009 |
Таблицы событий используются, как правило, для представления данных, по которым должен быть подведен итог, т.е. выполнена операция суммирования для различных периодов времени.
Модель, основанная на таблицах состояния
Подход к моделированию темпоральных данных , основанный на фиксации состояний предметной области, состоит в добавлении временных меток для фиксации начала и завершения определенного состояния как атрибутов экземпляра сущности предметной области экземпляров сущности и отражении моментов времени начала и завершения определенного состояния сущности в таблице БД как истории жизни данных предметной области.
Таблица реляционной БД, представляющая состояние объектов предметной области, называется таблицей состояния (State Table). Под состоянием понимаются объекты, которые существуют в определенный период времени. Пример таблицы состояния (Empl) приведен в табл. 7.8. Кортежи таблицы – данные о зарплате сотрудников организации с указанием периода времени, когда установленная заплата выплачивается, т.е. состояние экземпляра сущности "Сотрудник" сохраняется. Пара временных меток "Время назначения" и "Время отмены" определяет период времени, в течение которого кортеж таблицы имеет смысл. Значение FOREVER равно наибольшему значению времени, принятому в системе.
Сотрудник (Name) | Отдел (Dept) | Зарплата (Sal) | Время назначения (SDate) | Время отмены (EDate) |
---|---|---|---|---|
Прохоров А.И. | ОВИР | 15000 | 01.06.2008 | FOREVER |
Соловьева М.Е. | ОВИР | 15000 | 01.06.2008 | FOREVER |
Амосова Е.С. | ОВИР | 10000 | 01.01.2008 | 30.05.2008 |
Амосова Е.С. | ОВИР | 12000 | 01.06.2008 | FOREVER |
Ниже приведены операторы манипулирования данными SQL для таблицы состояния Empl.
Добавление кортежа в таблицу:
INSERT INTO Empl VALUES ('Рыков А.С.','ОВИР','12000', '02.02.2009', FOREVER);
Обновление кортежа таблицы (обратите внимание на то, что обновление состоит из двух действий:
- установка времени отмены на время, указанное в приказе по организации, и
- добавление нового кортежа с временем назначения, равным времени, указанном в приказе по организации, и временем отмены, равным FOREVER ).
UPDATE Empl SET EDate="30.05.2008" WHERE Name = 'Амосова Е.С.' AND Edate=FOREVER; INSERT INTO Empl VALUES ('Амосова Е.С.','ОВИР','12000', '01.06.20089', FOREVER);
Как правило, из таблиц состояния удаление кортежей таблицы выполняется после завершения обработки данных и после процесса их архивирования.
Так же, как и таблицы событий, таблицы состояния используются для хранения данных, по которым должен быть подведен итог, т.е. выполнена операция суммирования для различных периодов времени. Заметим, что в таблице событий суммирование проводится по одному периоду времени, в то время как в таблице состояния заданный период может перекрываться с периодами определенных сущностей, и, следовательно, при агрегации данных, возможно, придется проводить разбиение заданного периода на несколько периодов с учетом существующего перекрытия периодов кортежей.