Каскадне оновлення та видалення пов'язаних записів

Якщо вибрана зв'язку забезпечується підтримку цілісності, можна задати режим каскадного видалення пов'язаних записів і режим каскадного обновле-

ня пов'язаних полів. Такі параметри роблять можливим в головній таблиці, відповідно, видалення записів і зміна значення в ключовому полі, т. К. При цих параметрах система автоматично виконає необхідні зміни в підлеглих таблицях, забезпечивши збереження властивостей цілісності бази даних.

У режимі каскадного видалення пов'язаних записів при видаленні запису з го-

ної таблиці будуть автоматично віддалятися все пов'язані записи в підлеглих таблицях. При видаленні запису з головної таблиці виконується каскадне видалення підлеглих записів на всіх рівнях, якщо цей режим заданий на кожному рівні.

У режимі каскадного оновлення пов'язаних полів при зміні значення ключового поля в запису головної таблиці Access автоматично змінить значення

у відповідному полі в підлеглих записах.

Встановити у вікні Зміна зв'язків (Edit Relationships) (див. Рис. 3.49) флаж-

ки каскадне оновлення пов'язаних полів (Cascade Update Related Fields) і каскадне видалення пов'язаних записів (Cascade Delete Related Records) можна тільки після завдання параметра забезпечення цілісності даних.

Мал. 3.52. Схема даних БД Поставка товарів

Після створення зв'язків зображення таблиць можуть переміщатися в межах робочого простору вікна схеми даних. Переміщення і зміни розмірів вікон зі списками полів таблиць у вікні схеми даних здійснюються прийнятими в Windows способами. На рис. 3.52 показана схема бази даних Поставка товарів. де таблиці розміщені відповідно до розміщення інформаційних об'єктів

канонічної моделі даних, отриманої при проектуванні бази даних в гла-

ве 2 (див. рис. 2.18).

На рис. 3.52 в створеній схемі даних БД Поставка товарів все зв'язку відзначені символами 1 і. Це свідчить про те, що одне-багатозначні зв'язку налаштовані належним чином (за простим або складеним ключу) і для них заданий параметр забезпечення цілісності даних.

Завдання 3.7. Перевірка підтримки цілісності в базі даних

Якщо в схемі даних визначено зв'язок таблиць, і для неї встановлені параметри забезпечення цілісності, при введенні і коригування даних у взаємозалежних таблицях користувач не зможе ввести записи, що порушують вимоги зв'язковий цілісності, розглянуті в попередньому розділі. Перевірте, як забезпечується підтримання цілісності при внесенні змін до таблиці ПОКУПЕЦЬ - ДОГОВІР, пов'язані одне-багатозначними відносинами.

Перевірка автоматичної підтримки цілісності при зміні зна

чений ключів зв'язку в таблицях. Відкрийте головну таблицю зв'язку ПОКУПЕЦЬ в режимі таблиці. Змініть значення ключового поля КОД_ПОК (код покупця) в одному із записів. Переконайтеся, що у всіх записах підпорядкованої таблиці ДОГОВІР для договорів, укладених цим покупцем, автоматично також зміниться значення поля КОД_ПОК. Зміна відбувається, т. К. Було встановлено прапорець каскадне оновлення пов'язаних полів (Cascade Update Related Fields) (див. Рис. 3.49). Причому ця зміна здійснюється миттєво, як тільки змінна запис перестає бути поточної.

Перевірка при додаванні записів в підпорядковану таблицю. Переконайтеся, що неможливо включити новий запис в підпорядковану таблицю ДОГОВІР зі значенням ключа зв'язку КОД_ПОК, не представлених в таблиці ПОКУПЕЦЬ. Змініть значення ключа зв'язку КОД_ПОК в підпорядкованій таблиці ДОГОВІР на значення, що не існує в записах таблиці ПОКУПЕЦЬ, і переконайтеся, що таке можуть редагувати лише адміністратори, т. К. При підтримці цілісності не може існувати запис підпорядкованої таблиці з ключем зв'язку, якого немає в головній таблиці.

Перевірка при видаленні запису в головній таблиці. Переконайтеся, що разом з видаленням запису в головній таблиці ПОКУПЕЦЬ видаляються всі підлеглі записи в таблиці ДОГОВІР, т. К. Було встановлено прапорець каскадне видалення пов'язаних записів (Cascade Delete Related Records).

Зауважимо, якщо каскадне видалення не дозволено, неможливо видалити запис у головній таблиці, якщо є пов'язані з нею записи в підлеглій.

2. Які об'єкти представлені в області навігації бази даних?

3. Чим визначається склад полів таблиці?

Схожі статті