BPwin и Erwin. CASE-средства для разработки информационных систем
Шрифт:
Поля INITIAL и NEXT задают размер начального и следующего экстента в байтах.
OPTIMAL - оптимальное число управляемых экстентов для каждого сегмента отката. После успешного завершения транзакции Oracle автоматически восстанавливает размер сегментов отката до значения, указанного в поле OPTIMAL.
MINEXTENTS - минимальное число экстентов, которое можно связать с сегментом отката.
MAXEXTENTS - максимальное число экстентов, которое можно связать с сегментом отката.
DATABASE Database (база данных). База данных - это зарезервированный объем памяти для одного или более устройств хранения, которые используются для хранения данных и определений объектов БД, например таблиц и индексов.
Список DATABASE в верхней части закладки показывает все БД сервера. Кнопки New, Rename и Delete служат соответственно для создания, переименования и удаления БД. При нажатии кнопки New возникает диалог New DATABASE, в котором следует задать имя БД. Свойства БД задаются в диалоге ORACLE Physical Object Editor.
Список LOGFILE показывает имена всех log-файлов (журналов регистрации) в БД. Справа от списка находятся поля для ввода параметров log-файлов:
MAXLOGFILES - максимальное число log-файлов, которые можно создать для БД (допустимый диапазон значений 2-56).
MAXLOGHIST - объем памяти, который должен быть зарезервирован в управляющем файле для имен групп архивных log-файлов транзакций (поддерживается Oracle? и более поздними версиями).
MAXLOGMEMS - максимальное число членов в каждой log-группе (поддерживается Oracle? и более поздними версиями).
Список DATAFILE показывает имена всех файлов данных в БД. Поле MAXDATAFILES позволяет задать максимальное количество файлов в БД.
Поле выбора CONTROL FILE REUSE служит для задания статуса повторного использования управляющего файла. Включенная опция позволяет Oracle переписать информацию в управляющих файлах, определенных в параметре INIT.ORA CONTROL_FILES. Выключенная опция запрещает Oracle повторно использовать управляющие файлы.
ARCHIVE LOG - состояние автоматического архивирования. Разрешает автоматическое архивирование информации log, используемой при восстановлении.
EXCLUSIVE - статус совместного использования данных. Выключенная опция разрешает одновременный доступ нескольких пользователей.
MAXINSTANCES - максимальное число экземпляров, для которых одновременно может быть установлена БД (допустимый диапазон значений 1-255).
CHARACTER SET - набор символов, используемый БД. Все данные в колонках типов CHAR, VARCHAR2, LONG хранятся в заданном наборе символов. После того как БД создана, набор символов не может быть изменен.
Кнопка DB Sync позволяет сгенерировать объекты физической памяти в системном каталоге СУБД сразу после их создания в диалоге Physical Object Editor.
2.3.7. Триггеры и хранимые процедуры
Триггеры и хранимые процедуры - это именованные блоки кода SQL, которые заранее откомпилированы и хранятся на сервере для того, чтобы быстро производить выполнение запросов, валидацию данных и выполнять другие часто вызываемые функции.
Хранение и выполнение кода на сервере позволяет создавать код только один раз, а не в каждом приложении, работающем с БД, что экономит время при написании и сопровождении программ. При этом гарантируется, что целостность данных и бизнес-правила поддерживаются независимо от того, какое именно клиентское приложение обращается к данным. Триггеры и хранимые процедуры не требуется пересылать по сети из клиентского приложения, что значительно снижает сетевой трафик.
Хранимой процедурой называется именованный набор предварительно откомпилированных команд SQL, который может вызываться из клиентского приложения или из другой хранимой процедуры.
Триггером называется процедура, которая выполняется автоматически
Триггер ссылочной целостности - особый вид триггера, используемый для поддержания целостности между двумя таблицами, которые связаны между собой. Если строка в одной таблице вставляется, изменяется или удаляется, то триггер ссылочной целостности (RI-триггер) сообщает СУБД, что нужно делать с теми строками в других таблицах, у которых значение внешнего ключа совпадает со значением первичного ключа вставленной (измененной, удаленной) строки. По умолчанию ERwin генерирует триггеры, дублирующие декларативную ссылочную целостность (см. 2.2.3). Например, если удаляется клиент из таблицы CUSTOMER (см. рис. 2.73), то в зависимости от установленных правил ссылочной целостности могут быть сгенерированы RI-триггеры, которые будут воздействовать на соответствующие удаляемому клиенту заказы из таблицы ORDER. Команда DELETE может быть обработана следующими способами:
Проверяется наличие заказов у удаляемого клиента и, если заказы есть, запрещается удаление клиента из таблицы CUSTOMER. Правило ссылочной целостности, запрещающее вставку, изменение или удаление строки, называется RESTRICT.
Клиент удаляется из таблицы CUSTOMER, и все соответствующие ему строки в таблице ORDER также автоматически удаляются. Правило ссылочной целостности, передающее изменение от одной таблицы к другой, называется CASCADE. При этом все заказы удаленного клиента теряются. Если эту информацию необходимо сохранить, можно переопределить триггер ссылочной целостности так, чтобы записать, например, эту информацию в архивную таблицу.
Клиент удаляется, но номеру клиента в таблице заказов автоматически присваивается нулевое значение. Правило ссылочной целостности, изменяющее текущее значение данных на нулевое, называется SET NULL.
Для генерации триггеров ERwin использует механизм шаблонов - специальных скриптов, использующих макрокоманды. При генерации кода триггера вместо макрокоманд подставляются имена таблиц, колонок, переменные и другие фрагменты кода, соответствующие синтаксису выбранной СУБД. Шаблоны триггеров ссылочной целостности, генерируемые Erwin, по умолчанию можно изменять, кроме того, можно переопределить как триггеры для конкретной связи, так и шаблоны во всей модели в целом.
Шаблоны триггеров ссылочной целостности связываются с сущностями в зависимости от типа связи и роли сущности в этой связи. Тип связи и роль сущности определяют, какое правило ссылочной целостности будет по умолчанию дополнено шаблоном триггера. Связи могут быть: идентифицирующими, неидентифицирующими (nulls allowed), неидентифицирующими (no nulls), связями подтипа.
Сущность в связи может быть родительская (Parent) или дочерняя (Child). Если сущность является родительской в данной связи, то ERwin присваивает ей шаблон триггера для родительской сущности. Если сущность является дочерней в данной связи, то ERwin присваивает ей шаблон триггера для дочерней сущности. Код триггера, который генерируется шаблоном триггера для родительской сущности, указывает СУБД, что нужно делать при вставке, изменении или удалении строки в родительской таблице связи. Код триггера, который генерируется шаблоном триггера для дочерней сущности, указывает СУБД, что нужно делать при вставке, изменении или удалении строки в дочерней таблице связи.