Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции / Л-9 - Методы доступа к данным

.pdf
Скачиваний:
12
Добавлен:
28.06.2021
Размер:
606.3 Кб
Скачать

Способы (методы) доступа к данным

Индексирование данных Хеширование данных Кластеризация данных

Основные способы доступа

кданным (1)

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

Доступ по ключу базы данных (КБД). КБД определяет местоположение записи в памяти ЭВМ. Зная его, СУБД может извлечь нужную запись за одно обращение к памяти.

Основные способы доступа

кданным (2)

Доступ по ключу (в частности, первичному). Если система обеспечивает доступ по ключу, то этот ключ также может использоваться при запоминании записи (для определения места размещения записи в памяти).

В базах данных применяются следующие способы доступа по ключу:

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

хеширование;

кластеризация.

Общие сведения об индексировании

Индексы обеспечивают быстрый доступ к реляционным данным. Правильная настройка индексов – ключевой аспект улучшения производительности запросов.

Индекс БД сходен с индексом книги (алфавитным указателем). Чтобы быстро найти тему в книге, мы смотрим в индексе, на каких страницах эта тема рассматривается, а потом открываем нужную страницу.

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

Отличия индекса книги от индекса БД

Читатель книги может сам решать, использовать ли индекс в каждом конкретном случае или нет.

Пользователь БД такой возможности не имеет. За него это решение принимает компонент системы (оптимиза-

тор запросов).

Индекс для книги создается вместе с книгой и больше не изменяется. То есть индекс для определенной темы всегда будет указывать на один и тот же номер страницы.

Индекс БД может меняться при каждом изменении соответствующих данных.

Сканирование таблицы

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

Система последовательно извлекает и исследует каждую строку таблицы (от первой до последней), и помещает строку в результирующий набор, если для нее удовлет-

воряется условие поиска (предложение WHERE).

Строки извлекаются в соответствии с их физическим расположением в памяти. Метод менее эффективен, чем доступ с использованием индексов.

Индекс

Индексирование – способ доступа к данным в реляционной таблице с помощью специальной структуры –

индекса.

Индекс – это структура, которая определяет соответствие значения ключа записи (атрибута или группы атрибутов) и местоположения этой записи – КБД .

Индексирование данных (1)

Индексы хранятся в дополнительных структурах БД (страницах индексов). Структура страниц индексов похожа на структуру страниц данных.

Для каждой индексируемой строки есть элемент индекса, сохраняемый на странице индексов.

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

Индексирование данных (2)

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

Пустые значения атрибутов (NULL) не индексируются.

Индексирование ускоряет доступ к записям, поскольку:

значения индексируемого атрибута упорядочены (при линейном поиске просматривается в среднем половина индекса);

индекс занимает меньше страниц памяти, чем сама таблица (на чтение индекса тратится меньше времени).

Индексирование данных (3)

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

Обновление индекса занимает время (иногда очень большое), поэтому наличие многих индексов может замедлить работу БД.

Существуют методы оптимизации переиндексации.

При выполнении пакетной модификации БД обновление индексов может происходить один раз после внесения

всех изменений в данные.