Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Триггеры базы данных

Индексы

CHECK

Ограничение CHECK определяет логику дополнительной проверки, которая должна дать результат "истина" для оператора вставки, модификации или удаления из таблицы. Дополнительная логика возвращает результат Boolean. Ограничение CHECK гарантирует, что значения в изменяемой строке удовлетворяют заданному набору проверок правильности. Синтаксис ограничения CHECK подобен синтаксису предложения WHERE оператора SELECT, однако здесь нельзя использовать подзапросы или столбцы, которые изменяются с течением времени (такие как SYSDATE). Вы можете использовать триггеры базы данных, чтобы запрограммировать обработку, которую нельзя поместить в ограничения. Например, при использовании ограничения CHECK для таблицы заказов, можно указать, что объем заказа должен быть больше нуля и комиссия продавца не может превышать более, чем на 10 процентов сумму заказа.

 

Ограничения PRIMARY KEY и UNIQUE автоматически создают индекс на столбцах, для которых они определены, если ограничение активизируется при создании. Если индекс уже существует на столбцах, которые формируют ограничение PRIMARY KEY или UNIQUE, используется этот индекс, и Oracle не может создать новый. Oracle создает индексы, когда ограничение активизируется (что выполняется по умолчанию при добавлении ограничения к таблице). Oracle удаляет индексы таблицы, когда ограничение деактивизируется. Активизация и деактивизация ограничения может потребовать много временных затрат и ресурсов системы вследствие создания и удаления индексов.

Когда устанавливаются ограничения FOREIGN KEY, столбцы автоматически не индексируются. Так как столбцы внешнего ключа в операции соединения таблиц обычно участвуют вместе, на этих столбцах индексы создаются вручную.

ПРЕДОСТЕРЕЖЕНИЕ

Триггер базы данных — это блок PL/SQL, который предназначен для автоматического выполнения при отработке оператора вставки, модификации и удаления из таблицы. Можно определить триггеры двух типов: запускающийся один раз для всего оператора и запускающийся для каждой вставляемой, изменяемой или удаляемой строки. С таблицей можно связать 12 событий — для которых можно определить триггеры базы данных, а для каждого из 12 событий — несколько триггеров базы данных.

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

В дополнение к реализации сложных бизнес-правил, проверок, ввода значений по умолчанию, можно,, использовать триггеры базы данных, чтобы вставлять, модифицировать и удалять строки других таблиц. Примером такого использования является средство протоколирования, где строка протокола автоматически создается в таблице протокола всякий раз, когда строка таблицы данных изменяется. Без триггеров базы данных эта функция могла быть реализована в программах внешнего интерфейса, которые проводят изменения в базе данных; однако тот, кто умеет обойти программы внешнего интерфейса (например, используя SQL*Plus), может обойти установленные проверки и обработку.

В триггерах базы данных можно использовать операторы SQL, а в ограничениях - нет.

 

<== предыдущая лекция | следующая лекция ==>
Ограничения целостности | Пользователи и роли
Поделиться с друзьями:


Дата добавления: 2013-12-12; Просмотров: 297; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.