Точечные Методы Доступа - 2 - Хеширование.ppt
- Количество слайдов: 29
Точечные Методы Доступа Часть 2: методы многомерного хеширования 1
Классификация методов многомерного хеширования • Схемы хеширования с каталогом – функция хеширования использует дополнительные данные, сохраненные на диске (Файлрешетка, EXCELL). • Схемы хеширования без каталога – функция хеширования основана только на математических вычислениях, без использования дополнительных данных (MOLHPE, PLOP). 2
Файл-решетка • Файл-решетка – Grid File • Впервые был описан Д. Нивергелтом, Г. Хинтербергом и К. Севчиком в 1981 г. • Основной принцип – решеточное деление пространства. 3
Принципы файл-решетки • Принцип двух дисковых запросов. Запрос на точное совпадение по всем ключам должен вернуть запись или флаг ее отсутствия в индексе за два обращения к внешней памяти. • Эффективные диапазонные запросы. Структура данных должна сохранять порядок, определенный для каждого ключевого диапазона (записи, имеющие близкие значения в какого-либо ключа, должны располагаться в близких участках памяти). 4
Структура файл-решетки 5
Шкала файл-решетки Для получения решетки на каждую ось накладывается интервал: X = [x 0, x 1, …, xn], Y = [y 0, y 1, …, ym]. Суть разбиения решеткой заключается в получении такого распределения, при котором в каждой ячейки решетки будет не более N объектов. Число N выбирается таким образом, чтобы N объектов помещались в одном блоке памяти. 6
Внешний блок файл-решетки После получение решетки с каждой ячейкой сопоставляется один внешний блок, в котором и сохраняется вся информация об объектах данной ячейки. Т. е. задача файлов-решеток заключается в установлении соответствия между ячейками пространства и внешними блоками, в которых и будут физически размещены объекты. 7
Каталог файл-решетки Сопоставление ячеек пространства и внешних блоков производиться с помощью специального каталога. Данная задача решается с помощью специального k-мерного массива (в нашем случае – двухмерного), который называется каталогом. 8
Объединение ячеек файлрешетки В решетке всегда есть полупустые ячейки. С точки зрения памяти эффективнее для всех полупустых ячеек выделить один внешний блок и поместить все записи в него. Таким образом получается как бы объединение ячеек решетки в один внешний блок. Совокупность всех ячеек решетки сопоставленных с неким одним участком памяти называется объединенной ячейкой. 9
Объединение ячеек файлрешетки Форма объединеных ячеек влияет на скорость как минимум двух операций: • диапазонный запрос; • обновление после изменений в разделении решетки. Исходя из этих условий ввели ограничение на форму объединенных ячеек – такие ячейки должны быть прямоугольной формы. 10
Структура каталога файлрешетки • K одномерных массивов, называемых линейными шкалами по осям. Задача этих массивов заключается в хранении координат плоскостей, которые разбивают пространство на решетку. • K-мерный массив сопоставления ячеек решетки и блоков внешней памяти, называемый массивом решетки. 11
Пример каталога файл-решетки Шкалы: [x 0, x 1, x 2] [y 0, y 1, y 2] Массив решетки: 12
Алгоритмы файл-решетки • • • Поиск по точному совпадению Поиск по области (диапазонный запрос) Добавление объекта Расщепление внешнего блока Расщепление решетки Удаление объекта 13
Двухуровневый файл-решетка 14
Двойной файл-решетка 15
EXCELL Ключевым отличием файлов-решеток от EXCELL является то, что при переполнении некоторой ячейки в первых происходит деление только одного интервала на две части (вставка одного значения в линейную шкалу и добавление одного столбца или строки в массив решетки), в то время как в EXCELL происходит деление всех интервалов по соответствующему направлению и удвоение директории. 16
Недостатки всех схем хеширования с каталогом • Размер каталога растет сверхлинейно по отношению к росту хранимых данных даже при равномерном распределении данных. • Если же данные распределяются неравномерно, то во многих вариантах файлов-решеток рост размера каталога может стать экспоненциальным. 17
MOLHPE • MOLHPE – многомерное линейное хеширование с частичными расширениями (Multidimensional Order-preserving Linear Hashing with Partial Expansions) • MOLHPE была предложена в 1986 году Г. Крейгилом и Б. Сигиром • Одна из первых схем хеширования без каталога 18
Принципы MOLHPE В общих чертах хеширование MOLHPE похоже на файлы-решетки. • Все пространство поиска разбивается некоторой решеткой на ячейки. • С каждой ячейкой связывается некоторый внешний блок, в котором и сохраняются все объекты, попавшие в эту ячейку. Однако алгоритмы, выполняющие эти действия, отличаются от рассмотренных ранее. 19
Отличия MOLHPE от файлрешеток Главное отличие - структура функции хеширования, которая не использует шкал и массива решетки. Вместо этого все вычисления производятся с помощью специальных математических функций. 20
Замена линейных шкал в MOLHPE Вместо линейных шкал для вычисления положение ячейки используют функцию Hi - линейное хеширования для i-го измерения. Объект поиска: O = (K 0, K 1) Определение индекса в решетке: l 0 = H 0(K 0) l 1 = H 1(K 1) 21
Замена массива решетки в MOLHPE Индексы подставляют в некоторую функцию заполнения пространства G, которая и возвращает номер внешнего блока. Таким образом вместо массива-решетки используется математическая функция G. 22
Коллизии в MOLHPE В файле решетки при коллизии (переполнении) происходило изменение (расщепление) решетки. Таким образом модифицировалась функция хеширования и обрабатывались коллизии. В MOLHPE используется принцип цепочек для обработки коллизий. 23
Коллизии в MOLHPE 24
Алгоритмы MOLHPE • • Поиск Добавление объекта Расширение Удаление объекта 25
Недостатки MOLHPE Функция хеширования MOLHPE и принцип расширения приводят к равномерному расширению решетки. Однако, при наличии ярких областей сосредоточения объектов, приходится расширять полупустые или даже абсолютно пустые блоки, в то время как переполненные участки выстраиваются в цепочки большой длинны. 26
PLOP • PLOP - Piecewise Order Preserving hashing • Разработан в 1988 г. Г. Кригелом и Б. Сигером • Является синтезом файл-решеток и MOLHPE • Авторы попытались устранить недостатки обоих схем 27
Шкалы PLOP 28
Адресная функция PLOP • Точно такая же, как и у MOLHPE • В адресную функцию подставляются индексы, полученные из иерархических шкал 29


