ВУЗ: Томский государственный университет систем управления и радиоэлектроники
Категория: Учебное пособие
Дисциплина: Базы данных
Добавлен: 28.11.2018
Просмотров: 3110
Скачиваний: 9
16
Для одного основного файла может быть создано много индексных,
и в зависимости от того, какой индексный файл в текущий момент времени
открыт вместе с основным и объявлен главным, и будет осуществляться
порядок доступа к записям основного файла.
Для объявления индексного файла главным необходимо в окне уста-
новки (рис. 4.11) (инициализируется после выбора опции Setup пункта
DATABASE главного меню) выбрать <Set Order> и в появившемся списке
индексных файлов выбрать необходимый. Для снятия главного индекса —
повторить его выбор.
Индексный файл может быть создан путем переработки основного
файла либо динамически модифицироваться, если в поля основного файла,
используемые для индексирования, вносятся изменения или в основной
файл добавляются новые записи. Для обеспечения такой автоматической
модификации индексного файла он должен быть открыт во время коррек-
ции соответствующего основного. Таким образом, одновременно может
быть открыто до 21 индексного файла для одного основного (dbf) файла,
но только один из них (специально помеченный в текущий момент как
order) определяет порядок доступа к записям основного файла.
Рис. 4.11 — Окно установки индексов
ОТКРЫТИЕ ИДЕКСНОГО ФАЙЛА осуществляется либо путем вы-
бора Index в списке типов файлов, появляющеся при выборе опции OPEN
вертикального меню File, либо при выборе опции Add в окне диалога по
установке параметров текущей рабочей области, появляющемся при выбо-
ре опции Set up вертикального меню Database (рис. 4.11). В обоих случаях
появляется окно открытия индексных файлов (рис. 4.12).
17
Рис. 4.12 — Окно открытие индексных файлов
Процедура открытия состоит в выборе индексного файла в списке
индексных файлов, созданных для открытого dbf-файла. Возможно, при-
дется «искать» индексные файлы по дискам (Drive) и директориям
(Directory), хотя не рекомендуется хранить dbf-файлы и созданные для них
индексные файлы в разных директориях и, тем более, дисках.
Если необходимо открыть несколько файлов, то процедура повторяется.
Активизируя переключатель All Files, можно открыть все индексные фай-
лы сразу.
4.1.9 СОЗДАНИЕ ИДЕКСНОГО ФАЙЛА
В окне-списке появляются лишь индексные файлы, созданные ранее
для открытого dbf-файла, если список пуст (как, например, на рис. 4.11),
это значит индексные файлы для соответствующего dbf-файла еще не соз-
даны, а выбирая опцию Open, можно перейти к окну диалога по созданию
индексного файла.
Необходимо вначале открыть dbf-файл, для которого будет созда-
ваться индексный (опция Open, выбор типа файла — Database, выбор-
поиск файла на диске и в дирректории), а затем либо выбрать опцию New,
затем Index, либо выбрать Set up, затем активизировать переключатель
<Add> в Index и далее аналогичный диалог — New и Index.
Появляется окно диалога «Index on» (рис. 4.13), в котором необхо-
димо либо ввести с клавиатуры индексное выражение (состав индексного
ключа, в том числе используя возможность выбора имен полей из списка и
их переноса в формируемое выражение), либо, активизировав переключа-
тель <Expr>, перейти в окно построителя выражения, общая схема которо-
го была рассмотрена ранее и иллюстрируется на рис. 4.14, 4.15, при акти-
визации переключателя <Expr> и с использованием меню построителя
(рис. 4.16).
18
Рис. 4.13 — Окно диалога Index on
Рис. 4.14 — Окно построителя выражения
Следует заметить, что в подавляющем большинстве случаев выра-
жение имеет тип String (символьный) и заключается в соединении (опера-
ция + или — над строковыми переменными) значений полей сортировки в
единый ключ.
Использование данных не символьного типа требует использования
функций по их преобразованию к символьному виду.
19
\
Рис. 4.15 — Диалог формирования индекса
Рис. 4.16 — Меню построителя выражений
Применение выражения арифметического (Math) типа предусматри-
вает упорядочение по физическим номерам записей, что имеет весьма ог-
раниченное применение. Столь же экзотической является и возможность
включения в выражения переменных Variables и оператора <For>.
При активизированном переключателе Unigue записи основного
файла базы данных (*.dbf) с одинаковыми значениями ключа будут иметь
в индексном файле только ссылку на первую запись с таким же значением.
20
Если сформированное индексное выражение удовлетворяет пользо-
вателя, он должен выбрать кнопку <<OK>>, если желает отменить резуль-
таты всех действий — кнопку <Cancel>.
МОДИФИКАЦИЯ ИДЕКСНОГО КЛЮЧА (ВЫРАЖЕНИЯ) для уже
созданного индексного файла возможна после выбора переключателя
<Modify> в окне установки (после Set up) (рис. 4.11). Появляется диалог
формирования индекса (рис. 4.15). Необходимо внести изменения в ин-
дексное выражение, приведенное в текстовом блоке, либо удалить выра-
жение и создать новое.
Задание
№
1
лабораторной
работы
№
1
1.
Внимательно изучить указания.
2.
Выбрать вариант (предметную область) по общим правилам, проанализи-
ровать предлагаемую структуру таблиц, требуемые индексы и запросы.
3.
Создать структуру таблиц, придерживаясь следующих требований:
•
Типы полей следует выбирать в соответствии с семантикой (смыслом)
данных, а не типами, устанавливаемыми системой по умолчанию.
•
Имена файлов БД и полей файла БД не должны представлять собой
неудобочитаемые и непонятные идентификаторы.
•
Имена файлов БД и полей файла БД по возможности должны пред-
ставлять собой англоязычные эквиваленты соответствующих рус-
скоязычных понятий.
•
Максимальную длину полей выбирать в соответствии с допустимы-
ми значениями полей заданной предметной области, а не значения-
ми, устанавливаемыми системой по умолчанию.
4.
Заполнить файлы БД данными, придерживаясь следующих требований
•
Количество записей в родительской таблице — не менее 15, дочер-
ней — не менее 30.
•
Конкретные значения полей должны быть максимально приближены
к реальным. Для этого можно привлекать открытые источники. До-
пускается программное генерирование значений полей (например,
ID, Номер паспорта, Сумма и т.д.) или конвертация данных из внеш-
них файлов с аналогичной структурой. Фривольного содержания не
допускать.
•
Каждой строке родительской таблицы должно соответствовать 0, 1
или более строк дочерней.
•
Содержание данных должно гарантированно обеспечивать положи-
тельный результат каждого запроса при определенных значениях
критерия поиска.
5.
Создать индексный файл CDX для заданного в варианте набора условий
индексов. Каждый простой индекс внутри CDX обозначить тегом (для
последующего обращения к нему).