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

Презентация:



Advertisements
Похожие презентации
PL/SQL Триггеры (INSERT, UPDATE, DELETE). Определение Три́ггер базы данных (англ. trigger) это хранимая процедура особого типа, которую пользователь не.
Advertisements

Последовательности Триггеры Представления. Последовательности Последовательность - это ряд чисел, в котором каждое последующие число больше предыдущего.
База данных База данных – это конкретная предметная область, описанная с помощью таблиц.
Процедуры Базы данных: учебный курс Некоторые операции, рассматриваемые как неделимые, трудно выразить с помощью одного запроса к БД. Примеры: занести.
PL/SQL Триггер блок PL/SQL, выполняемый неявно каждый раз, когда происходит конкретное событие.
Лекция 27 Лекция 27 Идентификация пользователей. Проверка и назначение полномочий и представлений данных пользователей. Защита базы данных. Контроль параллельной.
Лекция 3 Домены Ограничения на значения столбцов Создание, изменение и удаление таблиц Ключи и ссылочная целостность Защита таблиц.
ОРГАНИЗАЦИЯ БАЗ ДАННЫХ И ЗНАНИЙ ТЕМА 5 СТРУКТУРИРОВАННЫЙ ЯЗЫК ЗАПРОСОВ SQL.
Администрирование информационных систем Администрирование БД. Управление разрешениями.
5.2. Представление о мире (VIEW)Представления предназначены для сохранения результатов выполнения запросов в виде таблиц. В отличие от хранимых процедур.
Дискретные и автономные транзакции (начиная с версии Oracle8i)
PL/SQL Взаимодействие с СУБД. Специальные типы Имя_таблицы.имя_столбца%TYPE Имя_таблицы%ROWTYPE; Имя_курсора%ROWTYPE;
Система контроля прав доступа При помощи процедур и триггеров в MySQL.
Работу выполнила Студентка 477 гр. Гришина О.В.. Как бы тщательно не планировалась структура таблицы, иногда возникает необходимость внести в неё некоторые.
БАЗЫ ДАННЫХ ЛЕКЦИЯ 12. тема: ОСНОВЫ ЯЗЫКА SQL Общие сведения SQL структурированный язык запросов (Structured Query Language)
Введение в SQL (НЕ select) Затрагиваемые темы Роль языка SQL. Части SQL Роль языка SQL. Части SQL Администрирование БД: привилегии (DCL) Администрирование.
Triggers для mysql. Что есть триггер? Триггер - это хранимая процедура особого типа, исполнение которой обусловлено наступлением определенного события.
Программируемый клиент ORACLE Технология Pro C/C++
Триггеры (в соответствии со стандартом SQL-1999, с особенностями синтаксиса Oracle)
Динамический SQL (использование в Oracle). Виды предложений SQL МетодТип предложенияТребуемые вызовы пакета DBMS_SQL 1 Незапросные, нет базовых переменных,
Транксрипт:

Обеспечение целостности данных Процедурное

Хранимые процедуры Хранимые процедуры пишутся на специальном встроенном языке программирования, они могут включать любые операторы SQL, а также включают некоторый набор операторов, управляющих ходом выполнения программ

Хранимые процедуры являются объектами БД. Каждая хранимая процедура компилируется при первом выполнении В процессе компиляции строится опти- мальный план выполнения процедуры. Описание процедуры совместно с пла- ном ее выполнения хранится в системных таблицах БД.

Синтаксис CREATE [ OR REPLACE] ( аргумент IN | OUT | IN OUT Тип данных [,..]) IS | AS Тело процедуры PL/SQL

Функция получения ip-адреса create or replace function sys.client_ip_address return varchar2 is begin return dbms_standard.client_ip_address; end;

Пример процедуры create or replace procedure sys.subptxt(name varchar2, subname varchar2, usr varchar2, txt in out varchar2) is begin subptxt2(name, subname, usr, null, null, txt); end;

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

В СУБД Oracle определены два типа триггеров: триггеры, которые могут быть запущены перед реализацией операции модификации, они называются BEFORE-триггерами, и триггеры, которые активизируются после выполнения соответствующей модификации, аналогично триггерам MS SQL Server, они называются AFTER-триггерами.

Синтаксис (стандарт) CREATE TRIGGER ON FOR { [INSERT] [,UPDATE] [, DELETE] } AS SQL-операторы (Тело триггера)

В Oracle CREATE [ OR REPLACE] TRIGGER BEFORE | AFTER ON FOR { [INSERT] [,UPDATE] [, DELETE] } FOR EACH ROW WHEN (условие) AS SQL-операторы (Тело триггера)

Пример create or replace trigger add_author AFTER INSERT OR UPDATE OF C_AUTHOR ON T_CLAUSES FOR EACH ROW DECLARE id_cl int; aut varchar2(500); res int; BEGIN id_cl := :new.N_ID_CL; aut := :new.C_AUTHOR; res := ANALIZ_AUT(id_cl, aut); END;

Ограничения Нельзя использовать в теле триггера операции создания объектов БД (новой БД, новой таблицы, нового индекса, новой хранимой процедуры, нового триггера, новых индексов, новых представлений), Нельзя использовать в триггере команду удаления объектов DROP для всех типов базовых объектов БД. Нельзя использовать в теле триггера команды изменения базовых объектов ALTER TABLE, ALTER DATABASE. Нельзя изменять права доступа к объектам БД, то есть выполнять команду GRAND или REVOKE. Нельзя создать триггер для представления (VIEW). В отличие от хранимых процедур, триггер не может возвращать никаких значений, он запускается автоматически сервером и не может связаться самостоятельно ни с одним клиентом.

Пример приложения Программа отправляет и отслеживает SMS-сообщения (через шлюз) с сайта оператора сотовой связи.

Информационные потоки ТЕКСТ СООБЩЕНИЯ набирает пользователь в форме. Сообщение проверяется на наличие «ключевых» слов. При наличии этих слов пользователь отправлявший сообщение, попадает в «черный список» Периодически всем пользователям «черного списка» рассылается автоматически сообщение-предупреждение.

Сущности Пользователи ( , Telefon) Сообщения ( ,orig_mobile,dest_mobile,message) Черный список ( , Telefon, count_err) Список «ключевых слов»