Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД_шпоры_1.docx
Скачиваний:
92
Добавлен:
09.02.2015
Размер:
189.5 Кб
Скачать

53.Инвертированный файл.

Инвертированный файл - в информационных технологиях рассматривается как структурированная индексная информация, в которой хранятся данные о местонахождении каждого элемента контента во всех местах, к примеру, слова или числа, и их расположение в документе или базе данных. Инвертированный файл позволяет осуществлять эффективный поиск нужного элемента данных поисковой системой. Инверсный файл является наиболее распространенной структурой данных, применимых в системах поиска документов и информации.

Широко распространены на практике методы многоаспекторного поиска по инвертированным файлам. Пусть имеется основной файл F, упорядоченный либо не упорядоченный по значениям вторичного ключа Ki. Построим дополнительный файл Fdiпо правилу:1)записи файла FDi имеют формат Fdi(Ki,P), где Ki-поле, принимающее значение вторичного ключа Ki записиосновного файла; P- указатели на записи основного файла f, имеющие данное значение вторичного ключа Ki; 2)записи файла Fdi упорядочены по полю Ki.

Построенный дополнительный файл Fdi называется инвертированным. В этом случае об основном файле F говорят, что он инвертирован по полю Ki. Количество записей в инвертированном файле FDi определяется количеством значений вторичного ключа Ki в записях основного файла F. Пример инвертированного файла по полю K2 для основного файла F.

Рассмотренный способ организации инвертированного файла предполагает использование записей переменной длины. Инвертированный файл можно оргнанизовать и с помощью записей фиксированной длины, если в каждой записи инвертированного файла выделять фиксированное число полей для указателей P. Если фиксированного числа полей для некоторых записей окажется недостаточно, то организуется еще дополнительный служебный файл для хранения неуместившихся цепочек указателей.

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

89. Плотный индекс. Технология поиска записей базы данных в основном файле внешней памяти с использованием плотного индекса.

Рассмотрим файлы с плотным индексом. В этих файлах основная область содержит последовательность записей одинаковой длины, расположенных в произвольном порядке, а структура индексной записи в них имеет следующий вид:

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

Номер записи

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

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

Длина доступа к произвольной записи оценивается не в абсолютных значениях, а в количестве обращений к устройству внешней памяти, которым обычно является диск. Именно обращение к диску является наиболее длительной операцией по сравнению со всеми обработками в оперативной памяти.

Наиболее эффективным алгоритмом поиска на упорядоченном массиве является логарифмический, или бинарный, поиск. При этом все пространство поиска разбивается пополам, и так как оно строго упорядочено, то определяется сначала, не является ли элемент искомым, а если нет, то в какой половине его надо искать. Следующим шагом мы определенную половину также делим пополам и производим аналогичные сравнения, и т. д., пока не обнаружим искомый элемент. Максимальное количество шагов поиска определяется двоичным логарифмом от общего числа элементов в искомом пространстве поиска:

Tn = log2N,

где N — число элементов.

Однако в нашем случае является существенным только число обращений к диску при поиске записи по заданному значению первичного ключа. Поиск происходит в индексной области, где применяется двоичный алгоритм поиска индексной записи, а потом путем прямой адресации мы обращаемся к основной области уже по конкретному номеру записи. Для того чтобы оценить максимальное время доступа, нам надо определить количество обращений к диску для поиска произвольной записи.

На диске записи файлов хранятся в блоках. Размер блока определяется физическими особенностями дискового контроллера и операционной системой. В одном блоке могут размещаться несколько записей. Поэтому нам надо определить количество индексных блоков, которое потребуется для размещения всех требуемых индексных записей, а потому максимальное число обращений к диску будет равно двоичному логарифму от заданного числа блоков плюс единица. Зачем нужна единица? После поиска номера записи в индексной области мы должны еще обратиться к основной области файла. Поэтому формула для вычисления максимального времени доступа в количестве обращений к диску выглядит следующим образом:

Tn = log2Nбл. инд. + 1.

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