Правила валидации и значения по умолчанию
ERwin поддерживает правила валидации для колонок, а также значение, присваемое колонкам по умолчанию. Правило валидации задает список допустимых значений для конкретной колонки и/или правила проверки допустимых значений. Значение по умолчанию - значение, которое нужно ввести в колонку, если никакое другое значение не задано явным образом во время ввода данных. С каждой колонкой или доменом можно связать значение по умолчанию (если выбранная СУБД поддерживает домены).
Если щелкнуть по кнопке [...], расположенной справа от раскрывающегося списка, появляется диалог Validation Rule Editor, который служит для задания правил валидации. В нем можно задать максимальное и минимальное значение и тип валидации (где проверять - на сервере или в клиентском приложении).
В верхней части редактора Validation Rule содержится список всех существующих правил валидации. Для создания нового правила валидации следует щелкнуть по кнопке New, ввести имя правила в поле Name диалога New Validation и щелкнуть по кнопке ОК. После этого можно ввести выражение для правила валидации. Поля Min и Мах служат для задания нижней и верхней границы диапазона значения.
Кнопка Valid Value вызывает редактор Valid Value. Редактор Valid Value позволяет создавать список всех допустимых значений, которые можно хранить в колонке, и связать его с правилом валидации.
Раскрывающийся список в верхней части редактора Valid Value содержит все правила валидации. Чтобы ввести новое значение в список допустимых значений, нужно щелкнуть по кнопке New и ввести значение. Если включить опцию Copy (окно выбора в верхней части редактора), новому правилу будет присвоен список допустимых значений или диапазон, связанный с имеющимся правилом валидации. В нижнем окне диалога Valid Value можно ввести определение для каждого значения. Чтобы изменить имеющееся значение, нужно щелкнуть по кнопке Update. Для удаления значения служит кнопка Delete. Изменить порядок значений в списке можно либо пользуясь методом drag&drop, либо при помощи кнопки Sort. В последнем случае значения будут отсортированы по возрастанию.
При выходе из редактора Valid Value (кнопка OK) ERwin автоматически изменяет правило валидации, используя введенные допустимые значения, например "%AttFieldName IN ('Местный', 'Иногородний', 'Иностранный')".
Кнопка Set Ехрг диалога Validation Rule Editor позволяет сгенерировать правила валидации соответственно синтаксису выбранной СУБД с учетом границ диапазона или списка значений.
По умолчанию ERwin создает выражение - команду языка СУБД, используя значения, связанные с правилом валидации, и разделяя значения запятыми (например, С, D, М). В некоторых случаях правила синтаксиса СУБД требуют, чтобы каждое значение в команде заключалось в одинарные кавычки ('С', 'D', 'М'). Чтобы автоматически заключить каждое значение в одинарные кавычки, нужно включить опцию Quote.
Диалог Validation Rule Editor содержит также две закладки, в которых отображается текст правил валидации, генерируемый ERwin на сервере и для клиентского приложения.
Редактор Default/Initial Editor позволяет создать значение, которое автоматически, по умолчанию, присваивается колонке. Для вызова редактора служит кнопка [...] справа от раскрывающегося списка Default диалога Column Editor. Например, дате приема сотрудника может быть присвоено значение по умолчанию "сегодняшнее число", то есть автоматически задается, что все новые сотрудники зачисляются в день ввода информации о них в БД.
Для создания нового значения по умолчанию следует щелкнуть по кнопке New, ввести имя правила в поле Name диалога New Default и щелкнуть по кнопке ОК. В окне Default Name показывается список всех имен значений по умолчанию. Колонка Type в этом списке отображает тип значения - присваивать его на клиентской части и/или на сервере. Для удаления и переименования значения служат соответственно кнопки Delete и Rename.
Поля Client и Server служат для внесения значения для клиентской части и сервера.
После создания правила валидации и значения по умолчанию их можно присвоить одной или нескольким колонкам или доменам.
Индексы
При генерации схемы физической БД ERwin автоматически создает отдельный индекс на основе первичного ключа каждой таблицы, а также на основе всех альтернативных ключей, внешних ключей и инверсионных входов, поскольку эти колонки наиболее часто используются для поиска данных. Можно отказаться от генерации индексов по умолчанию и для повышения производительности создать собственные индексы. Администратор СУБД должен анализировать наиболее часто выполняемые запросы и создавать индексы с различными колонками и порядком сортировки для увеличения эффективности поиска при работе конкретных приложений.
При создании индекса на основе ключа ERwin вводит в его состав все колонки ключа. Следовательно, на уровне логической модели можно неявно создать индекс, включая колонки в состав альтернативных ключей и инверсионных входов.
ERwin автоматически генерирует имя индекса, созданного на основе ключа по принципу "X" + имя ключа + имя таблицы (физическое имя таблицы, а не логическое имя сущности!), где имя ключа "РК" для первичного ключа, "IFn" - для внешнего, "AKn" - для альтернативного, "IEn" - для инверсионного входа.
Изменить характеристики существующего индекса или создать новый можно в редакторе Index Editor. Для его вызова следует щелкнуть правой кнопкой мыши по таблице и выбрать во всплывающем меню пункт Index.
В редакторе Index Editor можно изменить имя индекса, изменить его определение так, чтобы он принимал уникальные или дублирующиеся значения, или изменить порядок сортировки данных.
ERwin создает индексы, которые могут содержать либо повторяющиеся, либо только уникальные значения. При создании нового уникального индекса (кнопка NewH, диалог New Index) следует включить опцию Unique, для создания индекса с неповторяющимися значениями опцию следует выключить. Если на основе колонки создается уникальный индекс, то при попытке вставить запись с неуникальным (повторяющимся) значением сервер выдаст ошибку и значение не будет вставлено.
Иногда необходимо разрешить повторяющиеся значения, если ожидается, что индексированная колонка будет с большой вероятностью содержать повторяющуюся информацию. Например, на основе инверсионных входов, которые используются для доступа к нескольким строкам и поэтому могут содержать повторяющиеся значения, генерируется неуникальный индекс. Неуникальный индекс генерируется также на основе внешнего ключа. На основе первичного и альтернативных ключей генерируются уникальные индексы.
И наоборот, при создании нового индекса автоматически создается альтернативный ключ для уникального и инверсионный вход для неуникального индекса, а также соответствующее ключу имя индекса. Имя сгенерированного индекса в дальнейшем при необходимости можно изменить вручную.
По умолчанию ERwin автоматически сохраняет значения в индексе в порядке возрастания (значения сортируются по алфавиту от А до Z, а числа от 0 до 9). Если нужно изменить порядок сортировки для колонки и выбранная СУБД поддерживает режим сортировки по убыванию, следует выбрать колонку и включить опцию DESC. Редактор Index Editor содержит следующие закладки:
Members - позволяет включить колонки в состав индекса;
Comment - содержит комментарий для каждого индекса; ' UDP - позволяет связать с индексом свойства, определяемые пользователем,
закладка, соответствующая выбранной СУБД задает свойства индекса, специфические для выбранной СУБД.
При создании индекса для СУБД ORACLE, SYBASE или SQL Server можно выбирать, в каком объекте физической памяти будет храниться индекс, и изменять параметры хранения.
Некоторые СУБД поддерживают кластеризованные и кластеризованные хешированные индексы. ERwin позволяет создать такие индексы для DB2/MVS, DB2/390, HiRDB, INFORMIX, MS Access, MS SQL Serve:
SYBASE и SQLBase. Для того чтобы сделать индекс кластеризованным, нужно включить опцию CLUSTER в закладке, соответствующей выбранной СУБД. Кластеризованный индекс - это специальная техника индексирования, при которой данные в таблице физически располагаются в индексированном порядке. Использование кластеризованного индекса значительно ускоряет выполнение запросов по индексированной колонке.
Поскольку данные физически расположены в индексированном порядке, для каждой таблицы может существовать только один кластеризованный индекс. Если СУБД поддерживает использование кластеризованного индекса, то ERwin автоматически создает индекс первичного ключа кластеризованным. При создании кластеризованного индекса не по первичному ключу ERwin автоматически снимает кластеризацию с индекса по первичному ключу. Для СУБД SQLBase (CENTURA) ERwin позволяет создать кластеризованный хешированный индекс (clustered hashed index). Хеширование -альтернативный способ хранения данных в заранее заданном порядке с целью ускорения поиска, но физически это более сложно, чем простое сохранение строк в алфавитном порядке или в соответствии с числовыми значениями.
Кластеризованный или хешированный индекс значительно ускоряет операции поиска и сортировки, но добавление и удаление строк замедляется из-за необходимости реорганизации данных для соответствия индексу.
Дата добавления: 2016-05-16; просмотров: 813;