Скачать презентацию Точечные Методы Доступа Часть 2 методы многомерного хеширования Скачать презентацию Точечные Методы Доступа Часть 2 методы многомерного хеширования

Точечные Методы Доступа - 2 - Хеширование.ppt

  • Количество слайдов: 29

Точечные Методы Доступа Часть 2: методы многомерного хеширования 1 Точечные Методы Доступа Часть 2: методы многомерного хеширования 1

Классификация методов многомерного хеширования • Схемы хеширования с каталогом – функция хеширования использует дополнительные Классификация методов многомерного хеширования • Схемы хеширования с каталогом – функция хеширования использует дополнительные данные, сохраненные на диске (Файлрешетка, EXCELL). • Схемы хеширования без каталога – функция хеширования основана только на математических вычислениях, без использования дополнительных данных (MOLHPE, PLOP). 2

Файл-решетка • Файл-решетка – Grid File • Впервые был описан Д. Нивергелтом, Г. Хинтербергом Файл-решетка • Файл-решетка – Grid File • Впервые был описан Д. Нивергелтом, Г. Хинтербергом и К. Севчиком в 1981 г. • Основной принцип – решеточное деление пространства. 3

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

Структура файл-решетки 5 Структура файл-решетки 5

Шкала файл-решетки Для получения решетки на каждую ось накладывается интервал: X = [x 0, Шкала файл-решетки Для получения решетки на каждую ось накладывается интервал: X = [x 0, x 1, …, xn], Y = [y 0, y 1, …, ym]. Суть разбиения решеткой заключается в получении такого распределения, при котором в каждой ячейки решетки будет не более N объектов. Число N выбирается таким образом, чтобы N объектов помещались в одном блоке памяти. 6

Внешний блок файл-решетки После получение решетки с каждой ячейкой сопоставляется один внешний блок, в Внешний блок файл-решетки После получение решетки с каждой ячейкой сопоставляется один внешний блок, в котором и сохраняется вся информация об объектах данной ячейки. Т. е. задача файлов-решеток заключается в установлении соответствия между ячейками пространства и внешними блоками, в которых и будут физически размещены объекты. 7

Каталог файл-решетки Сопоставление ячеек пространства и внешних блоков производиться с помощью специального каталога. Данная Каталог файл-решетки Сопоставление ячеек пространства и внешних блоков производиться с помощью специального каталога. Данная задача решается с помощью специального k-мерного массива (в нашем случае – двухмерного), который называется каталогом. 8

Объединение ячеек файлрешетки В решетке всегда есть полупустые ячейки. С точки зрения памяти эффективнее Объединение ячеек файлрешетки В решетке всегда есть полупустые ячейки. С точки зрения памяти эффективнее для всех полупустых ячеек выделить один внешний блок и поместить все записи в него. Таким образом получается как бы объединение ячеек решетки в один внешний блок. Совокупность всех ячеек решетки сопоставленных с неким одним участком памяти называется объединенной ячейкой. 9

Объединение ячеек файлрешетки Форма объединеных ячеек влияет на скорость как минимум двух операций: • Объединение ячеек файлрешетки Форма объединеных ячеек влияет на скорость как минимум двух операций: • диапазонный запрос; • обновление после изменений в разделении решетки. Исходя из этих условий ввели ограничение на форму объединенных ячеек – такие ячейки должны быть прямоугольной формы. 10

Структура каталога файлрешетки • K одномерных массивов, называемых линейными шкалами по осям. Задача этих Структура каталога файлрешетки • K одномерных массивов, называемых линейными шкалами по осям. Задача этих массивов заключается в хранении координат плоскостей, которые разбивают пространство на решетку. • K-мерный массив сопоставления ячеек решетки и блоков внешней памяти, называемый массивом решетки. 11

Пример каталога файл-решетки Шкалы: [x 0, x 1, x 2] [y 0, y 1, Пример каталога файл-решетки Шкалы: [x 0, x 1, x 2] [y 0, y 1, y 2] Массив решетки: 12

Алгоритмы файл-решетки • • • Поиск по точному совпадению Поиск по области (диапазонный запрос) Алгоритмы файл-решетки • • • Поиск по точному совпадению Поиск по области (диапазонный запрос) Добавление объекта Расщепление внешнего блока Расщепление решетки Удаление объекта 13

Двухуровневый файл-решетка 14 Двухуровневый файл-решетка 14

Двойной файл-решетка 15 Двойной файл-решетка 15

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

Недостатки всех схем хеширования с каталогом • Размер каталога растет сверхлинейно по отношению к Недостатки всех схем хеширования с каталогом • Размер каталога растет сверхлинейно по отношению к росту хранимых данных даже при равномерном распределении данных. • Если же данные распределяются неравномерно, то во многих вариантах файлов-решеток рост размера каталога может стать экспоненциальным. 17

MOLHPE • MOLHPE – многомерное линейное хеширование с частичными расширениями (Multidimensional Order-preserving Linear Hashing MOLHPE • MOLHPE – многомерное линейное хеширование с частичными расширениями (Multidimensional Order-preserving Linear Hashing with Partial Expansions) • MOLHPE была предложена в 1986 году Г. Крейгилом и Б. Сигиром • Одна из первых схем хеширования без каталога 18

Принципы MOLHPE В общих чертах хеширование MOLHPE похоже на файлы-решетки. • Все пространство поиска Принципы MOLHPE В общих чертах хеширование MOLHPE похоже на файлы-решетки. • Все пространство поиска разбивается некоторой решеткой на ячейки. • С каждой ячейкой связывается некоторый внешний блок, в котором и сохраняются все объекты, попавшие в эту ячейку. Однако алгоритмы, выполняющие эти действия, отличаются от рассмотренных ранее. 19

Отличия MOLHPE от файлрешеток Главное отличие - структура функции хеширования, которая не использует шкал Отличия MOLHPE от файлрешеток Главное отличие - структура функции хеширования, которая не использует шкал и массива решетки. Вместо этого все вычисления производятся с помощью специальных математических функций. 20

Замена линейных шкал в MOLHPE Вместо линейных шкал для вычисления положение ячейки используют функцию Замена линейных шкал в MOLHPE Вместо линейных шкал для вычисления положение ячейки используют функцию Hi - линейное хеширования для i-го измерения. Объект поиска: O = (K 0, K 1) Определение индекса в решетке: l 0 = H 0(K 0) l 1 = H 1(K 1) 21

Замена массива решетки в MOLHPE Индексы подставляют в некоторую функцию заполнения пространства G, которая Замена массива решетки в MOLHPE Индексы подставляют в некоторую функцию заполнения пространства G, которая и возвращает номер внешнего блока. Таким образом вместо массива-решетки используется математическая функция G. 22

Коллизии в MOLHPE В файле решетки при коллизии (переполнении) происходило изменение (расщепление) решетки. Таким Коллизии в MOLHPE В файле решетки при коллизии (переполнении) происходило изменение (расщепление) решетки. Таким образом модифицировалась функция хеширования и обрабатывались коллизии. В MOLHPE используется принцип цепочек для обработки коллизий. 23

Коллизии в MOLHPE 24 Коллизии в MOLHPE 24

Алгоритмы MOLHPE • • Поиск Добавление объекта Расширение Удаление объекта 25 Алгоритмы MOLHPE • • Поиск Добавление объекта Расширение Удаление объекта 25

Недостатки MOLHPE Функция хеширования MOLHPE и принцип расширения приводят к равномерному расширению решетки. Однако, Недостатки MOLHPE Функция хеширования MOLHPE и принцип расширения приводят к равномерному расширению решетки. Однако, при наличии ярких областей сосредоточения объектов, приходится расширять полупустые или даже абсолютно пустые блоки, в то время как переполненные участки выстраиваются в цепочки большой длинны. 26

PLOP • PLOP - Piecewise Order Preserving hashing • Разработан в 1988 г. Г. PLOP • PLOP - Piecewise Order Preserving hashing • Разработан в 1988 г. Г. Кригелом и Б. Сигером • Является синтезом файл-решеток и MOLHPE • Авторы попытались устранить недостатки обоих схем 27

Шкалы PLOP 28 Шкалы PLOP 28

Адресная функция PLOP • Точно такая же, как и у MOLHPE • В адресную Адресная функция PLOP • Точно такая же, как и у MOLHPE • В адресную функцию подставляются индексы, полученные из иерархических шкал 29