Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций - ТРПО.docx
Скачиваний:
190
Добавлен:
04.06.2015
Размер:
3.06 Mб
Скачать
      1. Правила валидации и значения по умолчанию

ERWinподдерживает правила валидации для колонок, а также значения, присваиваемые по умолчанию.

  • Правило валидациизадает список допустимых значений для колонки и правила проверки допустимых значений.

  • Значение по умолчанию– значение, которое вводится в колонку, если никакое другое значение не задано явным образом во время ввода данных.

Для задания правил валидации в ERWinиспользуетсяValidationRuleEditor. В нем можно задать максимальное и минимальное значение атрибута и тип валидации (на сервере, на клиентском рабочем месте, или и там и там).

Пример ввода правила валидации для поля «Лимит денег» таблицы «Кредитная карта» приведён на рисунке 28.

  1. Ввод правила валидации в ERWin

Например, необходимо задать правило валидации для поля AgeтаблицыCustomer. Возраст покупателя может быть не менее 18 и не более 180 лет. Формируется правило «Проверка возраста», которое содержит выражение «AgeBETWEEN18AND180». Использование правила гарантирует, что при вводе значение возраста (Age) не выйдет из заданного диапазона.

Редактор ValidationRuleEditorпозволяет также задать список всех допустимых значений атрибута.

Редактор Default/InitialEditorпозволяет создать значение, которое при-сваивается атрибуту (столбцу) автоматически, по умолчанию. Например, дате приема сотрудника автоматически может быть присвоена сегодняшняя дата.

Окно редактора Default/Initial Editor показано на рисунке 29.

  1. Окно редактора Default/Initial Editor.

      1. Индексы

Чтобы решить проблему поиска данных, СУБД использует особый объект, называемый индексом. Индекс содержит информацию, отсортированную по одному или нескольким столбцам таблицы, и указывает на строки, в которых хранятся нужные значения индексных столбцов.

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

При генерации схемы физической БД ERWinавтоматически создает отдельный индекс на основе первичного ключа каждой таблицы, а также на основе всех альтернативных ключей, внешних ключей и инверсионных входов, поскольку эти столбцы, как правило, чаще всего используются для поиска данных. Можно отказаться от генерации индексов по умолчанию, и создать собственные индексы. Администратор СУБД должен анализировать часто выполняемые пользователями запросы и создавать индексы по различным колонкам и с различным порядком сортировки для увеличения эффективности поиска данных при работе различных приложений.

      1. Триггеры и хранимые процедуры

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

Преимущества хранимых процедур и триггеров:

  • Хранение и выполнение кода на сервере позволяет создавать код только один раз, а не в каждом приложении, работающем с БД, что экономит время при написании и сопровождении программ.

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

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

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

Триггер– процедура, выполняемая автоматически как реакция на событие. Событием может быть вставка, изменение или удаление строки в существующей таблице. Триггер сообщает СУБД, какие действия необходимо произвести при выполнении командSQL-языкаINSERT,UPDATEилиDELETE.

Триггер ссылочной целостности– особый вид триггера, используемый для поддержания целостности между двумя таблицами, которые связаны между собой. Если ссылка в одной таблице вставляется, изменяется или удаляется, то триггер ссылочной целостности (RI-триггер) сообщает СУБД, что нужно делать с теми строками в других таблицах, у которых значение внешнего ключа совпадает со значением первичного ключа вставленной (удаленной, измененной) строки. По умолчаниюERWinгенерирует триггеры, дублирующие декларативную ссылочную целостность.

Правила контроля целостностизадаются для каждой связи и определяют поведение СУБД при выполнении ряда операций над строками связанных таблиц: удаления (Delete), добавления (Insert) и изменения (Update) строк.

Возможны следующие действия для поддержания ссылочной целостности:

  • RESTRICT– запретить операцию над строками, связанными с обрабатываемой (например – при удалении родительской записи запретить удаление дочерних);

  • CASCADE– выполнить операцию над всеми строками, связанными с обрабатываемой (например – при удалении родительской записи удалитьвсе дочерние);

  • NONE– не выполнять никаких операций над строками, связанными с обрабатываемой;

  • SET NULL– установить значения, связанные с ключевыми полями обрабатываемой записи вNULL(пустое значение)

  • SET DEFAULT– атрибут, связанный с ключевым полем устанавливается в значение по умолчанию.