12 Вопрос
Внутренние объекты серверных баз данных
Большинство современных серверных СУБД поддерживают специальные объекты, называемые ограничениями (constraints) и правилами (rules). Эти объекты содержат сведения об ограничениях, накладываемых на возможные значения полей. Например, с помощью такого объекта можно установить максимальное или минимальное значение для заданного поля, и после этого СУБД не позволит сохранить в базе данных запись, не удовлетворяющую данному условию.
В первую очередь правила реализуют следующие ограничения БД:
определение допустимого диапазона значений
задание значения по умолчанию (defaults)
задание условия на значения (constraints)
требование уникальности значения (unique)
запрет пустого значения (NULL)
ограничения ссылочной целостности
Правила можно реализовывать как на физическом (задаются при создании таблиц и входят в структуру БД), так и на программном уровнях (их действие распространяется только на приложение, в котором они реализованы; достоинство такого подхода заключается в легкости определения и изменения собственных правил).
не все СУБД поддерживают ограничения и правила, в этом случае для их реализации можно использовать другие способы (например, триггеры)
13 Вопрос
Хранимые запросы и процедуры, триггеры
Триггеры и хранимые процедуры, поддерживаемые в большинстве современных серверных СУБД, являются частью серверной БД.
Хранимая процедура — это специальный вид подпрограммы, который выполняется исключительно сервером баз данных. Хранимые процедуры пишутся на специальном процедурном языке PL/SQL, синтаксис которого зависит от конкретной СУБД. Используются такие конструкции, как объявления переменных с указанием их типов, условия и циклы, можно выполнять вычислительные операции.
Использование хранимых процедур увеличивает скорость доступа к БД по следующим причинам:
вместо полного текста запроса, который может быть достаточно длинным, серверу передается по сети относительно короткое обращение к хранимой процедуре (вызов из клиентского приложения)
хранимая процедура, в отличие от запроса, не требует предварительной синтаксической проверки
Хранимые процедуры тесно взаимодействуют с оптимизатором сервера, что позволяет получить наиболее высокую производительность при обработке данных.
ТРИГГЕРЫ - средство автоматического поддержания целостности БД.
Триггеры, как и SP (хранимые процедуры), тоже содержат исполняемый код, но их, в отличие от процедур, нельзя вызывать из клиентского приложения или хранимой процедуры, а также передавать им параметры и получать от них результаты.
Триггер всегда связан с конкретной таблицей и выполняется только тогда, когда при редактировании этой таблицы наступает событие, с которым он ассоциирован (связан).
Внедрение триггеров незначительно влияет на производительность сервера и используется для улучшения качественного выполнения приложений, в которых выполняются многокаскадные операции изменения данных в БД.
Создание триггеров не автоматизировано. Программирование аналогично программированию хранимой процедуры, для чего используется язык PL/SQL.
