Зв'язуваня таблиць

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

Для створення зв'язків необхідно встановити відповідність величин однієї таблиці величинам з іншої таблиці. Зв'язки встановлюються через визначені користувачем поля. Для цього пов'язують ключове поле головної таблиці (первинний ключ) з відповідним йому полем (зовнішній ключ) підлеглої таблиці. Ці поля в таблицях часто мають однакові імена, але в загальному випадку це не обов'язково.

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

Виконання підстановок

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

Виконання підстановок дає можливість, не змінюючи структури БД, замість числових кодів виводити зі зв’язаних таблиць текстову інформацію.


Наприклад, завдяки підстановкам у таблиці  Родина  можемо у полі КодТварини замість чисел обирати з випадного списку назви тварин  із таблиці Тварини.

Розглянемо процедуру виконання підстановки. Отже, для цього потрібно:

1) відкрити БД Зоопарк, таблицю Родина;

2) виконати Вигляд → Конструктор ;

3) відкрити список Тип даних в рядку поля КодТварини і вибрати Майстер підстановок;

4) у вікні Майстер підстановок клацнути кнопку Далі;

5) у наступному вікні вибрати Таблиця: Тварини і клацнути Далі (рис.1);

6) у наступному вікні зі списку Доступні поля таблиці Тварини  вибрати  по черзі імена полів КодТварини і НазваТварини, клацнувши кнопку > (рис.2). Ці назви мають з’явитися в полі Вибрані поля. Клацнути кнопку Далі;

7) погодитись із сортуванням поля НазваТварини за зростанням і клацнути кнопку Далі;

9) погодитися з прихованням ключа ключового поля і клацнути кнопку Далі;

10) за бажанням у поле Підпис змінити ім’я поля КодТварини;

11) клацнути кнопку Готово.

12) перейти у Вигляд → Подання таблиці.


Після виконання цих дій у таблиці Родина в клітинках поля  КодТварини з’являються кнопки відкриття списку, з якого слід обирати значення з поля НазваТварини з таблиці Тварини (рис.3).

Подібним чином у таблиці Раціон можна налаштувати підстановку для поля КодТварини кличек тварин  із таблиці Тварини.

Створення зв'язків між таблицями за допомогою вікна "Зв'язки"

Закрий усі таблиці і виконай дії:

1. На вкладці Знаряддя бази даних у групі Зв’язки натисни кнопку Зв’язки.

2. На вкладці Конструктор у групі Зв'язки натисни кнопку Відобразити таблицю (позначка 1 на рис.5).

3. Вибери потрібні таблиці і натисни кнопку Додати. Після додавання таблиць до вкладки документа Зв’язки натисни кнопку Закрити.

4. Перетягни поле з однієї таблиці (зазвичай це первинний ключ) до спільного поля (зовнішнього ключа) в іншій таблиці. Відкриється діалогове вікно Редагування зв'язків (рис.4).

Щоб застосувати цілісність даних для цього зв'язку, установи прапорець Забезпечення цілісності даних.


5. Натисни кнопку Створити.


Між двома таблицями з’явиться лінія зв’язку. Якщо встановлено прапорець Забезпечення цілісності даних, кінці лінії будуть товстіші. Крім того, якщо встановити цей прапорець, з одного боку лінії над її товстою частиною відображатиметься число 1, а з іншого — знак нескінченності (), як показано на рис.5.

Забезпечення цілісності даних для певного зв’язку між таблицями означає, що при зміні, видаленні та додаванні записів в одній з цих таблиць буде здійснюватися автоматичний контроль за відповідністю змін у зв’язаній таблиці. Так, забезпечення цілісності даних для зв’язку один-до-багатьох означатиме перевірку умов:

Якщо потрібно змінити зв'язки, слід натиснути кнопку Змінити зв'язки (позначка 3 на рис.5).

Якщо потрібно відобразити всі зв'язки, слід натиснути кнопку Усі зв'язки (позначка 2 на рис.5).

Типи зв'язків

один до одного (позначають 1:1), коли одному екземпляру однієї множини відповідає один екземпляр іншої множини  Наприклад, під час виготовлення кожен автомобіль отримує свій номер (номер кузова).  Кожному автомобілю відповідає тільки один номер. Зв’язок один-до-одного може мати місце, коли обидва поля зв’язку таблиць є ключовими;

один до багатьох (1:∞), коли одному екземпляру однієї множини може відповідати кілька екземплярів іншої множини  Наприклад, один учитель інформатики навчає багатьох учнів і при цьому немає інших учителів інформатики, які здійснюють навчання тих самих учнів. Зв’язок один-до-багатьох має місце, коли ключовим є тільки одне з полів зв’язку;

багато до одного (∞:1), коли кільком екземплярам однієї множини відповідає один екземпляр іншої множини  Цей тип зв’язку є протилежним до зв’язку один до багатьох  Наприклад, багато учнів входять до складу тільки одного класу (і тільки до нього) і, навпаки, в одному класі навчається багато учнів;

багато до багатьох  (∞:∞),  коли  кільком екземплярам однієї множини можуть відповідати кілька екземплярів іншої множини  Наприклад, множина учнів класу (багато) можуть отримувати різні (багато) оцінки, що будуть визначати рівень їх навчальних досягнень з інформатики.


Зверни увагу!

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

Щоб видалити зв’язок між двома таблицями, потрібно двічі клацнути правою кнопкою миші лінію зв’язку між ними та вибрати команду Видалити.


Завдання для виконання

Вправа 21

Завдання. Виконати підстановки так, щоб у таблиці Успішність замість числових кодів були відповідні тексти; створити зв’язки між таблицями, зберегти БД у власну папку.

1. Завантажте із власної папки БД Клас.

2. Відкрийте таблицю Успішність у режимі конструктора. Для поля КодПред у списку типів даних виберіть Майстер підстановок. Підставте замість числових кодів КодПред таблиці Успішність відповідні назви предметів із таблиці Предмети. Для поля КодПред уведіть підпис НазваПред.

3. Відкрийте таблицю Успішність у режимі конструктора. Для поля КодУчня у списку типів даних виберіть Майстер підстановок. Підставте замість числових кодів КодУчня таблиці Успішність відповідні прізвища з таблиці Учні. Для поля КодУчня уведіть підпис Прізвище.

4. Відкрийте вікно Зв'язки, додавши до нього таблиці Предмети, Успішність, Учні. Змініть тип зв’язку між таблицями Учні та Успішність на один до багатьох, щоб забезпечувалась цілісність даних і каскадне оновлення та видалення записів.

5. Зробіть подібні налаштування для зв’язку між таблицями Предмети та Успішність. Збережіть схему даних. Доповніть таблиці Учні та Успішність до 10 записів, таблицю Предмети — до 5 записів.

6. У таблиці Учні для поля Адреса встановіть підпис Місце проживання. У кінці таблиці додайте поле Примітки, у яке введіть дані, наприклад, «Спортсмен», «Гарно співає». Збережіть зміни в таблиці. Завершіть роботу з програмою Access.

Зразок виконання завдання:

Домашнє завдання

1. Опрацювати матеріал сайту. Визначення записати до зошита.

2. Виконати вправу 21 (Для учнів, які працюють з комп'ютером).

3. Виконати тестове завдання в Мій клас (Для учнів, які немають можливості працювати в Access).