- •1. Создание таблиц базы данных
- •1.1. Описание полей
- •1.2. Задание индексов
- •1.3. Задание ограничений на значения полей
- •1.4. Задание ссылочной целостности
- •1.5. Задание паролей
- •1.6. Задание языкового драйвера
- •1.7. Задание таблицы для выбора значений
- •1.5. Изменение структуры таблицы
- •2. Создание приложения
- •2.1. Приложение с одной формой
- •1.8. Просмотр списка подчиненных таблиц
- •2.2. Использование в приложениях модуля данных
1.4. Задание ссылочной целостности
Понятие ссылочной целостности относится к связанным таблицам и проявляется в следующих вариантах взаимодействия таблиц:
запрещается изменение поля связи или удаление записи главной таблицы, если для нее имеются записи в подчиненной таблице;
при удалении записи в главной таблице автоматически удаляются соответствующие ей записи в подчиненной таблице (каскадное удаление).
Для выполнения операций, связанных с заданием ссылочной целостности, необходимо выбрать пункт Referential Integrity комбинированного списка Table Properties (рис. 5.2). При этом, как и в случае задания индексов, появляются кнопки Define, Modify, Erase и список, в котором выводятся имена созданных условий ссылочной целостности.
Условие ссылочной целостности задается для подчиненной таблицы и определяется следующими элементами:
полями связи подчиненной таблицы;
именем главной таблицы;
полями связи главной таблицы;
параметрами.
Разработчик может создать, изменить или удалить условие ссылочной целостности.
Для задания условия ссылочной целостности нужно нажать кнопку Define, после чего появляется окно Referential Integrity (рис. 5.8).
В списке Fields следует выбрать поле связи и нажатием кнопки со стрелкой вправо перевести его в список Child Fields (Дочерние поля). Если полей связи несколько, то эти действия выполняются для каждого из них. Кнопка со стрелкой влево удаляет выбранное поле из списка полей связи.
В списке Table указывается главная таблица, имена таблиц выбираются из рабочего каталога программы Database Desktop (каталог, определенный как Working Directory, его задание описано в лекции 6). После выбора таблицы и нажатия кнопки со стрелкой влево (рядом со списком таблиц) в список Parent's key автоматически заносятся ключевые поля главной таблицы.
Рис. 5.8. Задание условия ссылочной целостности
Замечание
Главная таблица должна быть закрыта и не использоваться другими программами, включая Database Desktop. В противном случае при попытке сохранить структуру таблицы возникает ошибка.
Параметры ссылочной целостности выбираются переключателями. Группа Update rules (Правила изменения) определяет вид взаимодействия таблиц при изменениях в главной таблице. Переключатель Cascade устанавливает режим каскадного удаления записей в подчиненной таблице при удалении соответствующей записи главной таблицы. Переключатель Prohibit устанавливает режим запрещения изменения поля связи или удаления записи главной таблицы, для которой имеются записи в подчиненной таблице.
Переключатель Strict referential Integrity (Жесткая ссылочная целостность) устанавливает защиту таблиц от модификации с использованием ранних версий программы Database Desktop (под DOS), которые не поддерживают ссылочную целостность.
После установки нужных флагов и нажатия кнопки ОК появляется окно Save Referential Integrity As, в котором указывается имя условия (рис. 5.5). Напомним, что для таблиц Paradox условия ссылочной целостности именуются. Для удобства обращения к условию в его имя можно включить имена полей и таблиц, задав при этом некоторый префикс, например, ri. После нажатия ОК сформированное условие ссылочной целостности добавляется к таблице, и его имя появляется в списке условий.
Замечание
Условия ссылочной целостности задаются на физическом уровне и действуют для любых программ, выполняющих операции с таблицей: как для программ типа Database Desktop, так и для приложений, создаваемых в Delphi.
Рис. 5.5. Задание имени для условия ссылочной целостности
Созданное условие ссылочной целостности можно изменить, определив новый состав полей и новые значения параметров. Изменение условия ссылочной целостности не отличается от процесса его создания: после выделения имени условия в списке и нажатия кнопки Modify открывается окно определения ссылочной целостности (рис. 5.8). При нажатии кнопки ОК измененное условие ссылочной целостности сохраняется под тем же именем.
Для удаления условия ссылочной целостности нужно выделить его в списке и нажать кнопку Erase. Удаление производится без выдачи предупреждающих сообщений.
Кнопки Modify и Erase доступны только, если выбрано условие в списке.
