Скачать презентацию Темпоральные запросы Графеева Н Г 2014 Темпоральные Скачать презентацию Темпоральные запросы Графеева Н Г 2014 Темпоральные

10_Темпоральные запросы.pptx

  • Количество слайдов: 10

Темпоральные запросы Графеева Н. Г. 2014 Темпоральные запросы Графеева Н. Г. 2014

Темпоральные базы данных • Неформально темпоральные базы данных можно определить как такие базы, в Темпоральные базы данных • Неформально темпоральные базы данных можно определить как такие базы, в которых с каждым значением хранится информация о времени, когда это значение было актуальным. • Создать темпоральную базу можно обычными средствами, однако посмотрим на конкретном примере какие трудности нас ожидают….

Упражнение 1 • В демонстрационной базе ORACLE есть таблица EMPLOYEE, в которой указана должность Упражнение 1 • В демонстрационной базе ORACLE есть таблица EMPLOYEE, в которой указана должность сотрудника. Должность может меняться. Как нужно изменить структуру таблицы (а может и не одной), чтобы можно было отследить динамику должностных изменений сотрудника • (например, какие должности занимал CLARK в период с 2000 до 2013 года)?

CREATE TABLE ADDITIONAL_EMP ( JOB VARCHAR 2(9), EMPNO NUMBER(4, 0), START_DATE, END_DATE ) CREATE CREATE TABLE ADDITIONAL_EMP ( JOB VARCHAR 2(9), EMPNO NUMBER(4, 0), START_DATE, END_DATE ) CREATE OR REPLACE PROCEDURE CHANGE_JOB(EMPNO_P NUMBER, NEW_JOB VARCHAR 2, NEW_START_DATE) AS BEGIN UPDATE ADDITIONAL_EMP SET END_DATE = (NEW_START_DATE - 1) WHERE START_DATE = (SELECT MAX(START_DATE) FROM ADDITIONAL_EMP WHERE EMPNO = EMPNO_P); UPDATE EMP SET JOB = NEW_JOB WHERE EMPNO = EMPNO_P; INSERT INTO ADDITIONAL_EMP VALUES(NEW_JOB, EMPNO_P, NEW_START_DATE, NULL); END CHANGE_JOB; ВОЛЖИНА 341

Упражнение 2 • Зарплата и комиссионные сотрудника также могут изменяться во времени. • Как Упражнение 2 • Зарплата и комиссионные сотрудника также могут изменяться во времени. • Как необходимо изменить структуру таблиц, чтобы хранить и эти изменения? • Написать запрос, позволяющий выяснить, какая зарплата и комиссионные были у CLARK в тот период, когда он был менеджером.

ORACLE Flashback Data Archive • Для создания и управления историей изменений в настоящее время ORACLE Flashback Data Archive • Для создания и управления историей изменений в настоящее время используется множество различных подходов. Flashback Data Archive – отностительно новая функциональность начиная с Oracle Database 11 G, которая может автоматически отслеживать и хранить архивы всех изменений – прозрачно, безопасно и эффективно. Функция является частью пакета Oracle Total Recall Option. Она автоматически отслеживает каждое отдельное изменение данных, хранимых в СУБД, и поддерживает защищенное, эффективное и легко доступное архивирование данных. Полученные данные можно хранить столько, сколько требуется. Доступ к данным можно получить посредством обычных SQL-запросов.

Требования к Flashback Data Archive • Для использования Flashback Data Archive требуются специальные табличные Требования к Flashback Data Archive • Для использования Flashback Data Archive требуются специальные табличные пространства. • Кроме того, необходимо активировать Automatic Undo Management

Отслеживание изменений посредством Flashback Data Archive • • • • • Этап 1 Создать Отслеживание изменений посредством Flashback Data Archive • • • • • Этап 1 Создать новое табличное пространство с автоматическим управлением сегментами для хранения данных архивов (Automatic Segment Space Management): CREATE TABLESPACE tbs 1; Этап 2 Создать архив данных: CREATE FLASHBACK ARCHIVE fda 1 TABLESPACE tbs 1 RETENTION 5 YEAR; Это создает новый архив исторических данных под названием ‘fda 1’ в табличном пространстве tbs 1 с политикой хранения – 5 лет. Привилегия FLASHBACK ARCHIVE ADMINISTER требуется для создания нового архива данных. Доступны следующие представления статических данных: DBA/USER_FLASHBACK_ARCHIVE – отображает сведения о Flashback Data Archives DBA/USER_FLASHBACK_ARCHIVE_TS – отображает табличные пространства и связывает их с Flashback Data Archives Этап 3 Включить архивирование истории для желаемых таблиц: ALTER TABLE EMPLOYEES FLASHBACK ARCHIVE fda 1; Для таблицы EMPLOYEES теперь можно отслеживать изменения истории, и эти изменения будут храниться в архиве ‘fda 1’. При выполнении первой операции языка DML, создается таблица внутренней истории в ‘fda 1’. Для отслеживания изменений необходима привилегия на объект FLASHBACK ARCHIVE. Доступны следующие статические представления данных: DBA/USER_FLASHBACK_ARCHIVE_TABLES – отображает сведения о таблицах, для которых включено отслеживание изменений.

Запрос данных истории в Flashback Data Archive • Можно запрашивать любой столбец отслеживаемой таблицы Запрос данных истории в Flashback Data Archive • Можно запрашивать любой столбец отслеживаемой таблицы на любую дату, которая лежит в пределах заданного предела хранения. Например, запрос сведений о зарплате сотрудника с id=193 на 1 Июня, 2007. • SELECT last_name, first_name, salary FROM EMPLOYEES AS OF TIMESTAMP TO_TIMESTAMP ('2007 -0601 00: 00', 'YYYY-MM-DD HH 24: MI: SS') WHERE employee_id=193; • •

Упражнение 3 • Проверить, доступна ли функциональность • Flashback Data Archive простым пользователям ORACLE Упражнение 3 • Проверить, доступна ли функциональность • Flashback Data Archive простым пользователям ORACLE APEX.