Диплом, курсовая, контрольная работа
Помощь в написании студенческих работ

Логическое проектирование. 
Аудит базы данных

РефератПомощь в написанииУзнать стоимостьмоей работы

Основная проблема в реализации таблиц аудита заключается в том, что исходная база данных содержит большое количество таблиц. Разработка базы данных продолжается и число таблиц может увеличиться. Поэтому необходимо реализовать автоматическое определение существующих в базе данных таблиц и создание для них таблиц аудита, а также возможность создавать журнал аудита для конкретной таблицы, заданной… Читать ещё >

Логическое проектирование. Аудит базы данных (реферат, курсовая, диплом, контрольная)

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

Как уже было отмечено ранее журнал аудита представляет собой систему из трех таблицы, создаваемых для каждой таблицы базы данных (таблица AuditInf — таблица для записи общей информации об изменяемых данных; таблица UpdateLog предназначена для фиксации изменений, произошедших в результате выполнения операции изменения (UPDATE); для фиксации изменений данных при выполнении операций вставка (INSERT) и удаление (DELETE) служит таблица InstDelLog). Таблицы аудита реализуются согласно схеме, представленной на рисунке 1.

Схема журнала аудита.

Рис. 1. Схема журнала аудита

Описание полей таблиц для аудита представлено в таблицах 1 и 2.

Таблица 1. Таблица AuditInf.

Содержание поля.

Имя поля.

Тип, длина.

Примечания.

Идентификатор

id.

int.

Первичный ключ.

Тип операции (INSERT, UPDATE или DELETE).

type.

char (6).

Обязательное поле.

Изменяемая таблица.

table_name.

nvarchar (200).

Обязательное поле.

Дата изменения.

date_change.

datetime.

Заполняется автоматически.

Пользователь.

user_change.

sysname.

Заполняется автоматически.

Приложение.

app.

sysname.

Заполняется автоматически.

Таблица 2. Таблица UpdateLog.

Содержание поля.

Имя поля.

Тип, длина.

Примечания.

Идентификатор

id.

int.

Первичный ключ.

Идентификатор таблицы AuditInf.

id_AI.

int.

Внешний ключ (к AuditInf).

Идентификатор изменяемой записи.

id_rec.

int.

Обязательное поле.

Название изменяемого поля.

column_name.

sysname.

Обязательное поле.

Старое значение.

old_value.

sql_variant.

Необязательное поле.

Новое значение.

new_value.

sql_variant.

Необязательное поле.

Таблица InstDelLog также содержит поля id_LOG (идентификатор, являющийся первичным ключом) и id_AI (Внешний ключ к общей таблице аудита AuditInf). Кроме того, к ним присоединяются измененные или удаленные столбцы исходной таблицы. Таким образом структура таблицы InstDelLog для каждой аудируемой таблицы будет уникальна.

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

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

Чтобы можно было без дополнительных действий запустить подсистему аудита, ее структура будет выглядеть следующим образом: будет создана процедура, запустив которую подсистема аудита и начнет свою работу, в ней сначала будут определены все таблицы в базе данных, затем созданы таблицы для аудита и запущен триггер, записывающий в них изменения данных.

Показать весь текст
Заполнить форму текущей работой