Обучающие курсы:

Обучение профессии "Разработчик C#" + стажировка в Mail.ru
Обучение профессии "Разработчик Python" + трудоустройство
Обучение профессии "Веб-разработчик" + стажировка в Mail.ru


Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для C++
Уроки по C#
Уроки по Python
HTML
Веб-дизайн
Ассемблер в среде Windows
ActiveX
Javascript
Общее о Линукс
Линукс - подробно
Линукс - новое
Delphi
Паскаль для начинающих
Турбопаскаль
Новости
Партнеры
Наши предложения
Архив новостей






Определение индексов и ссылочной целостности

Для продолжения работы следует создать таблицу, содержащую данные об оценках студентов. Структура этой таблицы показана в табл. 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 и сохранить его, нажав на кнопку ОК.

 

 



   
 

Библиотека программиста. 2009.
Администратор: admin@programmer-lib.ru