- •Основные свойства рбд
- •Представления (View) . Индексирование представлений.
- •Хранимые процедуры.
- •Вложенные и рекурсивные триггеры.
- •Применение триггеров.
- •Понятие транзакций. Уровни изоляции транзакций.
- •Типы блокировок. Динамические блокировки.
- •Распределенные транзакции. Двухфазная фиксация транзакций.
- •Режимы аутентификации.
- •Методы резервного копирования.
- •Способы восстановления данных из резервных копий.
- •Способы восстановления поврежденных данных
- •Мониторинг системы бд цели задачи методы.
- •Служба dts . Создание и использование пакетов dts.
- •Модели репликации sql Server.
- •Планирование репликации.
Вложенные и рекурсивные триггеры.
Вложенным триггером называется такой триггер, запуск которого происходит не в качестве непосредственного результата вызова на выполнение некоторого оператора, а в результате выполнения оператора, вызванного в другом триггере.
В связи с применением вложенных триггеров фактически мог)т возникать целые цепочки событий, если запуск одного триггера приводит к запуску другого триггера, который в свою очередь вызывает запуск еще одного триггера, и т.д. Возможная степень вложенности, возникающая при запуске триггеров, зависит от описанных ниже факторов.
Триггеры допускают рекурсивный вызов, если содержат такой код, вьшолнение которого в конечном итоге может вызвать запуск того же триггера. Рекурсивный запуск может происходить непосредственно (в результате действия запроса, применяемого в таблице, на которой задан триггер) или опосредованно (в результате запуска вложенных триггеров).
Применение рекурсивного вызова триггеров связано с такой опасностью, что в той или иной форме может быть непреднамеренно образован цикл. Из этого следует, что в приложении должен быть предусмотрен определенный способ проверки рекурсии, позволяющий в случае необходимости остановить процесс рекурсивного вызова.
Применение триггеров.
Типичное применение триггеров - дополнять встроеннные средства
аудитинга ORACLE. Хотя можно писать триггеры, которые будут
записывать информацию, аналогичную той, что регистрируется
командой AUDIT, триггеры следует применять лишь в том случае,
если вам требуется более детальная аудиторская информация.
Например с помощью триггеров можно реализовать отслеживание на
уровне значений столбцов в строках таблиц.
Понятие транзакций. Уровни изоляции транзакций.
Транзакция - группа последовательных операций с базой данных, которая представляет собой логическую единицу работы с данными. Транзакция может быть выполнена либо целиком и успешно, соблюдая целостность данных и независимо от параллельно идущих других транзакций, либо не выполнена вообще и тогда она не должна произвести никакого эффекта.
Уровень изолированности транзакций — значение, определяющее уровень, при котором в транзакции допускаются несогласованные данные, то есть степень изолированности одной транзакции от другой. Более высокий уровень изолированности повышает точность данных, но при этом может снижаться количество параллельно выполняемых транзакций. С другой стороны, более низкий уровень изолированности позволяет выполнять больше параллельных транзакций, но снижает точность данных.
Незавершенное (черновое) чтение (read uncommitted) — минимальный уровень изоляции гарантирует только физическую целостность при записи данных. Процессы-читатели могут считывать данные незавершенной транзакции процесса-писателя.
Подтвержденное чтение (read committed) — процессы-читатели не могут считывать данные незавершенной транзакции, но процессы-писатели могут изменять уже прочитанные читателем данные.
Повторяемое чтение (repeatable read) — повторное чтение данных вернет те же значения, что были и в начале транзакции. При этом процессы-писатели могут вставлять новые записи, имеющие статус фантома при незавершенной транзакции.
Сериализуемость (serializable) — максимальный уровень изоляции, гарантирует неизменяемость данных другими процессами до завершения транзакции.
Моментальный срез (snapshot) — данный вид изоляции не входит в рекомендации стандарта SQL 92, но он реализован во многих СУБД. Процессы-читатели не ждут завершения транзакций писателей, а считывают данные, точнее их версию, по состоянию на момент начала своей транзакции.
