Введение в дисциплину «Безопасность систем баз данных». Теоретические основы построения реляционных баз данных. Верификация баз данных и проведение аудита в СБД. Распределенные базы данных, страница 75

create trigger trDocumentsInsAudit

            on documents

            for insert

as

            insert into dml_audit VALUES(session_user, getdate(), ‘Вставка’, ‘documents’)

go

create trigger trDocumentsUpdAudit

            on documents

            for update

as

            insert into dml_audit VALUES(session_user, getdate(), ‘Обновление’, ‘documents’)

go

create trigger trDocumentsDelAudit

            on documents

            for delete

as

            insert into dml_audit VALUES(session_user, getdate(), ‘Удаление’, ‘documents’)

Из примера видно, что каждый триггер «знает» свой оператор, поэтому в соответствующее поле таблицы dml_audit будет заноситься либо «Вставка» (триггером trDocumentsInsAudit), либо «Обновление» (trDocumentsUpdAudit), либо «Удаление» (trDocumentsDelAudit).


9. Распределенные базы данных

9.1. Понятия распределенных БД и СУБД

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

Поиски решений этой проблемы привели к созданию различных концепций распределенных БД и распределенных СУБД.

Распределенная БД представляет собой набор логически связанных данных и их описаний, физически размещенных на разных узлах компьютерной сети. Распределенной СУБД называется программный комплекс, управляющий распределенными БД и делающий распределенность данных прозрачной для конечного пользователя. Распределенную СУБД по-другому называют системой управления распределенными базами данных (СУРБД).

Преимущества и недостатки распределенных БД

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

1. Повышение доступности данных.

В случае отказа сервера недоступной становится не вся информация, а только ее часть.

2. Повышение надежности.

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

3. Повышение производительности.

4. Модульность и, как следствие, легкая расширяемость системы.

В то же время, можно отметить и существенные недостатки распределенных систем.

1. Повышение сложности.

2. Увеличение стоимости затрат на приобретение и сопровождение СУРБД по сравнению с централизованной СУБД.

3. Сложность процедур управления доступом и контроля целостности информации.

4. Проблемы стандартизации.

5. Недостаток опыта эксплуатации.

6. Усложненные процедуры разработки распределенных БД.

9.2. Компонентная архитектура СУРБД

В СУРБД выделяют следующие компоненты:

·  локальные СУБД – стандартная СУБД, обрабатывающая данные на локальном компьютере в составе распределенной системы;

·  локальные системные каталоги – системная информация локальных СУБД;

·  компонент передачи данных – программный компонент взаимодействия серверов;