Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

Индексирование

Индекс и индексирование

Автоматическая сортировка записей, контроль отсутствия повторяющихся записей, увеличение скорости выполнения поисковых операций в таблице выполняется для определения ключа таблицы. С целью реализации названных функций в СУБД применяется индексирование.

Определение 1

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

Определение 2

Таблица, для которой используют индекс, называется индексированной.

Индекс играет роль оглавления таблицы и его просмотр выполняется до обращения к записям таблицы. Некоторые системы, например Paradox, хранят индексы в индексных файлах, которые хранятся отдельно от табличных файлов.

На решение проблем организации физического доступа к данным влияет:

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

Поле ключа индексного файла может хранить значения ключевых полей индексируемой таблицы или свертку ключа (хеш-код).

Преимущества и недостатки

Преимуществом хранения хеш-кода является постоянная и достаточно малая величина (например, 2 байта) его длины, которая не зависит от длины исходящего значения ключевого поля, что существенно влияет на снижение времени поисковых операций.

Недостаток хеширования состоит в необходимости выполнения операции свертки, которая занимает определенное время, а также предупреждение возникновения коллизий (результатом свертки разных значений может быть одинаковый хеш-код).

Для создания ссылки на запись таблицы может быть использовано 3 типа адресов:

«Индексирование» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти
  • символический (идентификатор);
  • относительный;
  • абсолютный (действительный).

В практическом применении чаще всего используют 2 метода поиска: бинарный (основанный на делении пополам интервала поиска) и последовательный.

Рассмотрим одноуровневую и двухуровневую схему индексирования таблиц.

При использовании одноуровневой схемы индексный файл хранит короткие записи, которые имеют 2 поля:

  1. хеш-кода ключа (содержимого старшего ключа) адресуемого блока;
  2. адреса начала адресуемого блока (рисунок 1).

Одноуровневая схема индексации

Записи в каждом блоке размещаются по возрастанию значения свертки или ключа. Ключ каждого блока последней записи является старшим его ключом.

Основной недостаток одноуровневой схемы состоит в хранении ключей (сверток) записей вместе с записями, что приводит к длительному поиску записей вследствие большой длины просмотра.

Двухуровневая схема иногда является более рациональной, т.к. ключи (свертки) записей отделяются от содержимого записей (рисунок 2).

Двухуровневая схема индексации

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

Определение 3

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

Определение 4

Индексы, которые создает пользователь для не ключевых полей, называются вторичными (или пользовательскими) индексами.

Определение 5

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

Связь вторичного индекса и элементов данных БД может устанавливаться разными способами. Например, вторичный индекс используется как вход для получения первичного ключа, по которому выполняется поиск нужных записей с использованием первичного индекса (рисунок 3).

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

Главной причиной повышения скорости выполнения разных операций в индексированных таблицах является выполнение основной части работы с небольшими индексными файлами.

Повышение производительности работы достигается с наибольшим эффектом при использовании больших таблиц.

Дата написания статьи: 31.07.2016
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot