Пов’язування таблиць

У цьому параграфі ви вивчите:

- відношення між таблицями;

- встановлення зв’язків;

- створення макета зв’язків.

Відношення між таблицями

Розглянемо можливі відношення між таблицями бази даних. Вони бувають таких типів: «один до одного», «один до багатьох», «багато до одного» і «багато до багатьох». Найпоширенішим у таблицях реляційних баз даних є відношення «один до багатьох».

Відношення «один до багатьох» означає, що одному запису таблиці відповідають кілька записів в іншій таблиці

Розглянемо створені таблиці для бази даних «Фірма «Подорож». Туристична фірма продає путівки, причому однакові путівки вона може продати кільком клієнтам. Тому одному запису в таблиці «Путівки» можуть відповідати декілька записів у таблиці «Замовлення» (мал. 4.4 і мал. 4.7, б). Наприклад, популярні путівки з кодом 2 замовлені клієнтами 4 і 5.

Сторона «один» у відношенні «один до багатьох» називається головною таблицею. Сторона «багато» у цьому самому відношенні називається зв’язаною таблицею. У прикладі зв’язаних таблиць «Путівки» і «Замовлення» ми бачимо, що ключове поле головної таблиці зв’язується з відповідним полем зв’язаної таблиці.

Тип відношення «один до одного» трапляється в таблицях баз даних рідше, ніж «один до багатьох».

У відношенні «один до одного»одному запису в головній таблиці відповідає один запис у зв’язаній таблиці.

У наведених нами раніше таблицях немає відношення «один до одного». Щоб проілюструвати це відношення, ми могли б додатково до таблиці «Клієнти» створити таблицю «Банківські дані», у якій містилися б банківські реквізити клієнтів. Наприклад, у полі «Рахунок» було б зазначено номери розрахункових рахунків клієнтів. Оскільки рахунок кожного клієнта є унікальним, між полем «Код клієнта» таблиці «Клієнти» і полем «Рахунок» таблиці «Банківські дані» існувало б відношення «один до одного».

Встановлення зв’язків між таблицями

Отже, між полями таблиць можуть існувати певні відношення. Однак щодо них програма Access нічого не знає, поки ми не визначимо зв’язки між таблицями за допомогою передбаченої для цього процедури. Розглянемо встановлення зв’язків на прикладі таблиць «Путівки», «Клієнти» і «Замовлення».

§ Починаючи зв’язування таблиць, переконайтеся, що всі таблиці і форми закриті. Потім переключіться у вікно бази даних.

§ Клацніть по кнопці Схема данных на панелі інструментів вікна Access – у відповідь відкриеться однойменне діалогове вікно.

§ Водночас з вікном Схема данных з’явиться діалог Добавление таблицы (мал. 5.1). Однак цей діалог може і не з’явитися, якщо раніше були створені зв’язки між таблицями (вікно Схема данных не порожнє). У цьому разі потрібно очистити вікно від зв’язків, клацнувши по кнопці Очистить макет. Потім натисніть кнопку Добавить таблицу на панелі інструментів.

Мал. 5.1. Діалог Добавление таблицы

§ За замовчуванням в діалозі Добавление таблицы буде відкрита вкладка Таблицы. Виділіть у списку таблицю «Замовлення» і натисніть кнопку Добавить. У вікні Схема данных з’явиться список полів таблиці «Замовлення» (мал. 5.2).

Мал. 5.2. Список полів таблиці «Замовлення» у вікні Схема данных

§ Аналогічно виведіть списки полів таблиць «Клієнти» і «Путівки» у вікно Схема данных, після чого закрийте діалог Добавление таблицы.

§ Для зв’язування полів «Код путівки» оберіть це поле у головній таблиці «Путівки» і перетягніть його мишею до зв’язаної таблиці «Замовлення». Зазначимо, що напрямок перетягування поля завжди повинен бути «від головної таблиці до зв’язаної».

§ У діалозі Святи (мал. 5.3) установіть перемикач Обеспечение целосности данных. Це дозволить уникнути деяких помилок при створенні й експлуатації бази даних.

Мал. 5.3. Діалог Связи

§ Клацніть по кнопці Создать, і встановлений зв’язок буде відображений у вікні Схема данных. Зв’язок показаний лінією, позначеною цифрою 1 і символом ∞, що означає відношення «один до багатьох».

§ Аналогічно створіть зв’язок між полями «Код клієнта» таблиць «Клієнти» і «Замовлення». Ви отримаєте схему зв’язку, показану на мал.5.4.

Мал. 5.4. Приклад відношень між головною і зв’язаною таблицями