Хелен Борри - Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ

Тут можно читать онлайн Хелен Борри - Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство БХВ-Петербург, год 2006. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
  • Автор:
  • Жанр:
  • Издательство:
    БХВ-Петербург
  • Год:
    2006
  • Город:
    Санкт-Петербург
  • ISBN:
    5-94157-609-9
  • Рейтинг:
    4/5. Голосов: 81
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Хелен Борри - Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ краткое содержание

Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ - описание и краткое содержание, автор Хелен Борри, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Рассмотрены вопросы, необходимые разработчику для создания клиент-серверных приложений с использованием СУБД Firebird, явившейся развитием СУБД Borland Interbase 6. Содержится обзор концепций и моделей архитектуры клиент/сервер, а также практические рекомендации по работе с клиентскими библиотеками Firebird. Детально описаны особенности типов данных SQL, язык манипулирования данными (Data Manipulation Language, DML), а также синтаксис и операторы языка определения данных ( Data Definition Language, DDL). Большое внимание уделено описанию транзакций и приведены советы по их использованию при разработке приложений. Описано программирование на стороне клиента и сервера написание триггеров и хранимых процедур, создание и использование событий базы данных, обработка ошибок в коде на сервере и многое другое. Материал сопровождается многочисленными примерами, советами и практическими рекомендациями.

Для разработчиков баз данных

Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ - читать онлайн бесплатно полную версию (весь текст целиком)

Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ - читать книгу онлайн бесплатно, автор Хелен Борри
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

CREATE TRIGGER имя FOR {таблица | просмотр}

[ACTIVE | INACTIVE]

{BEFORE | AFTER}

{DELETE OR {[INSERT [OR UPDATE]} | {INSERT OR [. . ]} | {UPDATE OR [..]}}

[POSITION число]

AS <���тело-триггера> ^

Элементы заголовка

Все, предшествующее предложению AS, является заголовком триггера. Заголовок должен задавать уникальное имя триггера и имя существующей подтвержденной таблицы или просмотра, кому принадлежит триггер.

Именование триггеров

Синтаксис требует, чтобы имя триггера было уникальным среди всех имен триггеров в базе данных. Хорошей практикой является применять некоторые соглашения для именования триггеров, которые имеют смысл для вас и очевидны для всех других, кто будет работать с вашей базой данных. Автор использует "формулу" для идентификации фазы и события (BI | AI | BU | AU | BD | AD | BA | AA - два последних представляют "до всех", Before All и "после всех", After All), имя таблицы и номер в последовательности, если нужно [119] Хотя триггеры "привязаны" к таблицам, некоторые инструменты выводят общий список триггеров для просмотра, сортируя его по именам триггеров. В этом случае следует выбрать иной способ формирования имени триггера (из имени таблицы, его типа и других характеристик), чтобы представление триггеров было отсортировано в нужном вам порядке. - Прим. . Например, триггер до добавления для таблицы CUSTOMER может быть назван BI_CUSTOMERI.

CREATE TRIGGER BI CUSTOMERl FOR CUSTOMER...

Атрибуты триггера

Перечислим остальные атрибуты заголовка триггера.

* Состояние триггера, ACTIVE или INACTIVE, определяющее, будет ли триггер запускаться после его создания. Значение по умолчанию ACTIVE. Деактивация триггера полезна при разработке и отладке.

* Индикатор фазы, BEFORE или AFTER, определяющий момент, когда триггер будет выполняться при событии DML.

* Индикатор события DML определяет тип операции SQL, при которой будет выполняться триггер: INSERT, UPDATE или DELETE.

* В Firebird 1.0.x может быть указан индикатор ровно одного события. Начиная с версии 1.5, необязательное расширение <���событие> OR <���событие> ... позволяет задавать два или три события в одном модуле. Например, ... BEFORE INSERT OR UPDATE OR DELETE ... позволяет вам задать действия для всех трех событий. Логические контекстные переменные INSERTING, UPDATING или DELETING поддерживают логику переходов.

* Необязательный индикатор последовательности, POSITION число, определяет момент запуска триггера по отношению к другим триггерным модулям для той же фазы и события.

Тело триггера

Во всех кодах модулей Firebird тело состоит из необязательного объявления списка локальных переменных, за которым следует блок операторов. Программирование тела триггера в точности такое же, как и программирование тела процедуры (см. главу 30). Интерес для нас в этой главе представляют некоторые специальные расширения PSQL, осуществляющие поддержку контекста триггера, и некоторые особые роли триггеров по реализации и поддержке бизнес-правил.

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

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

Триггеры никогда не вызываются процедурами, другими триггерами или приложениями. Они совсем не поддерживают входные и выходные аргументы.

Особенности PSQL для триггеров

Два особых элемента PSQL доступны триггерам: логические контекстные переменные событий INSERTING, UPDATING и DELETING и контекстные переменные NEW и OLD.

Переменные события

В Firebird появляются логические контекстные переменные INSERTING, UPDATING и DELETING, чтобы поддерживать условные переходы для триггеров, используемых для нескольких событий. Возможным синтаксисом ветвления может быть:

IF ({INSERTING | UPDATING | DELETING}

OR {UPDATING | DELETING | INSERTING}

[OR {DELETING | INSERTING | UPDATING}]) THEN ...

Работа этих полезных предикатов иллюстрируется в дальнейших примерах этой главы.

Переменные NEW и OLD

Контекстные переменные NEW и OLD являются расширениями PSQL, специфичными для триггеров [120] NEW.* и OLD.* также допустимы в DDL для ограничений CHECK на уровне таблицы - например, CREATE TABLE BLAH (ID INTEGER, DATA INTEGER, CONSTRAINT CHECK_INCR CHECK(NEW.DATA > OLD.DATA)). ; они позволяют ссылаться на существующие ("старые") и требуемые ("новые") значения каждого столбца. Переменные NEW.* имеют значения в событиях INSERT и UPDATE; переменные OLD.* имеют значения в событиях UPDATE и DELETE, NEW.* в событиях удаления и OLD.* В событиях добавления имеют значение NULL. Применимые значения NEW и OLD доступны для всех столбцов таблицы или просмотра, даже если сами столбцы не указаны в операторе DML.

Значения OLD.* (если доступны) могут использоваться в триггерах как переменные, но изменение значения не влияет на сохраненное старое значение [121] В Firebird 2.0 модификация значений OLD. * явно запрещена и будет вызывать ошибку при попытке присвоения значений переменным OLL. * как при выполнении, так и при создании триггера, Также запрещена модификация значений NEW, * В триггерах AFТER. Прuм. науч. ред. . Значения NEW.* (если доступны) могут использоваться для чтения/записи в фазе BEFORE и только для чтения в фазе AFTER. Если вы хотите манипулировать ими как переменными значениями в триггере AFTER, присвойте их значения локальным переменным и обращайтесь к этим локальным переменным.

Использование NEW и OLD

Для использования мощи триггеров Firebird в разработке баз данных при отслеживании целостности данных, независимо от людей и внешних программ, переменные NEW и OLD являются основным инструментом. Они могут быть использованы для:

* получения допустимых значений по умолчанию в некоторых условиях;

* проверки и при необходимости преобразования входных данных пользователя;

* получения ключей и значений для выполнения автоматических обновлений в других таблицах;

* реализации автоинкрементных ключей средствами генераторов.

Новые значения для строки могут быть изменены только в действиях BEFORE. Если триггер, запускаемый в фазе AFTER, попытается присвоить значение столбцу NEW, это не даст никакого результата.

Все значения NEW можно перезаписывать в фазе BEFORE, они немедленно принимают новые назначенные им значения. Новая версия записи получит переназначенные значения, только когда все триггеры BEFORE будут завершены. С этого момента значения NEW становятся значениями только для чтения. Следовательно, если у вас несколько триггеров изменяют одни и те же значения NEW, важно, чтобы все они имели различные номера POSITION, правильно упорядоченные.

Реализация автоинкрементных ключей

Рекомендованное использование в Firebird триггеров BEFORE INSERT - реализация в стиле @IDENTITY автоинкрементных первичных ключей. Эта техника проста, и большинство разработчиков Firebird могут написать такие триггеры во сне. Она включает два шага:

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Хелен Борри читать все книги автора по порядку

Хелен Борри - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ отзывы


Отзывы читателей о книге Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ, автор: Хелен Борри. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x