Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
42-51.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
34.45 Кб
Скачать

42. Понятие индекса.

Основная проблема в СУБД – это поиск нужных данных за минимальное время.

Быстрый поиск может быть выполнен в случае, если данные отсортированы.

Сортировка данных в таблице невозможна, т.к. критериев поиска может быть несколько.

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

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

43. Методы организации индекса:

  • Первичного ключа

  • Плотным индексом (некластерный индекс) – индексно-прямой файл

  • Неплотным индексом (кластерный индекс) – индексно-последовательный файл

  • Б-деревья

  • Вторичного ключа

  • Инвертируемые списки

Оператор создания индекса

СУБД всегда создает индекс для первичного ключа таблицы

Для создания индексов других полей используется оператор SQL

CREATE [UNIQUE] INDEX имя_индекса

ON имя_таблицы (имя_столбца [ ASC | DESC ] [ … ] )

В каждой СУБД оператор создания индексов содержит дополнительные предложения специфические для каждой СУБД.

CREATE [UNIQUE] создание уникального индекса

[ CLASTERED | NONCLASTERED ] создание неплотного или плотного индекса

ON { имя_таблицы | имя_представления }

(имя_столбца [ ASC | DESC ] [ … ] ) по возрастанию или убыванию

WITH

[ <параметры> [,…n] ]

[ ON имя_файла_группы ] расположение индекса в файлах ОС БД

<параметры> - это

{ PAD_INDEX | резервирование на каждой странице индекса свободного пространства

FILLFACTOR = %запол. | степень заполнения свободного пространства

IGNORE_DUP_KEY | Поведение сервера при появлении дублей стр

DROP_EXISTING | Поведение сервера при наличии индекса

STATISTICS_NORECOMPUTE |

SORT_IN_TEMPDB

}

44. Плотный индекс

Плотный индексный файл предполагает размещение записей в файле в  произвольном порядке и создание другого файла с индексами, с помощью которого будут отыскиваться требуемые записи. Этот дополнительный файл  называется плотным индексом.

Плотный индекс состоит из индексов  (k, р), где р - указатель на запись с ключом k в основном файле. Все индексы в индексном файле  отсортированы по значению ключа.

Алгоритм поиска данных:

45. Неплотный индекс

Еще одним распространенным способом организации индексного файла является поддержание файла с данными в отсортированном по значениям ключей порядке. Чтобы облегчить процедуру поиска, можно создать второй файл, называемый разреженным индексом, который состоит из пар (k, p), где k-значение ключа, а p-файловый указатель блока, в котором значение ключа первой записи равняется k. Этот разреженный индекс также отсортирован по значениям ключей.

Алгоритм добавления записи:

46. Индекс b-дерево.

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

Количество обращений к диску при этом для поиска любой записи одинаково и равно количеству уровней в построенном дереве. Такие деревья называются сбалансированными (balanced) именно потому, что путь от корня до любого листа в этом древе одинаков. Именно термин «сбалансированное» от английского «balanced» — «сбалансированный, взвешенный» и дал название данному методу организации индекса.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]