Прискорений пошук.
SEEK<вир>- прискорений пошук.
Спочатку пошук ведеться в індексі, що дозволяє швидко локалізувати номер потрібного запису. Після цього покажчик записів установлюється на шуканий запис в основної
базі даних.
USE kadr INDEX kadrtab
SEEK 234
DISPLAY tab, fam
Для індексованих баз існує модифікація функції вказівки номеру запису з аргументом нуль - RECNO(0), що у випадку невдалого пошуку повертає номер запису, який має найближче наступне значення до ключа пошуку, заданому в команді SEEK. Установка SET NEAR ON - не в кінець інд файлу, а на потрібний запис.
Аналогічний результат дає використання команди BROWSE з FOR умовою.
Приклад :
USE kadr
INDEX ON det TO kadrdet COMPACT
IF SEEK(3)
LIST fam. det WHILE det=3
ENDIF
Індексний ключ може бути складним (+). При цьому поля повинні мати один тип (або повинні бути приведеними до того самого типу )
USE kadr
INDEX ON pol+fam TO polram COMPACT
LIST pol, fam
3 ж Кулакова
5 ж Романова
6 м Миронов
4 м Попов
2 м Потапов
1 м Сидоров
7 м Яковлев
По команді SEEK знаходиться перший запис. Наступна в індексі запис знаходиться безпосередньо за нею.
COPY INDEXES <IDX.файли> TO <CDX.файл > - команда копіює всі перераховані через кому IDX.файли, які відкриті, в структурний або мультиіндексный CDX.файл. Кожен такий файл стає тегом у CDX.файлі з тим же ім'ям, що і IDX.файл. Якщо CDX.файлу немає, тоді він створюється.
COPY TAG <ім'я тега> OF <CDX.файлу> TO <IDX.файл > - команда створює IDX.файл із пойменованого тега, який знаходиться в зазначеному CDX.файлі. Файл повинний бути відкритим.
Наступна функція видає повне ім'я індексного файлу, відкритого в поточній або зазначеній робочій області:
NDX(<вырN>, <область>), де выр – номер файлу в команді відкриття. Оскільки це функція, її значення повинне бути привласнене якийсь перемінної.
Функція CDX (<вырN>, <область>) повертає ім'я відкритого CDX.файлу.
Еще раз самое главное:
COPY INDEXES <IDX.файлы> TO <CDX.файл > - команда копирует все перечисленные через запятую открытые IDX.файлы в структурный или мультииндексный CDX.файл. Каждый такой файл становится тегом в CDX.файле с тем же именем, что и IDX.файл. Если CDX.файла нет, то он создается.
COPY TAG <имя тега> OF <CDX.файла> TO <IDX.файл > - команда создает IDX.файл из поименованного тега, находящегося в указанном CDX.файле. Файл должен быть открыт.
Следующая функция выдает полное имя индексного файла, открытого в текущей или указанной рабочей области:
SET INDEX <список інд ф> ORDER TAG <ім'я тега> OF <CDX-файл> - команда открывает все индекы из мультииндексного файла и назначает главный индекс.
ІІ. Порядок виконання роботи
-
Вивчити теоретичний матеріал.
-
Відповісти на запитання.
-
Виконати задачу відповідно до свого номера варіанта.
-
Скласти звіт, в якому викласти коротко теоретичний матеріал, дати відповіді на запитання, показати розв,язок задачі.
ІІІ. Індивідуальні завдання
Для створеного в лабораторній роботі №2 файлу створити індексний файл і мультііндексний файл. Ключі вибирати відповідно логіці бази даних. Зробити послідовний і швидкий пошук. Використовувати фільтри. За допомогою головного меню додасть в індексний файл індекс, переіндексувати файл даних, відсортувати файл даних по зростанню і по убуванню.
ІV. Контрольні запитання
-
Опишіть формат і принцип дії команди SORT.
-
Що таке фільтрація даних і як вона виконується?
-
Чим індексний файл відрізняється від файлу, отриманого в результаті сортування?
-
Що таке швидкий пошук і як він виробляється?
-
Що таке мультиіндексний файл?
-
Що таке головний індекс?
-
Як змінити головний індекс?