Cтраница 1
![]() |
Структура базы аналитических данных.| Наиболее важная информация об. [1] |
Индексные файлы служат для доступа к другим данным или файлам. [2]
Индексные файлы в отличие от dBASE III объединяются в один множественный индексный файл, связанный с соответствующим файлом БД. Этот файл открывается автоматически при открытии связанного с ним файла БД, а переход на различные индексы ( называемые указателями индексов в множественном индексном файле) осуществляется без повторного открытия и закрытия неиспользуемых индексов, что ускоряет процесс обработки данных. Всего может быть создано 47 указателей индексов в одном множественном индексном файле. [3]
Индексные файлы шифруются в том случае, если они созданы вместе с зашифрованными файлами или при выполнении команды REINDEX с этими файлами. При выполнении команды PROTECT по умолчанию устанавливается команда SET ENCRYPTION ON и копии файлов также шифруются. При установке SET ENCRYPTION OFF копии не шифруются. [4]
Индексные файлы и поля ( файлы) Memo записываются на диск блоками фиксированной длины. Длина блока определяет скорость манипуляции этими данными. При увеличении блоков имеется тенденция к ускорению обработки их содержимого и одновременно замедлению процесса ввода-вывода. При уменьшении размера блока, наоборот, замедляется обработка содержимого, но в то же время ускоряется ввод-вывод. По умолчанию длина блока равна 512 байт. [5]
Индексный файл, указанный в опции ORDER, устанавливается как главный или управляющий индекс. Если открыт только один индексный файл, то он автоматически будет главным. В этом случае опция ORDER не требуется. [6]
Индексный файл описывается специальными фразами в статье SELECT и в соответствующей статье-описания-записи. Статья-описания-записи содержит данное, которое будет использоваться в качестве ключа для доступа к записи. Именно в это данное должны помещаться значения ключа перед тем, как сможет быть выполнен оператор ввода-вывода, обращающийся к индексному файлу. [7]
Индексный файл создается в режиме последовательного доступа, будучи открыт как выходной. После его создания наиболее удобным методом доступа для его обработки является произвольный доступ, а лучшим - способом открытия является открытие его как входного-выходного. Это позволяет удалять из него записи, обновлять их и добавлять в файл новые записи с помощью оператора WRITE. Можно выбирать вторичные ключи для определения положения записи дополнительными путями, но основной ключ в каждой записи всегда должен быть уникален. [8]
Индексный файл создается таким образом, что база данных является отсортированной по ключу для последующих операций. Сама же база данных физически не изменяется. Сортировка осуществляется обычно в порядке возрастания, хотя возможна сортировка и по убыванию. [9]
Индексный файл может быть создан только последовательно, причем записи должны подаваться в возрастающей последовательности значений ключа, указанного во фразе КЛЮЧ ЗАПИСИ. [10]
Однако индексные файлы в системе Clipper имеют иную, более эффективную организацию, что наряду с компиляцией способствует существенному повышению производительности программ на стадии исполнения. В ранних версиях индексные файлы dBaselll PLUS подменялись файлами системы Clipper аналогичного назначения автоматически на стадии исполнения либо заблаговременно с помощью специальной утилиты. [11]
Для индексных файлов R0 может содержать адрес, куда можно поместить запись в случае переполнения дорожки. Этот случай рассматривается в разд. [12]
Длина индексного файла S является функцией общего объема диска и должна быть такой, чтобы не ограничивать число файлов. Например, для накопителей СМ-5400, у которых общее число блоков на-одном диске 4800, длина индексного файла - 85 блоков, что позволяет разместить до 85 X 8 600 файлов. При этом средняя длина одного файла равна ( 4800 - 85 - 2) / 600 8 блокам. [13]
В индексных файлах могут также храниться частоты терминов и документов. [14]
Несложно разделить индексный файл на 10 меньших файлов, по одному на каждую начальную цифру. Учитывая, что кодовое значение начинается с цифры 7, мы будем хранить число 541 в седьмом файле. Размер файла безусловно, уменьшится, так как мы экономим по одной цифре для каждого кодового обозначения. Но надо добавить обозначение файла и указатель, в результате выигрыш получается иллюзорным. Настоящий выигрыш связан с повышением быстродействия поиска. Не надо тратить время на просмотр других девяти файлов, сокращается число операций доступа к диску, уменьшается на 25 % длина кода, меньше цифр приходится сравнивать при поиске. [15]