Create trigger имя триггера

On таблица1

For действие (insert, update, delete)

As

Блок SQL;

 

Oracle)

Триггеры делятся по времени срабатывания BEFORE, AFTER (до или после   события вызвавшего триггер) и так же по событиям (Insert, Update, Delete)

Порядок выполнения триггеров: операторный триггер BEFORE à однострочный триггер BEFORE à СОБЫТИЕ à однострочный триггер AFTER à операторный триггер AFTER.à срабатывает триггер à проверка ограничений

Структура создания триггера:

Create trigger имя триггера

Before/After

[Delete] [or Insert] [or delete]

On таблица1

[For each row]

[when(условие)]

Блок PL/SQL;

 

Примеры создания триггеров.

1) Создать триггера, изменяющие объем продаж (поле результат) для продавца и офиса, при каком-либо изменении таблицы ЗАКАЗЫ.

Oracle)

CREATE TRIGGER Credit BEFORE INSERT

ON Клиенты FOR EACH ROW

BEGIN

IF:New.кредит IS NULL or:New.кредит=0 THEN

 :New.кредит=1000;

END IF;

END;

 

SQL Server)

CREATE TRIGGER Credit

ON Клиенты

FOR INSERT

As

 IF Кредит IS NULL or Кредит=0 THEN

Кредит=1000;

2) Создать триггера, изменяющие объем продаж (поле результат) для продавца и офиса, при каком-либо изменении таблицы ЗАКАЗЫ.

Здесь для каждого вида изменений можно написать по триггеру, т.е.  on Update,  on Insert, on delete с некоторыми малыми отличиями для каждой СУБД, как это было уже показано выше. Но в СУБД Oracle можно все это объединить в один триггер.

Oracle)

Create trigger SaleWeight before insert or update or delete

ON Заказы FOR EACH ROW

begin

IF updating then

update продавцы

   set результат:=результат+:new.сумма-:old.сумма

where:old.прод_ид=ид;

update офисы

   set результат:=результат+:new.сумма-:old.сумма

where:old.прод_ид=прод_ид;

end if;

IF deleting then

update продавцы

   set результат:=результат-:old.сумма

where:old.прод_ид=ид;

update офисы

   set результат:=результат-:old.сумма

where:old.прод_ид=прод_ид;

end if;

IF inserting then

update продавцы

   set результат:=результат+:new.сумма

where:old.прод_ид=ид;

update офисы

   set результат:=результат+:new.сумма

where:old.прод_ид=прод_ид;

end if;

end;

 

· Oracle позволяет более гибко распределиться временем срабатывания триггера в отличие от SQL Server.

· В SQL Server нет надобности смотреть, когда срабатывает триггер “до или после”, изменения записываются сразу же, а триггер после всех изменений и только в недопустимых случаях происходит откат транзакции.

· Oracle позволяет давать более сложное описание триггера.

Поддержка национальных языков

Средство поддержки национальных языков Oracle (National Language Support - NLS) позволяет пользователям использовать базу данных на их собственных языках. Это средство обеспечивает следующие функции:

1. Поддержка различных схем кодирования, т.е. данные, созданные в схеме кодирования на одной машине, могут быть обработаны и представлены на другой.

2. Управление языком вывода ошибок сервера и информационных сообщений, чисел, дат, форматов валюты и начального дня недели.

3. Поддержка лингвистической сортировки гарантирует, что символы появляются в корректном порядке.

Можно добавлять поддержку для новых языков, используя программный продукт NLS*WorkBench, который, по существу, поддерживает таблицы перевода для интерпретации ввода от пользователя и для вывода на экран результатов.

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

 

Иные сравнительные характеристики SQL СУБД.

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

 

максимальное число пользователей одновременно обращающихся к базе;

характеристики клиентского ПО;

аппаратные компоненты сервера;

серверную операционную систему;

уровень квалификации персонала.

На сегодня известно большое число различных серверов баз данных SQL. Остановимся более подробнее на следующих четырех ведущих серверных СУБД - Oracle8i, IBM DB2, Microsoft SQL Server и Informix - и сравним их в работе на каждом из основных этапов функционирования:

конфигурирование системы,

мониторинг,

настройка,

обработка запросов,

разработка серверных и клиентских модулей.

Данный анализ проведем с учетом того, что число клиентских мест составляет от 50 до 500, а управление СУБД должно быть максимально эффективно. Исследования проводились на серверной платформе на базе Pentium II с 128 Мбайт ОЗУ, укомплектованном 13-Гбайт диском с интерфейсом EIDE в конфигурации RAID уровня 0 (конечно лучше было бы использовать HDD с интерфейсом SCSI). Управление системами было возложено на ОС Windows NT Server 4.0. и Linux.

 

Oracle8i)

Пакет Oracle8i, наделенный самым развитым набором функций для работы с языком Java и доступа к данным через Интернет, системой оптимизации одновременного доступа. Единственным недостатком данной СУБД является сложность администрирования, однако все затраты на ее внедрение и освоение в последствии окупятся эффективной и надежной работой. В нашей стране на протяжении уже многих лет целым рядом специалистов культивируется негативное отношение к СУБД Oracle, как к дорогой и сложной СУБД. Оба эти тезиса являются спорными. Во-первых, уровень сложности понятие относительное. При использовании СУБД Oracle на платформе NT, она потребует практически тех же усилий, что и при использовании MS SQL. В случае же работы на UNIX-платформе, можно с уверенностью отметить, что для профессиональных юниксоидов среда Oracle является простой, понятной и доступной. Что касается дороговизны, то и тут наметились положительные сдвиги. Кроме того, что компания Oracle предлагает ряд различных масштабируемых решений в зависимости от числа обслуживаемых клиентов, она также следуя общемировым тенденциям разработала версию своей популярнейшей СУБД под LINUX и выложила ее на своем WEB сервере (www.oracle.com) для свободного использования. Среди основных свойств СУБД Oracle следует отметить такие, как:

 

Высочайшая надежность.

Возможность разбиения крупных баз данных на разделы (large-database partition), что дает возможность эффективно управлять гигантскими гигабайтными базами;

Наличие универсальных средств защиты информации;

Эффективные методы максимального повышения скорости обработки запросов;

Индексация по битовому отображению;

Свободные таблицы (в других СУБД все таблицы заполняются сразу при создании);

Распараллеливание операций в запросе.

Наличие широкого спектра средств разработки, мониторинга и администрирования.

Ориентация на интернет технологии.

Решения, не уступающие разработкам Oracle можно найти только в DB2 фирмы IBM. Ориентация на интернет технологии - основной девиз современных продуктов Oracle. В этой связи можно отметить пакеты interMedia, обеспечивающее обработку данных в мультимедийных форматах, и Jserver, встроенное средство для работы с языком Java, которое объединяет возможности языка Java с возможностями реляционных баз данных (возможность составлять на языке Java не только внутренние программы для баз данных (хранимые процедуры и триггеры), но и разрабатывать компоненты Enterprise JavaBeans и даже запустить их на сервере). Компоненты Enterprise JavaBeans представляют собой базовые модули из которых складываются Интернет-приложения на языке Java.

 Фирма Oracle придерживается принципа, что всеми важными функциями необходимо управлять из единого центра, поэтому предлагаемый модуль interMedia предоставляет в распоряжение пользователей самые передовые возможности для работы с мультимедийными объектами:

Очень развитые средства для обработки аудио клипов;

Неподвижных изображений;

Видеофрагментов;

Географических данных (с целым набором функций связанных с определением местонахождения входящих в состав модуля Locator).

В Oracle8i реализуются лучшие на сегодняшний день средства для объектно-ориентированного конструирования баз данных, в том числе табличные структуры, допускающие наследование свойств и методов других табличных объектов БД, что позволят избежать ошибок при построении БД и облегчает их обслуживание.

 

Также необходимо отметить, что разработанная фирмой Oracle система оптимизации одновременного доступа (multiversioning concurrency) является одной из важнейших характеристик архитектуры Oracle (подобная функция есть лишь в СУБД InterBase компании InterBase компании Inprise). Данная функция позволяет исключить ситуацию, когда одному пользователю приходится ждать, пока другой завершит изменения в содержимое баз данных (т.е. в Oracle отсутствуют блокировки на чтение). Эта функция позволяет СУБД Oracle8i выполнять за секунду больше транзакций в расчете на одного пользователя, чем любая другая база данных. По уровню производительности при работе в WEB среде под LINUX Oracle занимает почетное второе место после СУБД MySQL, при этом значительно превосходя все другие СУБД по надежности и безопасности.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: