Руководство по программному пакету ERwin

Изменение характеристик индекса


Когда ERwin создает индекс, он автоматически присваивает ему имя и значения по умолчанию для режимов, которые определяют, будет ли индекс:

· содержать повторяющиеся значения.

· отсортирован по возрастанию или по убыванию.

· кластеризованным или некластеризованным.

Редактор Index позволяет Вам изменять имя индекса, а также значения характеристик по умолчанию, как описано ниже.

Изменение имени индекса

Вы можете переименовать индекс в соответствии с соглашениями, принятыми в Вашей организации. Выберите индекс, который Вы хотите изменить, и отредактируйте его имя в текстовом окне 'Index Name', которое находится под списком.

Будет ли индекс содержать повторяющиеся значения

Когда ERwin создает индекс, он автоматически по умолчанию запрещает повторяющиеся значения в индексах по первичным и альтернативным ключам и разрешает повторяющиеся значения в индексах по Inversion Entry. Если Вы устанавливаете режим Unique/Duplicate Index так, что разрешены только уникальные значения (Unique), это предохраняет Вас от хранения ненужных данных, которые могут стать источником путаницы, например от сохранения в таблице CUSTOMER двух строк с информацией об одном и том же клиенте.

Бывает, наоборот, необходимо разрешить повторяющиеся значения, если ожидается, что индексированная колонка будет с большой вероятностью содержать повторяющуюся информацию. Например, для колонки movie_name можно разрешить хранение повторяющихся значений, поскольку во многих случаях римейк фильма выходит под тем же названием (например 'Дракула').

Если Вы хотите изменить режим уникальных значений индекса, щелкните по check box 'Unique', чтобы разрешить или запретить хранение повторяющихся значений в индексированных колонках. Когда в окне 'Unique' стоит 'Х', то в индексированной колонке (колонках) разрешается хранить только уникальные значения. Когда окно 'Unique' пусто, разрешаются неуникальные (повторяющиеся) значения.

Сортировка значений в индексе

По умолчанию ERwin автоматически сохраняет значения в индексе в порядке возрастания (значения сортируются по алфавиту от A до Z, а числа от 0 до 9).
Если Вы хотите изменить порядок сортировки для колонки и Ваша СУБД поддерживает режим сортировки по убыванию (Z-A, 9-0), выберите колонку и затем поставьте метку в окно check box 'Descending'.



Использование кластеризованного индекса



Кластеризованный индекс - это специальная техника индексирования, при которой данные в таблице физически располагаются в индексированном порядке. Использование кластеризованного индекса значительно ускоряет выполнение запросов, которые производят выборку строк с одинаковыми значениями в индексированной кколонке (колонках). Например, фирма проката видеопродукции может создать кластеризованный индекс по колонке movie-rating. Сохраняя рядом на диске все фильмы с одним и тем же значением movie-rating, Вы повышаете скорость выполнения запроса, который делает выборкку всех фильмов с каким-то определенным значением этой величины, например 'PG'.

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

В некоторых СУБД редактор ERwin Index позволяет присвоить сущности кластеризованный хешированный индекс (clustered hashed index). Хеширование - альтернативный способ хранения данных в заранее заданном порядке с целью ускорения поиска, но физически это более сложно, чем простое сохранение срок в алфавитном порядке или в соответствии с числовыми значениями. См. документацию по Вашей СУБД об индексах clustered hashed index.

Поскольку данные хранятся в таком порядке, как в индексе, только один индекс может быть кластеризован или хеширован для каждой таблицы, и Вы не можете задать для одной таблицы и кластеризованный, и хешированный индекс одновременно. Обратите внимание, что если Вы задаете для таблицы кластеризованный или хешированный индекс, то добавление и удаление строк для этой таблицы замедляются, поскольку для соответствия индексу необходимо реорганизовать данные.







Как изменить имя индекса



1. Щелкните по индексу, который Вы хотите переименовать, в списке 'Index Name' в верхней части редактора.

2. Отредактируйте имя индекса в текстовом окне 'Index Name', которое расположено под списком.

3. Нажмите кнопку 'Update' для сохранения нового имени.

4. Закончив работу в редакторе, нажмите кнопку 'ОК' для сохранения изменений и выхода из редактора в диаграмму. Вы можете также нажать 'Cancel' для выхода из редактора без сохранения изменений.



Как изменить порядок расположения колонок в индексе



1. В списке 'Index Column' щелкните по атрибуту, расположение которого Вы хотите изменить. Не отпуская кнопку мыши, передвиньте атрибут на то место, над которым Вы хотите его вставить.

2. Отпустите кнопку мыши. ERwin вставит перемещенный атрибут непосредственно над местом, где стоял указатель мыши.

Пусть, например, список 'Index Column' содержит следующие колонки: сustomer_name, customer_address, customer_status_co. Чтобы изменить порядок расположения колонок так, что customer_status_co окажется в первой строчке, а после нее - customer_name и customer_address, выберите customer_status_co и передвигайте его, пока он не окажется поверх customer_name. Когда Вы отпустите кнопку мыши, ERwin вставит customer_status_co над customer_name.



Как перенести колонку в конец списка Index Column



1. Щелкните по второму с конца атрибуту в списке 'Index Column'.

2. Не отпуская кнопку мыши, передвигайте выбранный атрибут, пока он не окажется поверх второго с конца атрибута.

3. Отпустите кнопку мыши. ERwin поместит атрибут в конец.

Пусть, например, список 'Index Column' содержит следующие колонки: customer_status_co, сustomer_name, customer_address. Чтобы поставить customer_status_co в конец, выберите customer_status_co и двигайте его до тех пор, пока он не окажется поверх customer_address. Когда Вы отпустите кнопку мыши, ERwin вставит customer_status_co перед customer_address. Чтобы поменять местами последние два атрибута, передвиньте customer_status_co поверх customer_address.


ERwin поместит имя клиента в первую строку списка.



Колонки индекса по первичному ключу или внешнему ключу нельзя поменять местами в редакторе Index. Вы можете войти в редактор Entity-Attribute и изменить порядок расположения атрибутов первичного ключа в этом редакторе. Вы можете также использовать инструмент Attribute Manipulation Tool, чтобы переставить местами атрибуты первичного и внешнего ключа в окне диаграммы.

Как изменить режим уникальных/неуникальных значений для индекса



1. Выберите тот индекс, для которого Вы хотите изменить режим, разрешив (запретив) повторяющиеся значения. Текущий режим см. в списке 'Index Name' под заголовком Unique.

2. Для того чтобы разрешить использование в индексе только уникальных значений, поставьте метку Х в окно check box 'Unique', которое находится рядом с текстовым окном 'Index Name'. Для того чтобы разрешить использование неуникальных значений в индексе, щелкните по окну 'Unique', чтобы убрать метку.



Для индекса по первичному ключу требуются уникальные значения. Изменить это нельзя. Для индекса по

альтернативному ключу по умолчанию задается режим Unique, но его можно изменить. Для индекса по Inversion Entry должны быть разрешены неуникальные значения. Если Вы изменяете режим на Unique, то ERwin изменяет индекс на индекс по альтернативному ключу.

Как изменить режим кластеризации индекса



1. Выберите тот индекс, для которого Вы хотите изменить режим кластеризации. Текущий режим см. в списке 'Index Name' под заголовком Clustered.

2. Для того чтобы cоздать кластеризованный индекс, поставьте метку Х в окно check box 'Clustered', которое находится рядом с текстовым окном 'Index Name'. Для того чтобы убрать кластеризацию индекса, щелкните по окну 'Clusterd', чтобы убрать метку.

Если Вы щелкнете по окну 'Clustered' более чем для одного индекса одной и той же таблицы, то тот кластеризованный индекс, который Вы задали раньше, автоматически изменится на некластеризованный, поскольку должно выполняться правило: только один индекс в таблице может быть кластеризованным.



Как изменить порядок сортировки с возрастающего на убывающий и наоборот



1. Выберите нужную Вам колонку в списке 'Index Column'.

2. Чтобы задать порядок сортировки по убыванию, щелкните по окну 'Descending', которое расположено над списком 'Index Column', и поставьте в него метку Х. Чтобы сохранить порядок сортировки по возрастанию, который ERwin задает по умолчанию, щелкните по окну 'Descending', чтобы убрать Х.

Если колонка является частью более чем одного индекса, изменение порядка сортировки в одном индексе не отразится на этой колонке ни в одном другом индексе.

См. далее в этой главе 'Режимы индексирования для различных СУБД'.




Содержание раздела