
Презентации БД (ВФ) / DB_lec11
.pdfВнутренние структуры хранения
Хэш индексы
•Для произвольного доступа к данным
•Строится на уникальных атрибутах
•Хэш функция отображает индекс в
физический адрес хранения
соответствующей строки таблицы
•Принцип отображения – m : 1

Внутренние структуры хранения
Хэш индексы
0 |
1 |
. . . |
N - 1 |
|
|
|
|
|
|
|
|
|
|
|
|
Бакеты (buckets)

Внутренние структуры хранения
Хэш индексы
Ключи |
Первичная |
Область |
|
область |
переполнения |
||
|
hash
бакет бакет
Внутренние структуры хранения
Хэш индексы. Принципы построения
1.Адрес, получаемый в результате, должен попасть в диапазон адресов, соответствующий выделенному пространству. Пространство под таблицу резервируется при создании таблицы, и в хэш-функции часто используется операция % (остаток от деления на размер таблицы).
2.Хэш-функция должна давать достаточно однородные значения хэш-индексов, чтобы не было скопления синонимов (или коллизий), требующих специальных методов обработки.
Правила построения хэш-функции:
1.первичный ключ обязательно входит в атрибуты, на которых строится хэш-индекс
2.хэш-функция должна использовать значения всех атрибутов первичного ключа.
Внутренние структуры хранения
Хэш индексы
Для k1 ≠ k2 hash(k1) = hash(k2) k1, k2 – синонимы Разрешение коллизий:
•выявление свободного пространства в бакете
•обработка переполнения бакета

Внутренние структуры хранения
Хэш индексы. Обработка переполнения. Метод открытой адресации.
Первичная область + область переполнения
Бакет А
Бакет В
бакет

Внутренние структуры хранения
Хэш индексы. Обработка переполнения. Метод срастающихся цепочек.
Указатель на свободное пространство
Бакет В
Бакет А

Внутренние структуры хранения
Хэш индексы. Обработка переполнения. Метод раздельных цепочек.
Бакет В |
Область переполнения |
|
Бакет А
Первичная область
Внутренние структуры хранения
Хэш индексы.Сравнение методов индексирования.
• |
В+ деревья |
• |
Хеш индексы |
• |
представляются |
• |
не представляются |
|
объектами базы данных |
|
объектами базы данных |
• |
не влияют на |
• |
влияют на представление |
|
представление таблицы |
|
таблицы |
• |
упорядоченное хранение |
• |
упорядоченность строк |
|
строк таблицы |
|
отсутствует |
• |
определены и операции < |
• |
определены только |
|
и > для сравнения ключей |
|
операции = и ≠ для |
|
|
|
ключей |
Внутренние структуры хранения
Хэш индексы. Рекомендации.
•Если размер таблицы сильно изменяется – не хэш таблица
•Если часто организуется поиск по
критериям < > – не хэш таблица
• Если используются справочники (мало изменяемые таблицы, поиск в них по =) – хэш таблицы