С целью ускорения поиска и сортировки данных в любой СУБД используются индексы. Индексявляется средством, которое обеспечивает быстрый доступ киданным в таблице на основе значений одного или нескольких столбцов. Индекс представляет собой упорядоченный список значений и ссылок на те записи, в которых хранятся эти значения. Чтобы найти нужные записи, СУБД сначала ищет требуемое значение в индексе, а затем по ссылкам быстро отбирает соответствующие записи. Индексы бывают двух типов: простые и составные. Простые индексы представляют собой индексы, созданные по одному столбцу. Индекс, построенный по нескольким столбцам, называется составным. Примером составного индекса может быть индекс, построенный по столбцам "Фамилия" и "Имя".
Однако применение индексов приносит не только преимущества, но и недостатки. Главным среди них является тот, что при добавлении и удалении записей или при обновлении значений в индексном столбце требуется обновлять индекс, что при большом количестве индексов в таблице может замедлять работу. Поэтому индексы обычно рекомендуется создавать только для тех столбцов таблицы, по которым наиболее часто выполняется поиск записей. Во многих СУБД (например, FoxPro) индексы хранятся в отдельных файлах и являются предметом заботы разработчиков, т. к. при нарушении индекса поиск данных выполняется некорректно. В Microsoft Access индексы хранятся в том же файле базы данных, что и таблицы и другие объекты Access. Индексировать можно любые поля, кроме МЕМО-полей, полей типа Гиперссылка и объектов OLE.
Чтобы создать простой индекс, необходимо:
1. Открыть таблицу в режиме Конструктора.
2. Выбрать поле, для которого требуется создать индекс.
3. Открыть вкладку Общие(General) и выбрать для свойства Индексированное поле(Indexed) значение Да (Допускаются совпадения)(Yes (Duplicates OK)) или Да (Совпадения не допускаются)(Yes (No duplicates)) (рис. 2.24).
Рис. 2.24.Установка индекса для поля
Ключевое поле таблицы автоматически индексируется и свойству Индексированное поле(Indexed) присваивается значение Да (Совпадения не допускаются)(Yes (No duplicates)).
Составной индекс создается в специальном диалоговом окне. Чтобы создать составной индекс, необходимо:
1. Открыть таблицу в режиме Конструктора.
2. На панели инструментов Конструктор таблиц(Table Design) нажать кнопку Индексы(Indexes.)
3. В первой пустой строке (рис. 2.25) поля Индекс(Index Name) ввести имя индекса.
Рис. 2.25.Диалоговое окно Индексы
4. В поле Имя поля(Field Name) нажать на стрелку и выбрать первое поле, для которого необходимо создать индекс.
5. В следующей строке поля Имя поля(Field Name) указать второе индексируемое поле. (Для данной строки поле Индекс(Index Name) должно оставаться пустым.) Повторите эту операцию для всех полей, которые необходимо включить в индекс. В индексе может быть использовано до 10 полей
Замечание
По умолчанию устанавливается порядок сортировки По возрастанию (Ascending). Для сортировки данных полей по убыванию в поле Порядок сортировки (Sort Order) в окне индексов укажите значение По убыванию (Descending).
Диалоговое окно Индексы(Indexes) используется также для просмотра, изменения и удаления существующих индексов. Изменить можно:
· название индекса в поле Индекс(Index Name);
· поле таблицы, соответствующее данному индексу, выбрав новое поле из списка в поле Имя поля(Field Name);
· порядок сортировки в поле Порядок сортировки(Sort Order); П свойства данного индекса в нижней части окна (рис. 2.26):
· Ключевое поле(Primary) определяет, является ли индексированное поле ключевым;
· Уникальный индекс(Unique) определяет, должно ли быть каждое значение в этом поле уникальным;
· Пропуск пустых полей(Ignore Nulls) определяет, включаются или не включаются в индекс записи с пустым (Null) значением данного поля.
Рис. 2.26.Диалоговое окно индексов для таблицы "Клиенты"
Удаление индекса выполняется точно так же, как удаление поля в Конструкторе таблиц. Просто выделите строку с нужным индексом и нажмите клавишу <Delete> или воспользуйтесь контекстным меню.