Вход

Триггеры:понятие, область применения, достоинства и недостатки.

Рекомендуемая категория для самостоятельной подготовки:
Реферат*
Код 332988
Дата создания 07 июля 2013
Страниц 17
Мы сможем обработать ваш заказ (!) 18 ноября в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
910руб.
КУПИТЬ

Содержание

Оглавление

Введение
Определение триггера в стандарте языка SQL
Достоинства и недостатки
Связь триггеров с событиями
Триггеры DML
Триггеры DDL
Реализация триггеров в среде MS SQL Server
Типы триггеров
Программирование триггера
Заключение
Список литературы

Введение

Триггеры:понятие, область применения, достоинства и недостатки.

Фрагмент работы для ознакомления

Обозначение <список_старых_или_новых_псевдонимов> относится к таким компонентам, как старая или новая строка (OLD / NEW) либо старая или новая таблица (OLD TABLE / NEW TABLE). Ясно, что старые значения не применимы для событий вставки, а новые – для событий удаления.Достоинства и недостаткиПри условии правильного использования триггеры могут стать очень мощным механизмом. Основное их преимущество заключается в том, что стандартные функции сохраняются внутри базы данных и согласованно активизируются при каждом ее обновлении. Это может существенно упростить приложения. Тем не менее следует упомянуть и о присущих триггеру недостатках:сложность: при перемещении некоторых функций в базу данных усложняются задачи ее проектирования, реализации и администрирования; скрытая функциональность:перенос части функций в базу данных и сохранение их в виде одного или нескольких триггеров иногда приводит к сокрытию от пользователя некоторых функциональных возможностей. Хотя это в определенной степени упрощает его работу, но, к сожалению, может стать причиной незапланированных, потенциально нежелательных и вредных побочных эффектов, поскольку в этом случае пользователь не в состоянии контролировать все процессы, происходящие в базе данных; влияние на производительность: перед выполнением каждой команды по изменению состояния базы данных СУБД должна проверить триггерное условие с целью выяснения необходимости запуска триггера для этой команды. Выполнение подобных вычислений сказывается на общей производительности СУБД, а в моменты пиковой нагрузки ее снижение может стать особенно заметным. Очевидно, что при возрастании количества триггеров увеличиваются и накладные расходы, связанные с такими операциями.Неправильно написанные триггеры могут привести к серьезным проблемам, таким, например, как появление "мертвых" блокировок. Триггеры способны длительное время блокировать множество ресурсов, поэтому следует обратить особое внимание на сведение к минимуму конфликтов доступа.Связь триггеров с событиямиТриггеры базы данных — это именованные элементы программы, которые исполняются в ответ на наступление каких-то событий в базе данных. Триггеры могут быть связаны с четырьмя различными видами событий: Операторы DML. Триггеры DML могут запускаться при вставке, обновлении или удалении записей таблицы. Эти триггеры могут использоваться для проверки данных, установки значений по умолчанию, отслеживания изменений и даже запрещения некоторых DML-операций. Операторы DDL. Триггеры DDL запускаются при выполнении команд DDL, например, при создании таблицы. Они могут обеспечивать отслеживание выполняемых действий и запрещать выполнение некоторых команд DDL. События базы данных. Триггеры событий базы данных запускаются при запуске и остановке базы данных, при подключении и отключении пользователя или при возникновении ошибки Oracle. Начиная с версии Oracle 8i Database эт триггеры позволяют отслеживать активность в базе данных. INSTEAD OF. Триггеры INSTEAD OF (замещающие триггеры) являются, по сути, альтернативой триггерам DML. Они запускаются перед выполнением вставки, обновления или удаления, при этом их код указывает, что следует делать вместо этих DML-операций. Триггеры INSTEAD OF управляют операциями над представлениями, а не над таблицами. Они могут использоваться для того, чтобы сделать необновляемое представление обновляемым и для того, чтобы изменить поведение обновляемых представлений. Это особая тема, требующая отдельного серьёзного изучения. Триггеры DMLТриггеры языка манипулирования данными (Data Manipulation Language — DML) запускаются при вставке, обновлении или удалении строк в определённой таблице. Это самый распространённый тип триггеров, особенно среди разработчиков (остальными типами триггеров пользуются администраторы баз данных).Существует множество вариантов использования триггеров DML. Они могут запускаться до или после выполнения оператора DML, а также до или после обработки каждой строки внутри команды. Триггеры DML могут запускаться при выполнении операторов INSERT, UPDATE, DELETE, а также их комбинаций. Участие в транзакцияхПо умолчанию триггеры DML принимают участие в транзакциях, из которых они запускаются, т.е.: Если триггер инициирует исключение, то соответствующая часть транзакции будет отменена. Если триггер сам выполняет какие-то операторы DML (например, вставляет запись в журнальную таблицу), то такие операторы DML становятся частью главной транзакции. Внутри триггера DML нельзя использовать операторы COMMIT и ROLLBACK. Однако если вы используете триггер DML как автономную транзакцию, то любые команды DML, исполняемые внутри триггера, будут сохранены или отменены посредством явно использованного оператора COMMIT или ROLLBACK, при этом главная транзакция затрагиваться не будет Триггеры DDLOracle позволяет определить триггеры, которые будут запускаться в ответ на исполнение операторов языка DDL (Data Definition Language — язык определения данных). Попросту говоря, оператор DDL — это любой оператор SQL, используемый для создания или изменения объекта базы данных, такого как таблица или индекс. Приведём несколько примеров операторов DDL: CREATE TABLE ALTER INDEX DROP TRIGGER Каждый из этих операторов приводит к созданию, изменению или удалению объекта базы данных.Синтаксис создания таких триггеров практически совпадает с синтаксисом создания триггеров DML, отличие лишь в запускающих их событиях и в том, что триггеры DDL не применяются к отдельным таблицам. Реализация триггеров в среде MS SQL ServerВ реализации СУБД MS SQL Server используется следующий оператор создания или изменения триггера:<Определение_триггера>::={CREATE | ALTER} TRIGGER имя_триггераON {имя_таблицы | имя_просмотра }[WITH ENCRYPTION ]{{ { FOR | AFTER | INSTEAD OF }{ [ DELETE] [,] [ INSERT] [,] [ UPDATE] }[ WITH APPEND ][ NOT FOR REPLICATION ]AS sql_оператор[...n]} |{ {FOR | AFTER | INSTEAD OF } { [INSERT] [,] [UPDATE] }[ WITH APPEND][ NOT FOR REPLICATION]AS{ IF UPDATE(имя_столбца)[ {AND | OR} UPDATE(имя_столбца)] [...n]|IF (COLUMNS_UPDATES(){оператор_бит_обработки} бит_маска_изменения){оператор_бит_сравнения }бит_маска [...n]}sql_оператор [...n]}}Триггер может быть создан только в текущей базе данных, но допускается обращение внутри триггера к другим базам данных, в том числе и расположенным на удаленном сервере.Типы триггеровВ SQL Server существует два параметра, определяющих поведение триггеров:AFTER. Триггер выполняется после успешного выполнения вызвавших его команд. Если же команды по какой-либо причине не могут быть успешно завершены, триггер не выполняется. Следует отметить, что изменения данных в результате выполнения запроса пользователя и выполнение триггера осуществляется в теле одной транзакции: если произойдет откат триггера, то будут отклонены и пользовательские изменения. Можно определить несколько AFTER-триггеров для каждой операции (INSERT, UPDATE, DELETE). Если для таблицы предусмотрено выполнение нескольких AFTER-триггеров, то с помощью системной хранимой процедуры sp_settriggerorder можно указать, какой из них будет выполняться первым, а какой последним. По умолчанию в SQL Server все триггеры являются AFTER-триггерами. INSTEAD OF. Триггер вызывается вместо выполнения команд. В отличие от AFTER-триггера INSTEAD OF-триггер может быть определен как для таблицы, так и для просмотра. Для каждой операции INSERT, UPDATE, DELETE можно определить только один INSTEAD OF-триггер.Триггеры различают по типу команд, на которые они реагируют.Существует три типа триггеров:INSERT TRIGGER – запускаются при попытке вставки данных с помощью команды INSERT. UPDATE TRIGGER – запускаются при попытке изменения данных с помощью команды UPDATE. DELETE TRIGGER – запускаются при попытке удаления данных с помощью команды DELETE.Конструкции [ DELETE] [,] [ INSERT] [,] [ UPDATE] и FOR | AFTER | INSTEAD OF } { [INSERT] [,] [UPDATE] определяют, на какую команду будет реагировать триггер. При его создании должна быть указана хотя бы одна команда. Допускается создание триггера, реагирующего на две или на все три команды.Аргумент WITH APPEND позволяет создавать несколько триггеров каждого типа.

Список литературы

Список литературы
1.Атре Ш. Структурный подход к организации базы данных. - М.: Финансы и статистика, 1983. - 312 с.
2.Гусева Т.И., Башин Ю.Б. Проектирование баз данных в примерах и задачах. - М.: Радио и связь, 1992. - 160 с., ил.
3.Двуреченский С.В. Концептуальное проектирование баз данных к АСУ. - М.: ЦНИИатоминформ, 1986. - 121 с.
4.Дейт К. Введение в системы баз данных. - К.: Диалектика, 1998.
5.Карпова Т.С. Базы данных: модели, разработка, реализация. - СПб.: Питер, 2001. - 304с.
6. Карпова Т.С. Базы данных: модели, разработка, реализация. –СПб.: Питер, 2002. – 304с.:ил.
7.Карпова Т.С. Базы данных: модели, разработка. - СПб.: Питер, 2001, 304 с.
8.Кириллов В.В. Основы проектирования баз данных. - М.: Финансы и статистика, 1997. - 204 с.
9. Коннолли Т., Бегг К., Страчан А. Базы данных: проектирование, реализация, сопровождение. Теория и практика. – М.: Вильямс, 2000. – 1120 с.: ил.
10.Кренке Д. Теория и практика построения баз данных: [пер.с англ] / Д. Кренке. - 9 - е изд. - СПб.: Питер, 2005. - 858 с.
11.Тиори Т., Фрай Дж. Проектирование структур баз данных: В 2-х кн. Пер. с англ. - М.: Мир, 1985. - 287 с., ил.
12.Ульман Дж., Уидом Дж. Введение в системы баз данных. - М.: Лори, 2000. - 374с.
13.Хансен Г., Хансен Д. Базы данных: разработка и уравление. - М.: БИНОМ, 1999.
14.Шкарина Л.Н. Язык SQL: Учебный курс. – СПб.: Питер, 2001. – 592с.:ил.
Очень похожие работы
Найти ещё больше
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.0047
© Рефератбанк, 2002 - 2024