Cтраница 3
В комплексе сведений находятся сведения в виде сегментов сведений и ссылки между ними. К комплексу управления относятся файлы описаний ввода и вывода, комплекс файлов описания фонда, комплекс файлов тезауруса, файл индексов вывода, инверсный файл и такие вспомогательные файлы, как файл единиц измерения и валютных единиц. [31]
Нетрудно доказать следующее утверждение. Если известно предполагаемое распределение значений ключа, то можно ожидать, что будет рассмотрено около 1 - flog a Iog2 n блоков файла индекса. [32]
![]() |
Пример атрибутного индекса. [33] |
Поиск по атрибутному индексу выполняется быстрее, чем по инвертированному матричному индексу, но имеет значительно меньше поисковых возможностей. Однако атрибутный индекс позволяет находить информацию, не являющуюся составной частью текста документа. Кроме того, файлы атрибутных индексов значительно меньше по размеру файлов инвертированных матричных индексов с полным текстом, поскольку в этом случае с каждым документом связано гораздо меньше хранимой информации. [34]
Если блок Bi i не существует, поскольку i k, или существует, но полон, необходимо получить новый блок, который будет следовать по порядку за Bt. Поместим лишнюю запись из Bt в новый блок. Включим далее запись в файл индекса для нового блока, используя ту же стратегию, что и для включения записи в главный файл. [35]
По этой причине с помощью индекса находим запись бронтозавра и удаляем ее из второго блока файла динозавров. После этого модифицируем запись в файле индекса для блока 2 файла динозавров, изменяя значение ее ключа Бронтозавр на Компсогнат. Заметим, что, хотя поле ключа изменилось, порядок этой записи не изменился, и осуществлять удаление и включение в файле индекса не требуется. [36]
Допустим, что в файл добавляется запись об эласмозавре. В результате просмотра файла индекса, например, с помощью линейного поиска выясняем, что значение ключа Эласмозавр покрывается значением Диплодок. Следуя по указателю в записи диплодока в файле индекса, приходим в третий блок файла динозавров. [37]
Поскольку записи индекса не закреплены, будем предполагать, что все заполненные субблоки находятся левее свободных в любом блоке. На рис. 2.10 значения ключа являются целыми числами. Они заполнены в первоначальном файле, а также в файлах индекса, насколько это было возможно сделать. [38]
Существует, однако, важное различие между файлами индекса и обсуждаемыми обычными файлами. Вероятно, кроме выполнения операции включения, удаления и модификации над файлами индекса, нам потребуется получать ответы на запросы следующего вида: при заданном значении ключа D. Таким способом мы находим блок Ь главного файла, содержащий запись со значением ключа vlt поскольку файл индекса с гарантией является сортированным. [39]
Чтобы найти, модифицировать или удалить некоторую запись главного файла, нужно осуществить сначала поиск в файле плотного индекса, который указывает блок главного файла, гдд - находится требуемая запись. Далее следует читать этот блок главного файла и пере. Таким образом, выполняются еще два доступа к блокам в дополнение к доступам, необходимым для поиска в файле плотного индекса. [40]
Поэтому чтобы избежать копирования всех магнитных лент а файлом сведений и обеспечить логически возрастающую последовательность номеров, все сведения вносятся в так называемый файл переполнения, расположенный на магнитный дисках. Сведения в этом файле запоминаются последовательно. В файле индексов автоматически производятся соответствующие изменения. [41]
По этой причине с помощью индекса находим запись бронтозавра и удаляем ее из второго блока файла динозавров. После этого модифицируем запись в файле индекса для блока 2 файла динозавров, изменяя значение ее ключа Бронтозавр на Компсогнат. Заметим, что, хотя поле ключа изменилось, порядок этой записи не изменился, и осуществлять удаление и включение в файле индекса не требуется. [42]
С целью включения записи со значением ключа vt применим процедуру поиска, чтобы найти блок Bt, в котором должна была бы находиться такая запись. Поместим новую запись в подходящее для нее место в блоке BI, сохранив сортированный порядок и переместив вправо записи со значениями ключа, большими, чем vlt чтобы освободить место для новой записи. При наличии в блоке Bt по крайней мере одного свободного субблока в него поместятся все записи. Если v1 предшествует значению ключа и2 первой записи BI ( это может иметь место лишь при i 1), необходимо модифицировать статью файла индекса для блока Bit используя только что описанную процедуру модификации. [43]
При этом вы можете использовать данные этой таблицы в собственных запросах. Если внешняя таблица содержит файл индексов, то укажите его название при необходимости. Если файла индексов не существует, щелкните на кнопке Отмена. [44]
Чтобы найти, модифицировать или удалить некоторую запись главного файла, нужно осуществить сначала поиск в файле плотного индекса, который указывает блок главного файла, гдд - находится требуемая запись. Далее следует читать этот блок главного файла и пере. Таким образом, выполняются еще два доступа к блокам в дополнение к доступам, необходимым для поиска в файле плотного индекса. При включении запись помещается в конец главного файла, а указатель на нее - в файл плотного индекса. Эта операция вновь требует на два доступа больше, чем операция над файлом плотного индекса. [45]