Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsii_BD_PR_Ch1_s_soderzhaniem_2014.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
10 Мб
Скачать
☆

6.5.3. Хешированные файлы (хф) .

В ХФ записи необязательно должны записываться в файл последовательно . Вместо этого для вычисления адреса страницы , в которой должна находиться та или иная запись , используется Хэш-функция (hash-function) , аргументами которой являются значения одного ( или нескольких ) полей этой записи . Подобное поле называется полем перемешивания , а , если это поле также является ключевым полем файла , то оно называется ХЭШ-ключом (hash key) . Записи в ХФ произвольным образом распределяются по всему доступному для файла пространству . По этой причине ХФ иногда называют файлами с произвольной структурой (random file ) или файлами прямого доступа ( direct file ) . Хэш-функция выбирается таким образом , чтобы записи внутри файла были распределены максимально равномерно . Один из методов построения Хэш-функции (свёртка) основан на выполнении определённых арифметических операций над различными частями ( или над всеми ) поля перемешивания . Например , в качестве Хэш-функции используется функция MOD , на вход которой передаётся значение поля (ХЭШ-ключа ) . Функция делит полученные значения на некоторое предопределённое число , после чего остаток от деления используется в качестве адреса .

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

!!!Каждый вычисляемый Хеш-функцией адрес соответствует некоторой странице с несколькими ячейками (слотами) , предназначенными для отдельных записей . В пределах одной страницы записи размещаются в слотах ( ячейках ) в порядке поступления.

Тот случай , когда один и тот же адрес генерируется для 2-ух и более записей , называется конфликтом ( collision ) , а подобные записи – синонимами .

В этом случае новую запись необходимо вставить в другое место , т.к. место с вычисленным для него ХЭШ-адресом уже занято . Разрешение конфликтов усложняет работу с ХФ и снижает общую производительность системы .

Для разрешения конфликтов можно использовать следующие методы :

-открытую адресацию;

-несвязанную область переполнения;

-связанную область переполнения;

-многократное хеширование;

(Здесь можно раскрыть один из методов Хеширования или сослаться на параграф 6.3.2.)

6.5.4. Индексные файлы .

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

Индекс в БД аналогичен предметному указателю , приведенному в предметной книге . Это структура , связанная с файлом данных ( основной файл ) и предназначенная для поиска информации по тому же принципу , что и предметный указатель . Т.е. имеют место два файла : 1) Основной с данными; 2) Индексный;

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

Например , для файлов с искомым индексом , структура индекса (индексной записи) имеет вид :

Значение ключа

Номер записи

Структура индекса содержит записи , состоящие из значений ключа (неправильного или вторичного ) и адреса(номера) логической записи в файле данных (основой файл).

Ещё раз подчёркиваю .

  1. Файл , содержащий логические записи (экземпляры) соответствующие кортежам отношения , называются файлом данных (или основным файлом )(ФД).

  2. Файл , содержащий индексные записи называют индексом (или индексным файлом, или таблицей индексов ) (ИФ) .

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

Определение 1: Если файл данных имеет последовательное упорядочение , а поле индексирования является ключевым полем этого файла данных , то есть гарантировано содержит уникальные значения для всех записей в ФД , то такой индекс называется первичным индексом .

Определение 2: Индекс , который определён на поле файла данных , отличном от ключевого поля (по которому ФД упорядочен) , называется вторичным индексом .

Файл может иметь один первичный индекс (или индекс кластеризации) и несколько вторичных индексов .

<<Если поле индексирования , являющееся одновременно полем упорядочивания , не является ключевым полем файла и по этой причине одному индексному значению может соответствовать несколько записей файла , то такой индекс называется индексом кластеризации .

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