Мегаобучалка Главная | О нас | Обратная связь


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



2019-12-29 180 Обсуждений (0)
Индексирование выполняется следующей командой 0.00 из 5.00 0 оценок




INDEX ON <выражение> TO <IDX-файл> [COMPACT] [ADDITIVE]

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

Индексированная база из текущей создается :

USE BD1

INDEX ON AVT TO BD2 - из базы BD1 создана индексированная  по фамилиям база BD2 с расширением .IDX

Можно сделать ограниченную индексацию

INDEX ON AVT TO BD3 FOR STEL=112

После создания индексированной базой можно пользоваться след.  образом: при открытии базы:

USE BD1 INDEX BD2 или

USE BD1

SET INDEX TO BD2

При корректировке записей БД индексированные файлы автоматически  изменяются, поэтому при активизации БД нужно указывать все  имеющиеся уже созданные индексированные файлы:

SET INDEX TO BD2,BD3 и т.д. сколько есть файлов .IDX

Отмена индексации: SET INDEX TO или SET ORDER TO 0                  

  Активным является только первый из указанных индексов.  По нему индексируется база. Переключиться на другой индекс можно  командой SET ORDER TO N - где N порядковый номер индексированного  файла в последнем списке (SET INDEX TO ...). Можно сделать  иначе - заново задать команду SET INDEX TO ... где нужный индекс  должен быть у первого в списке индексного файла.        

  В индексированном файле быстрый поиск нужной записи может  осуществляться командой

SEEK 'Попов' для строкового поля

  SEEK 25 для числового

  SEEK D где D=ctod('22.03.94') для даты

  После каждой команды SEEK нужно дать команду DISPLAY для  индикации результатов поиска. Пример.

USE BD

INDEX ON AVT TO BD1

INDEX ON VOZVR TO BD2

INDEX ON GOD TO BD3

USE BD INDEX BD1

SEEK ‘Попов’, DISPLAY

USE BD INDEX BD2, D=CTOD(‘22.03.94’),  SEEK D, DISPLAY

USE BD INDEX BD3, SEEK 1992, DISPLAY

Если все индексные файлы не были перечислены при открытии базы,  а она была изменена, нужно произвести переиндексацию командой

REINDEX предварительно задав командой SET INDEX TO ...

все индексные файлы, подлежащие переиндексации.

    Команда SEEK <выражение> применяет специальный алгоритм ускоренного поиска, в котором база просматривается не сплошь, а в  соответствии с информацией, содержащейся в индексном файле.

  При наличии индекса сначала именно в нем, а не в самой базе  ведется поиск номера записи с указанным в команде SEEK значением  выражения в индексном поле. При этом поиск в индексе выполняется  не последовательно, а скачками (т.н. двоичный поиск), что позволяет быстро локализовать номер нужной записи. Команда SEEK находит  только одну первую запись и устанавливает на нее указатель записи.

  Сочетанием команды SEEK с командой SET NEAR ON может быть осуществлен приближенный поиск, если точное значение искомого признака  неизвестно. Пример.

USE BD, INDEX ON GOD TO BD1 COMPACT, SET NEAR ON, SEEK 1980,

BROWSE

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

  Команда SEEK является аналогом команды LOCATE для последовательного  поиска. Однако команде продолжения поиска CONTINUE нет индексного  аналога. Причина здесь очевидна. После того как командой SEEK  найдена первая нужная запись, розыск остальных записей, удовлетворяющих ключу поиска, является тривиальным. Следующая такая запись  (если есть) находится в индексированном файле непосредственно  ниже найденной, и переход на нее может быть выполнен просто  командой SKIP.

 

 

3. Задание на лабораторную работу.

В программной системе FoxPro.

              

1.Создать файл базы данных (БД)

(Create ...)

2.Посмотреть описание структуры БД

(Use, List structure) Пояснить содержание выдаваемой информации

3.Посмотреть на экране все записи БД

(List)

Посмотреть записи, удовлетворяющие заданному условию

(List... for ...)

Посмотреть содержимое выбранных полей для всех записей БД

(List fields...)

Посмотреть содержимое выбранных полей, удовлетворяющих заданному условию (List fields...for...)

Условия задать для символьного, числового и поля типа «дата»

Для полей типа «дата» предварительно задать

Set date german; D=CTOD(‘дата’);

List fields ...for D...)

Осуществить просмотр выбранных полей с приближенным условием (List fields for like ...)

Командой Display посмотреть содержимое с выбранным номером

5.Осуществить последовательный поиск и просмотр первой и последующих записей                     

(Locate for ...);

Display;

(Locate rest for...);

Display

6.Сделать архивную копию БД

(Copy to ...)

Добавить запись в конец активизированной рабочей БД

(Append)

8.Посмотреть добавленную запись

(Go bottom; Display)

9.Пометить для удаления последнюю запись и третью

(Delete; go 3; Delete)

10.Посмотреть все записи БД (Display all)

Обратить внимание на третью и последнюю записи.

Сравнить варианты: Set deleted on; Display all

Set deleted off;Display all



2019-12-29 180 Обсуждений (0)
Индексирование выполняется следующей командой 0.00 из 5.00 0 оценок









Обсуждение в статье: Индексирование выполняется следующей командой

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

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



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (180)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.008 сек.)