Ссылочная целостность
Ссылочная целостность — это особый механизм, способствующий поддержанию непротиворечивых сведений в таблицах БД, связанных реляционными отношениями. В демонстрационной БД таблица NAKLS содержит данные о накладных, а таблица MOVEBOOK — о связанных с ними книгах. Перед удалением данных о накладной нужно предварительно удалить связанный с ней список книг, иначе таблица MOVEBOOK будет содержать записи о «ничейных» книгах. Другой пример. Если мы захотим удалить запись в таблице MOVEBOOK (удалить из накладной данные о какой-либо книге), нам следует соответствующим образом изменить количество книг на складе (таблица BOOKS) и сальдо партнера (таблица FIRMS). Если таблицы связаны механизмом ссылочной целостности, BDE будет автоматически блокировать попытки изменения поля связи в родительской таблице, пока соответствующим образом не изменены связанные с ней записи в дочерней таблице.
Для установления ссылочной целостности нужно выбрать пункт Referential Integrity в списке Table properties и щелкнуть на кнопке Define (см. рис. 1.5). Откроется окно Referential Integrity, показанное на рис. 1.8.
Рис. 1.8. Установление ссылочной целостности
В списке Fields выбирается поле связи редактируемой таблицы (она должна быть дочерней), а в списке Table — нужная родительская таблица. После щелчков на кнопках со стрелками имена полей связи переносятся в строки Child fields и Parent's key. Далее нужно щелкнуть на кнопке ОК. DBD запросит имя вновь создаваемой ссылочной целостности и затем создаст ее. После этого попытка удаления информации о любой накладной будет отвергаться до тех пор, пока не удалены данные обо всех связанных с ней книгах.
С помощью переключателей в группе Update rule определяются правила поддержания ссылочной целостности:
- Prohibit — BDE отвергает любые изменения в связанном поле родительской таблицы без соответствующего изменения записей в дочерней таблице; удаление записи родительской таблицы блокируется до удаления связанных с ней записей в дочерней таблице;
- Cascade — BDE автоматически производит каскадные изменения в дочерней таблице при изменениях родительской таблицы1.
Дата добавления: 2015-04-15; просмотров: 689;