Определение индексов и ссылочной целостности
Для продолжения работы следует создать таблицу, содержащую данные об оценках студентов. Структура этой таблицы показана в табл. 3.2. Помимо информативных полей таблица содержит автоинкрементное поле, которое будет использоваться в качестве ключа.
Таблица 3.2. Таблица «Оценки»
Field Name |
Type |
Size |
Key |
Примечание |
AUTO |
+ |
|
* |
Автоинкрементное поле |
STUDENT |
A |
30 |
|
Поле типа Alfa |
EXAM |
A |
30 |
|
Поле типа Alfa |
GRADE |
S |
|
|
Поле типа Short |
DATAEXAM |
D |
|
|
Поле типа Data |
Для поля Grade, в котором будут храниться оценки, необходимо задать определенные ограничения. Следует выбрать параметр Required Field, для параметра Minimum Value установить значение, равное трем, а для Maximum Value — пяти.
Созданную таблицу нужно сохранить под именем GradeTab. В ней также потребуется создать индекс по полям STUDENT, GROUP и GRADE. Для этого в списке Table properties необходимо выбрать значение Secondary Indexes и нажать кнопку Define.
В результате будет активировано окно, показанное на рис. 3.6.

Рис. 3-6. Создание индекса.
Вторичный индекс может обладать дополнительными возможностями и ограничениями, которые налагаются на него при помощи флажков в диалоговом окне:
- Параметр Unique обязывает все значения, входящие в состав индекса, быть
уникальными.
- Case sensitive указывает, что индекс будет учитывать регистр символов.
- Параметр Maintained указывает, что индекс будет обновляться каждый раз, когда будет производиться модификация набора данных. Если этот флажок не установлен, индекс обновляется только при непосредственной работе с ним.
- Параметр Descending задает обратное направление сортировки значений, входящих в индекс. Если флажок не установлен, то сортировка производится в прямом направлении.
Созданный индекс нужно сохранить. Следует нажать кнопку ОК и ввести имя
индекса Somelndex. Впоследствии этот индекс можно изменить. Для этого
необходимо выбрать его в списке и нажать кнопку Modify.
Теперь нужно определить ссылочную целостность. Таблицы Students и GradeTab находятся в отношении «один-ко-многим». Один студент может сдать несколько экзаменов на разные оценки. Теперь эту связь надо жестко прописать в проекте.
Нужно открыть таблицу GradeTab и выбрать пункт меню Table > Restructure.
Таблица откроется для внесения изменений. В списке Table properties нужно выбрать элемент Referential Integrity и нажать кнопку Define. В результате будет активировано диалоговое окно, показанное на рис. 3.7.

Рис. З.7. Определение ссылочной целостности
В левой части окна показаны поля таблицы GradeTab. Необходимо создать связь по полям STUDENT и GROUP. Соответственно, их необходимо выбрать из дочерней таблицы двойным щелчком мыши. Поля будут помещены в список Child fields.
Далее необходимо выбрать таблицу Students, находящуюся в списке Table, который находится в правой части окна. Подходящие поля будут загружены в таблицу Parent's key и будет автоматически установлена связь.
Для созданной ссылочной целостности можно определить дополнительные параметры:
- Группа Update rule позволяет задавать правила модификации записей:
1) переключатель Cascade указывает, что обновления данных производятся каскадно;
2) переключатель Prohibit запрещает изменение значений, входящих в первичный ключ, пока есть связанные записи.
- Флажок Strict Referential Integrity в активизированном состоянии запрещает работать с таблицей Paradox из пакета Paradox for DOS.
Осталось лишь присвоить отношению имя TestRef и сохранить его, нажав на кнопку ОК.
|