🗊Презентация Программирование на языке PL/SQL

Категория: Информатика
Нажмите для полного просмотра!
Программирование на языке PL/SQL, слайд №1Программирование на языке PL/SQL, слайд №2Программирование на языке PL/SQL, слайд №3Программирование на языке PL/SQL, слайд №4Программирование на языке PL/SQL, слайд №5Программирование на языке PL/SQL, слайд №6Программирование на языке PL/SQL, слайд №7Программирование на языке PL/SQL, слайд №8Программирование на языке PL/SQL, слайд №9Программирование на языке PL/SQL, слайд №10Программирование на языке PL/SQL, слайд №11Программирование на языке PL/SQL, слайд №12Программирование на языке PL/SQL, слайд №13Программирование на языке PL/SQL, слайд №14Программирование на языке PL/SQL, слайд №15Программирование на языке PL/SQL, слайд №16Программирование на языке PL/SQL, слайд №17Программирование на языке PL/SQL, слайд №18Программирование на языке PL/SQL, слайд №19

Содержание

Вы можете ознакомиться и скачать презентацию на тему Программирование на языке PL/SQL. Доклад-сообщение содержит 19 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Курс «Базы данных»

Тема. Программирование 
на языке PL/SQL. Часть 4
Барабанщиков
Игорь Витальевич
Описание слайда:
Курс «Базы данных» Тема. Программирование на языке PL/SQL. Часть 4 Барабанщиков Игорь Витальевич

Слайд 2





План  лекции
Назначение триггеров
Создание DML-триггеров
Выполнение триггеров
Мутирующие таблицы
Сопровождение триггеров
Описание слайда:
План лекции Назначение триггеров Создание DML-триггеров Выполнение триггеров Мутирующие таблицы Сопровождение триггеров

Слайд 3





Триггеры
Триггер  –  это  блок PL/SQL,  который  автоматически запускается при возникновении определенных событий.
Описание слайда:
Триггеры Триггер – это блок PL/SQL, который автоматически запускается при возникновении определенных событий.

Слайд 4





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

Слайд 5





Назначение  триггеров
Проверка  сложных  ограничений целостности.
Автоматизация  обработки данных.
Аудит действий пользователей.
Установка начальных значений при добавлении данных в таблицы.
Проверка дифференцированных прав доступа.
Описание слайда:
Назначение триггеров Проверка сложных ограничений целостности. Автоматизация обработки данных. Аудит действий пользователей. Установка начальных значений при добавлении данных в таблицы. Проверка дифференцированных прав доступа.

Слайд 6





DML - триггеры 
В команде создания триггера определяется:
Время срабатывания (ДО или ПОСЛЕ)
Событие, вызывающее срабатывание
Имя таблицы
Тип триггера (строчный или операторный)
Предложение WHEN (ограничительное условие срабатывания триггера)
Тело триггера (блок PL/SQL)
Описание слайда:
DML - триггеры В команде создания триггера определяется: Время срабатывания (ДО или ПОСЛЕ) Событие, вызывающее срабатывание Имя таблицы Тип триггера (строчный или операторный) Предложение WHEN (ограничительное условие срабатывания триггера) Тело триггера (блок PL/SQL)

Слайд 7





Синтаксис  создания  триггера
CREATE   [OR REPLACE]  TRIGGER  <имя триггера>
   { BEFORE | AFTER }
  { INSERT | DELETE | UPDATE  [ OF column_commalist ] }
   ON  <имя таблицы>
   [ REFERENCING old_or_new_values_alias_list ] 
   [ FOR EACH  { ROW | STATEMENT } ] 
   [ WHEN <условие>]
[ DECLARE
   -- описание переменных, констант и 
   -- других элементов программы
]
BEGIN
	-- программа на процедурном языке (PL/SQL)
END;
Описание слайда:
Синтаксис создания триггера CREATE [OR REPLACE] TRIGGER <имя триггера> { BEFORE | AFTER } { INSERT | DELETE | UPDATE [ OF column_commalist ] } ON <имя таблицы> [ REFERENCING old_or_new_values_alias_list ] [ FOR EACH { ROW | STATEMENT } ] [ WHEN <условие>] [ DECLARE -- описание переменных, констант и -- других элементов программы ] BEGIN -- программа на процедурном языке (PL/SQL) END;

Слайд 8





Параметры триггеры DML
INSERT | DELETE | UPDATE [of column] – событие триггера. 
     Событием триггера может быть одна команда или любая комбинация указанных команд.
BEFORE | AFTER – время срабатывания триггера: перед выполнением события триггера или после него. 
     Ограничения целостности проверяются во время выполнения события триггера.
ON  <имя таблицы> – таблица, к которой привязан триггер.
FOR EACH { ROW | STATEMENT } – область действия триггера (для каждой строки или для команды).
WHEN  <условие> – условие срабатывания триггера. 
     Если оно не выполняется, триггер не будет запущен.
Описание слайда:
Параметры триггеры DML INSERT | DELETE | UPDATE [of column] – событие триггера. Событием триггера может быть одна команда или любая комбинация указанных команд. BEFORE | AFTER – время срабатывания триггера: перед выполнением события триггера или после него. Ограничения целостности проверяются во время выполнения события триггера. ON <имя таблицы> – таблица, к которой привязан триггер. FOR EACH { ROW | STATEMENT } – область действия триггера (для каждой строки или для команды). WHEN <условие> – условие срабатывания триггера. Если оно не выполняется, триггер не будет запущен.

Слайд 9





Запуск и выполнение триггеров
Триггер  запускается  автоматически  при наступлении  события  триггера.
Триггер выполняется в рамках той транзакции, к  которой  относится  событие  триггера.
Процедура  триггера  не  может  содержать команды  управления  транзакциями  и команды  DDL.
Процедура  триггера  выполняется  в  режиме интерпретации.
Описание слайда:
Запуск и выполнение триггеров Триггер запускается автоматически при наступлении события триггера. Триггер выполняется в рамках той транзакции, к которой относится событие триггера. Процедура триггера не может содержать команды управления транзакциями и команды DDL. Процедура триггера выполняется в режиме интерпретации.

Слайд 10





Последовательность срабатывания
Описание слайда:
Последовательность срабатывания

Слайд 11





Пример 1. Ограничение целостности
-- Зарплата сотрудника должна попадать в один из
-- интервалов  значений зарплаты, которые
-- установлены для разных категорий сотрудников 
-- в таблице SQL_GRADE.
create or replace trigger check_salary
   before INSERT or UPDATE of salary ON emp
   for each row
   when :new.salary >= 4500
declare cnt number(3);
begin
   select count(*) into cnt from sal_grade
      where :new.salary  between  low_val  and  high_val
   if cnt=0 then raise_application_error(-20050, ’Зарплата не попадает ни в один из допустимых интервалов');
   end if;
end;
Описание слайда:
Пример 1. Ограничение целостности -- Зарплата сотрудника должна попадать в один из -- интервалов значений зарплаты, которые -- установлены для разных категорий сотрудников -- в таблице SQL_GRADE. create or replace trigger check_salary before INSERT or UPDATE of salary ON emp for each row when :new.salary >= 4500 declare cnt number(3); begin select count(*) into cnt from sal_grade where :new.salary between low_val and high_val if cnt=0 then raise_application_error(-20050, ’Зарплата не попадает ни в один из допустимых интервалов'); end if; end;

Слайд 12





Псевдозаписи
Позволяют обратиться  к полям  изменяемой записи  и получить  значения  полей  до  и  после  изменения. 
Это записи old и new. 
С помощью конструкции Referencing можно изменить их имена. 
Эти записи есть только у триггеров уровня строки (row level).
Описание слайда:
Псевдозаписи Позволяют обратиться к полям изменяемой записи и получить значения полей до и после изменения. Это записи old и new. С помощью конструкции Referencing можно изменить их имена. Эти записи есть только у триггеров уровня строки (row level).

Слайд 13





Пример 2. Аудит действий
-- Отслеживаем действия пользователей над таблицей TAB
-- и фиксируем данные о них в специальной таблице TAB_LOG
create  or  replace  trigger  audit_tab
   after  INSERT  or  UPDATE  or  DELETE  ON  tab
declare  ch  char := 'U';
begin
   if  INSERTING    then  ch := 'I';
   elsif  DELETING  then ch := 'D';
   elsif  UPDATING then ch:= ‘U';
   end  if;
   insert  into  tab_log  values  (substr (user, 1, 30), ch, sysdate);
end;
-- INSERTING, DELETING и UPDATING – условные предикаты, 
-- позволяющие определить, какая операция явилась
-- событием триггера
Описание слайда:
Пример 2. Аудит действий -- Отслеживаем действия пользователей над таблицей TAB -- и фиксируем данные о них в специальной таблице TAB_LOG create or replace trigger audit_tab after INSERT or UPDATE or DELETE ON tab declare ch char := 'U'; begin if INSERTING then ch := 'I'; elsif DELETING then ch := 'D'; elsif UPDATING then ch:= ‘U'; end if; insert into tab_log values (substr (user, 1, 30), ch, sysdate); end; -- INSERTING, DELETING и UPDATING – условные предикаты, -- позволяющие определить, какая операция явилась -- событием триггера

Слайд 14





Пример 3. Значения по умолчанию
create or replace trigger set_emp
   before INSERT or UPDATE ON emp
   for each row
begin
   if :new.date_get  IS NULL  then  
       :new.date_get := trunc(sysdate);
   else 
       :new.date_get := trunc(:new.date_get);
   end if;
   :new.name := upper(:new.name);
end;
Описание слайда:
Пример 3. Значения по умолчанию create or replace trigger set_emp before INSERT or UPDATE ON emp for each row begin if :new.date_get IS NULL then :new.date_get := trunc(sysdate); else :new.date_get := trunc(:new.date_get); end if; :new.name := upper(:new.name); end;

Слайд 15





Мутирующие  таблицы
Мутирующей  считается  таблица, изменяемая  командой  INSERT, UPDATE, DELETE,  которая  запустила  этот  триггер,  а также  таблицы,  которые  связаны  с  ней ссылочной  целостностью  DELETE  CASCADE.
Таблица  не  считается  мутирующей  для триггера  уровня  предложения,  за исключением  случая,  когда  триггер запускается  как  результат  DELETE  CASCADE.
Триггер  не  может  обращаться  к мутирующей  таблице: читать или изменять её.
Описание слайда:
Мутирующие таблицы Мутирующей считается таблица, изменяемая командой INSERT, UPDATE, DELETE, которая запустила этот триггер, а также таблицы, которые связаны с ней ссылочной целостностью DELETE CASCADE. Таблица не считается мутирующей для триггера уровня предложения, за исключением случая, когда триггер запускается как результат DELETE CASCADE. Триггер не может обращаться к мутирующей таблице: читать или изменять её.

Слайд 16





Пример мутирующей таблицы
CREATE  TABLE  emp(ename char(20),  sal number(5));
CREATE  TRIGGER  emp_upd 
    AFTER  UPDATE  ON  emp  FOR EACH ROW
DECLARE
    v_sum  number(7);
BEGIN
   SELECT sal  INTO  v_sum  FROM  emp  WHERE emp_id=10 ;
END;
/
UPDATE  emp  SET  sal=sal*1.1  WHERE  depno=50;
Описание слайда:
Пример мутирующей таблицы CREATE TABLE emp(ename char(20), sal number(5)); CREATE TRIGGER emp_upd AFTER UPDATE ON emp FOR EACH ROW DECLARE v_sum number(7); BEGIN SELECT sal INTO v_sum FROM emp WHERE emp_id=10 ; END; / UPDATE emp SET sal=sal*1.1 WHERE depno=50;

Слайд 17





Пример  мутирующей  таблицы
Описание слайда:
Пример мутирующей таблицы

Слайд 18





Управление  триггерами
Отключение/включение триггера
   ALTER TRIGGER  имя_триггера DISABLE | ENABLE;
Отключение/включение всех триггеров
   ALTER  TABLE  имя_таблицы  DISABLE | ENABLE ALL  TRIGGERS;
Перекомпиляция триггера
   ALTER  TRIGGER  имя_триггера  COMPILE;
Удаление триггера
     DROP  TRIGGER  имя_триггера;
Получение информации о триггерах
     SELECT  *  FROM  user_triggers;
Описание слайда:
Управление триггерами Отключение/включение триггера ALTER TRIGGER имя_триггера DISABLE | ENABLE; Отключение/включение всех триггеров ALTER TABLE имя_таблицы DISABLE | ENABLE ALL TRIGGERS; Перекомпиляция триггера ALTER TRIGGER имя_триггера COMPILE; Удаление триггера DROP TRIGGER имя_триггера; Получение информации о триггерах SELECT * FROM user_triggers;

Слайд 19





Итоги
Триггер – это блок PL/SQL, который автоматически выполняется при наступлении определенного события в БД.
Триггеры используют для реализации сложных правил бизнес-логики, которые нельзя реализовать с помощью декларативных ограничений целостности.
Описание слайда:
Итоги Триггер – это блок PL/SQL, который автоматически выполняется при наступлении определенного события в БД. Триггеры используют для реализации сложных правил бизнес-логики, которые нельзя реализовать с помощью декларативных ограничений целостности.



Похожие презентации
Mypresentation.ru
Загрузить презентацию