PowerBuilder или Visual Basic. Служит для внесения расширенных атрибутов для генерации кода клиентского приложения на PowerBuilder или Visual Basic.

2.3.4. Правила валидации и значения по умолчанию

ERwin поддерживает правила валидации для колонок, а также значение, присваеваемое колонкам по умолчанию. Правило валидации задает список допустимых значений для конкретной колонки и/или правила проверки допустимых значений. Значение по умолчанию - значение, которое нужно ввести в колонку, если никакое другое значение не задано явным образом во время ввода данных. С каждой колонкой или доменом можно связать значение по умолчанию (если выбранная СУБД поддерживает домены).

Если щелкнуть по кнопке “…”, расположенной справа от раскрывающегося списка Valid (см. рис. 2.64), появляется диалог Validation Rule Editor (рис. 2.69), который служит для задания правил валидации. В нем можно задать максимальное и минимальное значение и тип валидации (где проверять - на сервере или в клиентском приложении).

Например, в таблице CUSTOMER значение, вводимое в колонку. Age, должно быть больше 18, но меньше 180. Для описания этого правила можно создать правило валидации с именем "Проверка_возраста", которое содержит выражение: Age BETWEEN 18 AND 180. Использование этого правила валидации гарантирует, что диапазон вводимых значений будет от 18 до 180. СУБД выдаст сообщение об ошибке, если вводимый возраст находится вне границ заданного диапазона.

В верхней части редактора Validation Rule содержится список всех существующих правил валидации. Для создания нового правила валидации следует щелкнуть по кнопке New, ввести имя правила в поле Name диалога New Validation и щелкнуть по кнопке ОК. После этого можно ввести выражение для правила валидации. Поля Min и Мах служат для задания нижней и верхней границы диапазона значения.

BPwin и Erwin. CASE-средства для разработки информационных систем - img_177.jpeg

Рис. 2.69. Диалог Validation Rule Editor

Кнопка Valid Value вызывает редактор Valid Value (рис. 2.70). Редактор Valid Value позволяет создавать список всех допустимых значений, которые можно хранить в колонке, и связать его с правилом валидации. Например если в таблице CUSTOMER имеется колонка Category, то можно задать список допустимых значений для соответствующей колонки, который может содержать значения "Местный", "Иногородний" и "Иностранный".

Раскрывающийся список в верхней части редактора Valid Value содержит все правила, валидации. Чтобы ввести новое значение в список допустимых значений, нужно щелкнуть по кнопке New и ввести значение. Если включить опцию Copy (окно выбора в верхней части редактора), новому правилу будет присвоен список допустимых значений или диапазон, связанный с имеющимся правилом валидации. В нижнем окне диалога Valid Value можно ввести определение для каждого значения. Чтобы изменить имеющееся значение, нужно щелкнуть по кнопке Update. Для удаления значения служит кнопка Delete. Изменить порядок значений в списке можно либо пользуясь методом drag&drop, либо при помощи кнопки Sort. В последнем случае значения будут отсортированы по возрастанию.

При выходе из редактора Valid Value (кнопка OK) ERwin автоматически изменяет правило валидации, используя введенные допустимые значения, например "%AttFieldName IN ('Местный', 'Иногородний', 'Иностранный')".'

Кнопка Set Expr диалога Validation Rule Editor позволяет сгенерировать правила валидации соответственно синтаксису выбранной СУБД с учетом границ диапазона или списка значений.

По умолчанию ERwin создает выражение - команду языка СУБД, используя значения, связанные с правилом валидации, и разделяя значения запятыми (например, С, D, М). В некоторых случаях правила синтаксиса СУБД требуют, чтобы каждое значение в команде заключалось в одинарные кавычки ('С', 'D', 'М'). Чтобы автоматически заключить каждое значение в одинарные кавычки, нужно включить опцию Quote.

BPwin и Erwin. CASE-средства для разработки информационных систем - img_178.jpeg

Рис. 2.70. Диалог Valid Value Editor

Диалог Validation Rule Editor содержит также две закладки, в которых отображается текст правил валидации, генерируемый ERwin на сервере и для клиентского приложения (рис. 2.71).

На рис. 2.70 в качестве клиента выбран PowerBuilder. На закладке отображается текст правила валидации Client expression, текст ошибки РВ Error Msg, тип значения РВ Type и кнопка генерации кода клиентской части РВ Sync.

BPwin и Erwin. CASE-средства для разработки информационных систем - img_179.jpeg

Рис. 2.71. Закладка PowerBuilder диалога Validation Rule Editor

Редактор Default/Initial Editor (рис. 2.72) позволяет создать значение, которое автоматически, по умолчанию, присваивается колонке. Для вызова редактора служит кнопка “…” справа от раскрывающегося списка Default диалога Column Editor (см. рис. 2.64). Например, дате приема сотрудника может быть присвоено значение по умолчанию "сегодняшнее число", т. е. автоматически задается, что все новые сотрудники зачисляются в день ввода информации о них в БД.

BPwin и Erwin. CASE-средства для разработки информационных систем - img_180.jpeg

Рис. 2.72. Диалог Default/Initial Editor

Для создания нового значения по умолчанию следует щелкнуть по кнопке New, ввести имя правила в поле Name диалога New Default и щелкнуть по кнопке ОК. В окне Default Name показывается список всех имен значений по умолчанию. Колонка Type в этом списке отображает тип значения - присваивать его на клиентской части и/или на сервере. Для удаления и переименования значения служат соответственно кнопки Delete и Rename.

Поля Client и Server служат для внесения значения для клиентской части и сервера.

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

2.3.5. Индексы

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

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

Например, если необходимо найти клиента по имени (рис. 2.73), можно создать индекс по колонке CustomerName таблицы CUSTOMER. В индексе имена клиентов будут отсортированы в алфавитном порядке. Для имени индекс будет содержать ссылку, указывающую, в каком месте таблицы хранится эта строка.

BPwin и Erwin. CASE-средства для разработки информационных систем - img_181.jpeg

Рис. 2.73

Для поиска клиента серверу направляется запрос с критерием поиска (CusfomerName ="Иванов"). При выполнении запроса СУБД просматривает индекс, вместо того чтобы просматривать по порядку все строки таблицы CUSTOMER, Поскольку значения в индексе хранятся в определенном порядке, просматривать нужно гораздо меньший объем данных, что значительно уменьшает время выполнения запроса. Индекс можно создать для всех колонок таблицы, по которым часто производится поиск.