Механизмы поиска в БД Структуры индексов. Основные виды индексов Простые индексы для упорядоченных файлов Вторичные индексы для неупорядоченных файлов.

Презентация:



Advertisements
Похожие презентации
Механизмы поиска в БД Структуры индексов. Основные виды индексов Простые индексы для упорядоченных файлов Вторичные индексы для неупорядоченных файлов.
Advertisements

Хранение таблиц По строкам По столбцам Строки нескольких таблиц группируются по общему атрибуту.
Физические модели баз данных Файловые структуры, используемые для хранения информации в базах данных.
Индексные файлы. Структура индексного файла Индексные файлы можно представить как файлы, состоящие из двух частей: индексная область, основная область,
Принципы построения БД Тема 51 Принципы построения и работы баз данных Тема 05: Хэширование и другие вопросы.
Древовидные структуры для многомерных данных 1)Индексы с несколькими ключами 2)Kd-деревья 3)Деревья квадрантов 4)R-деревья.
1 Лекция 5 Абстрактные структуры данных. 2 Таблицы Таблица – это набор элементов, содержащих ключ – отличительный признак для поиска элементов, и тело.
Поиск информации Задача поиска: где в заданной совокупности данных находится элемент, обладающий заданным свойством? Большинство задач поиска сводится.
1 Массивы 2 Опр. Массивом называется совокупность однотипных данных, связанных общим именем. Основные характеристики массива: 1. Имя массива 2. Тип компонентов.
Поиск данных. Постановка задачи поиска данных Первый атрибут: набор данных –совокупность данных, среди которых осуществляется поиск; –Элементы набора.
4. Минимизация логических функций. Карты Карно. Задача минимизации логической функции заключается в том, чтобы найти наиболее компактное её представление.
АЛГОРИТМЫ И СТРУКТУРЫ ДАННЫХ АЛГОРИТМЫ И СТРУКТУРЫ ДАННЫХ Лекции для студентов-заочников 2 курса, специальность (Прикладная информатика)
Коллекции классов Лекция 12. С помощью коллекций вместо создания структур данных программист использует готовые структуры данных, не заботясь об их реализации.
Арифметические основы компьютера. Системы счисления Системой счисления называется совокупность приемов наименования и записи чисел Система счисления –
МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ ЭЛЕКТРОНИКИ И МАТЕМАТИКИ (ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ) КАФЕДРА ИКТ Дипломный проект на тему: Студент: Руководитель проекта:
ЧИСЛА В ПАМЯТИ КОМПЬЮТЕРА "Все есть число", говорили пифагорийцы, подчеркивая необычайно важную роль чисел в практической деятельности.
Арифметические основы работы ЭВМ АВМ, ЦЭВМ. Алфавит ЦЭВМ (ЭВМ, ПК). Позиционные системы счисления (10-я, 2-я) Перевод (10) – (2) Перевод (2) – (10) Перевод.
Технология хранения, поиска и сортировки информации в базах данных
Деревья и их представление в STL Презентацию подготовила Чиркова Ольга, 2 подгруппа, группа 271ПИ.
П ОИСК ДАННЫХ Выполнил: преподаватель информатики Осинцева О.С. Министерство общего и профессионального образования Свердловской области государственное.
Транксрипт:

Механизмы поиска в БД Структуры индексов

Основные виды индексов Простые индексы для упорядоченных файлов Вторичные индексы для неупорядоченных файлов B-деревья (B+-деревья) Хэш-таблицы

Индексы для последовательных файлов Плотный индекс - Размер файла индекса значительно меньше - Возможность бинарного поиска - Есть вероятность загрузки индекса в память Разреженный индекс

Более сложные варианты Многоуровневый индекс Индексы для файлов с дубликатами ключей –Плотный с дублированием –Плотный –Разреженный с наименьшими значениями –Разреженный с наименьшими новыми значениями

Операции с индексами Удаление –Может быть модифицировано путем добавления мертвых записей, остающихся на месте удаленных Вставка –Может быть модифицирована путем использования блоков переполнения

Вторичные индексы Плотный вторичный индекс Двухуровневый плотный индекс Многоуровневые

В-деревья Классическое B-дерево порядка 2

Поиск в B-дереве 1.Если в считанной странице обнаруживается пара ключей ki и k(i+1) такая, что ki < K < k(i+1), то поиск продолжается на странице pi. 2.Если обнаруживается, что K > km, то поиск продолжается на странице pm. 3.Если обнаруживается, что K < k1, то поиск продолжается на странице p0.

Вставка в B-дерево Пытаемся вставить: Вставка путем расщепления страницы A

Исключение из B-дерева До удаления После удаления 25

Исключение с переливанием ключей До удаления После удаления 38

Исключение со слиянием страниц До удаления После удаления 29

B+ деревья 1). Не листовые вершины содержат только ключи и ссылки на дочерние страницы. 2). Листовые вершины содержат все множество ключей отношения, сами указатели на записи, плюс указатель на следующий по порядку лист. 3). Ключи в листовых вершинах отсортированы по возрастанию.

Эффективность B+ деревьев Возьмем значение блока равным 4096 байт (что часто встречается на практике). Пусть указатель занимает 8 байт, а ключ 4. Тогда блок вмещает максимум 340 индексов. Кол-во индексов в блоке в среднем = 255. Тогда дерево глубиной в 3 уровня может адресовать записей ( ).

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

Динамические хеш-таблицы Расширяемые хеш-таблицы Линейные хеш-таблицы

Количество сегментов линейной хеш-таблицы (n) всегда выбирается так, чтобы отношение среднего числа записей в блоке к максимально допустимому оставалось постоянным (например 80%) Допустимо применять блоки переполнения, но их число, отнесенное к общему числу сегментов должно быть существенно меньше единицы Количество битов, используемых для нумерации элементов массива сегментов (i) составляет log 2 n. Биты выбираются из младших разрядов двоичного представления числа, возвращаемого хеш-функцией (h(K)) Выбор сегмента для размещения ссылки на запись с ключом K осуществляется следующим образом: если число m образуемое младшими i битами h(K) < n, то запись кладется в сегмент с соответствующим номером. Иначе в двоичном представлении числа m заменяем старшие биты на 0 до тех пор, пока это условие не выполнится. Полученное в результате число и есть номер сегмента, куда надо распределить запись.

Примеры i = 1; n = 2; r = 3 i = 2; n = 3; r =

Примеры i = 2; n = 3; r = 5 i = 1; n = 2; r =

Примеры i = 2; n = 3; r = i = 2; n = 4; r = Блок переполнения