Погружение в базы данных PostgreSQL

Данный курс является консолидацией теоретических основ и практических примеров, которые демонстрируют работу операторов и функций SQL в системе управления базами данных PostgreSQL.

Промокод на скидку: SALE_202411

Подробнее

Регулярные выражения в Python

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

Пройти курс

Модуль psycopg2 в Python

Модуль psycopg2 позволяет взаимодействовать с базами данных PostgreSQL в скриптах Python.

Пройти курс

Модуль SQLite3 в Python

Встроенный модуль SQLite3 позволяет работать с базами данных SQLite в ваших приложениях, которые написаны на языке программирования Python.

Пройти курс

Погружение в базы данных Oracle

Данная книга является руководством для начинающих специалистов в области анализа и обработки данных. В книге рассматривается язык SQL и его процедурное расширение PL/SQL от компании Oracle.

Купить книгу

SQL без слёз

Цель книги заключается в том, чтобы научить любого человека работать с реляционными базами данных и получать из них необходимую информацию посредством выполнения SQL-запросов.

Скачать книгу

 ›  ›  ›  › Что такое триггеры в PL/SQL Oracle

Что такое триггеры в PL/SQL Oracle

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

  • Проверка вносимых в таблицы изменений. Поскольку логика проверки данных непосредственно связана с конкретным объектом базы данных, триггеры гарантируют ее строгое выполнение и соблюдение.
  • Автоматизация сопровождения базы данных. Триггеры, автоматически выполняемые при загрузке и выгрузке базы данных, для выполнения операций инициализации и очистки. Это значительно удобнее, чем создавать для этих операций внешние по отношению к базе данных сценарии.
  • Точная настройка ограничений на выполнение административных операций. При помощи триггеров можно проверить, допускается ли выполнение определенной операции над конкретным объектом базы данных (например, удаление или модификация таблицы). Когда правила проверки реализованы в виде триггеров, обойти их очень трудно, если вообще возможно.

Существуют пять видов событий, с которыми можно связывать триггеры:

  • Команды DML (Data Manipulation Language). Триггеры DML запускаются в ответ на вставку, обновление и удаление строки таблицы базы данных. Их можно использовать с целью проверки значений, устанавливаемых по умолчанию, выполнения аудита изменений и даже запрета определенных команд DML.
  • Команды DDL (Data Definition Language). Триггеры DDL запускаются в ответ на выполнение команд DDL — например, при создании таблицы. С их помощью можно выполнять аудит и запрещать определенные операции.
  • События базы данных. Триггеры событий базы данных используются при запуске и остановке базы данных, при подключении и отключении сервера, а также при возникновении ошибок Oracle.
  • Триггеры INSTEAD OF. Замещающие триггеры (триггеры INSTEAD OF) являются альтернативой триггерам DML. Они запускаются непосредственно перед операциями вставки, обновления, удаления, и их код определяет, какие действия следует выполнить вместо соответствующей операции DML. Триггеры INSTEAD OF управляют операциями над представлениями, но не над таблицами. С их помощью можно преобразовывать необновляемые представления в обновляемые, изменяя при необходимости их поведение.
  • Приостановленные команды. Если в ходе выполнения команды возникла проблема доступности пространства (недостаточно табличного пространства или исчерпана квота), Oracle может перевести ее в режим приостановления до тех пор, пока проблема не будет решена. С данным событием можно связать триггер, который автоматически уведомляет пользователя о проблеме или даже самостоятельно устраняет ее.

Метки: , .

Записи по теме

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *