Скачиваний:
39
Добавлен:
02.05.2014
Размер:
30.72 Кб
Скачать

Индексные файлы

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

Этот механизм обычно реализуется введением так называемых индексных файлов (индексов). Они имеют расширение имени NDX.

Если файл проиндексирован, команды DISPLAY, BROWSE, SKIP, REPLACE и все другие команды, связанные с движением в файле базы данных, перемещают указатель записей в соответствии с индексом, а не с физическим порядком расположения записей.

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

Индексирование осуществляется командой

INDEX ON

Для создания индексного файла, использующего в качестве ключа содержимое поля NAME, вводится команда

INDEX ON NAME TO NAMIDX

Эта команда создает файл по имени NAMIDX.NDX, добавляя автоматически расширение NDX к имени, указанному в команде. Файл NAMIDX содержит указатели на записи файла EMPLOY, причем эти указатели следуют друг за другом в алфавитном порядке фамилий, расположенных в полях NAME.

При работе с индексными файлами используются команды FIND и SEEK. Их функции взаимно перекрываются.

Первая команда FIND обычно применяется при работе со строками символов, команда SEEK – при работе с числовыми литералами, датами и временными переменными.

FIND F и SEEK ‘F’

DISPLAY NAME DISPLAY NAME

– эквивалентны.

Для нахождения в файле первой записи, содержимое поля NAME которой начинается буквой R, используется команда

FIND R или SEEK ‘R’

С помощью команды LIST NAME воспроизводятся записи в алфавитном порядке.

Если теперь создать дополнительный индексный файл DPTIDX командой

INDEX ON DEPT TO DPTIDX

то после ввода команды

LIST NAME, DEPT

Записи будут воспроизводиться в порядке возрастания значения содержимого поля DEPT, а не поля NAME, так как при создании индексного файла DPTIDX файл NAMIDX был закрыт.

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

USE EMPLOY INDEX NAMIDX

Для определения того, какой индексный файл открыт в настоящий момент, используется команда

LIST STATUS

Индексирование файла данных можно также выполнять, используя в качестве ключа числовое поле записи.

INDEX ON ANN_SAL TO SALIDX

SET HEADING ON

LIST NAME, ANN_SAL

Записи воспроизводятся на экране в порядке возрастания значения числового поля ANN_SAL. Если требуется воспроизвести первую запись, содержимое числового поля ANN_SAL которой равно 15000000, то это выполняется так:

SEEK 15000000

DISPLAY NAME, ANN_SAL

dBASE позволяет одновременно держать открытыми до семи индексных файлов.

По команде CLOSE INDEX все открытые индексные файлы закрываются. Файл данных EMPLOY все еще остается открытым, и записи можно извлекать в порядке их следования в файле данных.

По команде CLOSE DATABASES закрываются все открытые файлы данных и все открытые индексные файлы.

Сортировка

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

Реорганизованные записи помещаются в специально создаваемый для этой цели файл данных.

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

Для сортировки файла EMPLOY в порядке убывания значений содержимого поля HIRE_DATE (запись о служащем, принятым на работу первым, будет в начале списка) нужно выполнить команды:

USE EMPLOY

SORT TO HEMPLOY ON HIRE_DATE /D

Здесь HEMPLOY – имя файла, создаваемого командой SORT. По умолчанию, к нему добавляется расширение DBF. Необязательный для употребления, но используемый в команде SORT, параметр /D указывает на необходимость сортировки в порядке убывания содержимого поля HIRE_DATE. Если требуется сортировка в порядке возрастания указанных значений, то этот параметр указывать не нужно.

Команды

USE HEMPLOY

LIST NAME, HIRE_DATE

воспроизведут записи в порядке очередности приема служащих на работу.

Для получения подробной информации о служащих с упорядочением в пределах каждого отдела нужно выполнить команды:

USE

ERASE HEMPLOY.DBF

USE EMPLOY

SORT TO HEMPLOY ON DEPT, HIRE_DATE

USE HEMPLOY

LIST DEPT, NAME, HIRE_DATE

Соседние файлы в папке Лекции по информационным технологиям