- •Лабораторная работа №6
- •5.1 Индексация
- •Создание индексов
- •Просмотр индексов с помощью набора команд в командном окне:
- •Вставка/удаление индексов интерактивным способом:
- •Пример использования индексов для ограничения целостности на уровне поля
- •Действия со свободными таблицами
- •5.2 Создание индексов в мультииндексных файлах
- •Создание индексов интерактивным способом Процедура indexes
- •Процедура index_vozm
- •Процедура candidatе
- •Процедура index_detl_proek_poski
- •Создание индексов командным способом Процедура индексации по разным типам данных
- •Процедура Vozm_poshk
- •Процедура Тype_index
- •Процедура dopoln_index
Лабораторная работа №6
5.1 Индексация
Индексация ТБД
Создание индексов
В ДО Table Designer выбрать вкладку Index (как показано на рис.5.1). В зоне Name рабочей области ввести имя индексного файла (например, nomp_i). В зоне Type – тип индекса (например, Primery). В зоне Expression вводится имя поля, по которому будет проиндексирована таблица (например, nomp).
Перейдите
на вкладку
Зона
Name
Зона
Type
Зона
Expression
Рис.5.1 Создание простых индексов
Аналогично создаются индексные файлы:
Stat_i (по полю stat, тип индекса Regular);
Stat_il (по полю stat, фильтр stat>10, тип индекса Regular);
Gf_i (по полям gord+famp, тип индекса Regular);
Gf_in (по полю gord, тип индекса Regular);
Gf_in1 (по полям famp+gord, тип индекса Regular)
При индексации таблиц по нескольким полям (разных типов!), нужно:
Войти в построитель выражений Expression Builder с помощью кнопки с тремя точками, расположенной справа от поля Expression и возникающей после набора первого символа в поле Name (как показано на рис.5.2)
Рис.5.2 Кнопка для входа в ДО Expression Builder
При помощи функций построителя надо преобразовать поля к одному типу. Например, поле типа “Date” можно преобразовать к типу “Character” при помощи функции dtoc(expD) (ее можно найти в раскрывающемся списке строк функции Date, как показано на рис.5.3). Тип “Character” можно также преобразовать в тип “Date” при помощи функции ctod(expC) (ее также можно найти в раскрывающемся списке строк функции Date). Тип “Numeric” можно преобразовать в тип “Character” при помощи функции Str(expN) (ее можно найти в раскрывающемся списке строк функции String). Тип “Character” также можно преобразовать в тип “Numeric” при помощи функции Val(expC) (ее можно найти в раскрывающемся списке строк функции Math). В скобках вместо exp… нужно указать имя поля, которое преобразуется к другому типу (для этого надо дважды щелкнуть по имени поля в области Fields).
Рис.5.3 ДО Expression Builder
Набор команд в командном окне для создания индекса:
Alter table <имя таблицы> add <тип индекса> key <имя поля> TAG <имя тэга>
Просмотр индексов с помощью набора команд в командном окне:
use <имя таблицы> order <имя индекса>
list
set order to <номер индекса>
list
Вставка/удаление индексов интерактивным способом:
Вызвать ДО Table Designer
Выбрать вкладку Index
Нажать клавишу Insert для вставки нового индекса в уже имеющийся список индексов, либо выбрать ненужный индекс и удалить его нажатием на клавишу Delete.
Набор команд в командном окне:
Delete TAG <имя тэга>
Пример использования индексов для ограничения целостности на уровне поля
1. Установить индекс по полю nomp.
2. Осуществить попытку ввода в файл poshk записи со значением первичного ключа в диапазоне П1 - П5. Не удается ввести
не уникальный индекс, т.к. после индексации таблицы происходит анализ на уникальность ключа.
Внимание! При копировании таблиц индексы не копируются!