Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OAP_VOpros_6-7_Bazy_dannykh_1_lektsia_lab_1.doc
Скачиваний:
23
Добавлен:
30.04.2015
Размер:
3.33 Mб
Скачать

Ссылочная целостность

Ссылочная целостность — это особый механизм, способствующий поддержанию непротиворечивых сведений в таблицах БД, связанных реляционными отношени­ями. В демонстрационной БД таблица 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.

Парольная защита

Любая таблица Paradox может быть полностью или частично защищена от несанк­ционированного доступа. Для этого (см. рис. 1.5) в списке Table properties выбира­ется пункт Password Security и щелчком на кнопке Define открывается соответству­ющее диалоговое окно (рис. 1.9).

Рис. 1.9. Окно определения пароля

Пароль может содержать от 1 до 15 любых символов, в том числе и пробелы. Он чувствителен к регистру букв. С помощью кнопки Auxiliary Passwords вызывается дополнительное окно, в котором можно уточнить, какие поля и как защищаются2.

Пример простой программы

В этом разделе на примере создания несложной программы я постараюсь пояс­нить основные приемы программирования для БД. Вид окна работающей програм­мы

Рис. 1.11. Окно программы на этапе прогона

Программа содержит окно просмотра накладных и связан­ных с ними списков книг.