Иллюстрированный самоучитель по SQL для начинающих

Создание многотабличной реляционной базы данных

Что такое индекс

Данные в таблице обычно отображаются в том порядке, в каком их в нее первоначально ввели. Однако такой порядок может не иметь ничего общего с тем порядком, в котором затем требуется эти данные обрабатывать. Скажем, что вы, например, хотите обрабатывать таблицу CLIENT в такой последовательности, чтобы значения в столбце ClientName располагались в алфавитном порядке. Но на такую сортировку записей таблицы требуется определенное время. И чем таблица больше, тем сортировка проходит дольше. Что если в вашей таблице сто тысяч записей? Или миллион? А ведь в некоторых приложениях таблицы такого размера не являются редкостью. Даже при выполнении лучших алгоритмов сортировки, чтобы выстроить записи таблицы в нужном порядке, все равно придется в таком случае проделать примерно двадцать миллионов сравнений и миллионы перестановок. И пусть у вас очень быстрый компьютер, но подождать все-таки придется.

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

Каждой строке таблицы данных соответствует определенная строка таблицы индекса. Однако порядок расположения строк в таблице индекса другой.

Небольшой пример таблицы данных показан в табл. 5.2.

Таблица 5.2. Таблица CLIENT.

ClientName Address1 Address2 City State
Butternut Animal Clinic 5 Butternut Lane   Hudson NH
Amber Veterinary, Inc. 470 Kolvir Circle   Amber Ml
Vets R Us 2300 Geoffrey Road Suite 230 Anaheim CA
Doggie Doctor 32 Terry Terrace   Nutley NJ
The Equistrian Center Veterinary Department 7890 Paddock Parkway Gallup NM<
Dolphin Institute 1002 Marine Drive   Key West FL
J.C.Campbell, Credit Vet 2500 Main Street   Los Angeles CA
Wenger's Worm Farm 15 Bait Boulevard   Sedona AZ

Строки следуют в таком порядке, что значения в столбце ClientName располагаются не по алфавиту. Строки находятся в том порядке, в каком их кто-то вводил.

Индекс для этой таблицы CLIENT может выглядеть примерно так, как табл. 5.3.

Таблица 5.3. Индекс по названию клиента для таблицы CLIENT.

ClientName Указатель к таблице данных
Amber Veterinary, Inc. 2
Butternut Animal Clinic 1
Doggie Doctor 4
Dolphin Institute 6
J.C.Campbell, Credit Vet 7
The Equistrian Center 5
Vets R Us 3
Wenger's Worm Farm 8

В индексе находятся поле, которое является его основой (в данном случае это поле ClientName), и указатель к таблице данных. Значение указателя, расположенное в каждой строке индекса, является номером соответствующей строки таблицы данных.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.