
- •Створення бази даних
- •Створення простої таблиці шляхом введення даних
- •Створення таблиці з використанням майстра
- •Створення таблиць за допомогою конструктора
- •Зміна існуючої таблиці
- •Додавання смарт-тегов
- •Використання майстра підстановок
- •Видалення поля підстановки
- •Аналіз вмісту таблиць для створення зв'язків
- •Робота з вікном «Схема даних»
- •Зміна зв'язку
- •Забезпечення цілісності даних
- •Підтаблиці як елемент зв'язків
Зміна зв'язку
Ми вже уміємо створювати зв'язок, а зараз спробуємо її змінити. При цьому ми скористаємося принципом цілісності даних для забезпечення зв'язку між таблицями Рослини і Типи. Під цілісністю даних матимемо на увазі набір правив, що захищають дані від безглуздих змін. Візьмемо, наприклад, зв'язок між рослинами і типами. Що, якщо видалити перший рядок з таблиці Типи ? Ми не зможемо проглянути опис рослин з номером типу, рівним 1. Саме тут «прийде на допомогу» функція цілісності зв'язків, яка зараз використовуватиметься з вже існуючим зв'язком.
Відкрийте діалогове вікно Зміна зв'язків двічі клацнувши на зв'язку між таблицями Рослини і Типи. Встановите прапорець Забезпечення цілісності даних і клацніть на кнопці ОК.
В результаті зміни зв'язку між таблицями Рослини і Типи відповідним чином зміниться і зовнішній вигляд сполучної лінії (рисунок 26). Як бачите, зв'язок між таблицями є відношенням «одін-ко-многим» з підтримкою функції цілісності зв'язку.
Рисунок
26 - Оновлена сполучна лінія між
таблицями Рослини і Типи
У діалоговому вікні Зміна зв'язків є ще декілька елементів управління. Розглянемо їх призначення.
У списку Таблиця/запит — завжди указується первинний ключ зв'язку. З його допомогою можна вказати відповідне поле(я) ключа в осередках, розташованих нижче за список. Як правило, Access самостійно визначає коректні значення.
У списку Зв'язана таблиця/запит — завжди указується зовнішній ключ зв'язку. З його допомогою можна визначити відповідне поле(я) в осередках нижче за список. Як правило, Access також самостійно визначає коректні значення.
Кнопка Об'єднання — клацання на ній виводить на екран ще одне діалогове вікно, в якому можна змінити тип з'єднання. Ця операція нами застосовуватися не буде.
Кнопка Нове — дозволяє зв'язати декілька ключів полів (докладніша інформація про первинні і зовнішні ключі представлена в розділі 4).
Прапорець каскадне оновлення зв'язаних полів — забезпечує цілісність даних, можливу тільки за умови установки відповідного прапорця. Дозволяє автоматично відновити всі значення зв'язаного зовнішнього ключа при зміні значення головного первинного ключа. Лише у разі крайньої необхідності рекомендується використовувати цю функцію.
Прапорець каскадне видалення зв'язаних полів — забезпечує цілісність даних, можливу тільки за умови встановлення прапорця Забезпечення цілісності даних. Дозволяє автоматично видалити всі записи зв'язаного зовнішнього ключа при видаленні запису первинного ключа. Рекомендується використовувати лише у разі потреби.
Поле Тип відношення — визначає тип зв'язку між таблицями.
Закрийте вікно Схема даних і клацніть на кнопці Так щоб підтвердити коректність внесених змін.
Забезпечення цілісності даних
Раніше у вікні Зміна зв'язків був встановлений прапорець Забезпечення цілісності даних. Принцип забезпечення цілісності має на увазі необхідність використання набору правив, що захищають дані, оскільки Access забороняє додавання або зміну деяких записів. Таким чином, забезпечення цілісності даних дозволяє:
заборонити зміну значення первинного ключа, якщо це в іншій таблиці існує зв'язаний запис;
заборонити введення значення зовнішнього ключа, якщо значення не використовується як первинний ключ зв'язаної таблиці.
Ці правила стануть зрозумілішими при виконанні практичного завдання, тому повернемося до таблиць і внесемо до них деякі зміни. Спочатку, відкривши таблицю Каталоги спробуйте видалити перший запис. При цьому з'явиться попередження, яке ви бачите на рисунку 27. Клацніть на кнопці ОК.
Рисунок
27 - Функція забезпечення цілісності
не дозволить видалити запис каталога
Фермер
Запис для каталога Фермер не вдалося видалити з тієї причини, що дві рослини — космея і німецька ромашка — пов'язані з каталогом. До тих пір, поки записи про рослини не будуть видалені з таблиці Рослини у каталозі Фермер від них позбавитися не вдасться.
Видалення цього запису, будь воно можливе, привело б до появи «одинака» — зв'язаного запису, значення зовнішнього ключа якої (в даному випадку ключа каталога Фермер) не пов'язано із записом відповідної таблиці. Іншими словами, у разі видалення запису каталога Фермер стало б неможливо дізнатися, де було придбане насіння ромашки і космєї. Можливо, це не покажеться великою проблемою, але як щодо інформації про клієнтів, що розмістили те або інше замовлення? Адже відомості такого роду для нас «життєво необхідні».
Тепер подивимося, що відбудеться при спробі змінити значення первинного ключа. У таблиці Каталоги спробуйте змінити назву Фермер на Фермерша. При цьому символ введення буде переміщений на сусідній рядок. Зміна запису приведе до появи попередження про неможливість її видалення, оскільки таблиця Рослини містить зв'язані записи. Клацніть на кнопці ОК а потім на кнопці < Esc>. Причина появи повідомлення та ж, що у попередньому випадку: зміна назви каталога привела б до появи в таблиці Рослини «одинаків», а саме рослин космея і ромашка.
Якщо прибраний прапорець Забезпечення цілісності даних Access дозволяє відновити будь-яке значення або добавіть/удаліть будь-який запис, коли не зміниться тип даних і не порушуються правила перевірки достовірності, описані в розділі 11, «Налаштування таблиць». З цієї причини прапорець бажано не знімати. Крім того, не слід встановлювати прапорці каскадного оновлення, не маючи на те вагомої підстави, і тим більше не рекомендується залишати їх постійно встановленими.