Організація зв'язків між таблицями

Організація зв'язків між таблицями

• шляхом створення безпосередніх зв'язків між таблицями;

• шляхом створення вкладених таблиць даних.

Створення зв'язків між таблицями

Коли між двома таблицями встановлюється зв'язок, це означає, що величини з однієї таблиці ставляться у відповідність величинам з іншої таблиці.

що відкриває схему даних, на панелі інструментів. Якщо в базі даних ще не визначено ніяких зв'язків, на екран буде виведено вікно Додавання таблиці (див. Рис. 3.28). Якщо ж у відкриту на екрані схему даних, приклад якої показаний на рис. 2.1, необхідно додати таблиці, яких в цій схемі ще немає, натисніть на кнопку

на панелі інструментів відкритої схеми даних.

Отже, ви послідовно додавали все таблиці, тобто позначали їх у вікні і потім клацали по клавіші Додати в вікні, показаному на рис. 3.28. Тепер закрийте це вікно за допомогою кнопки Закрити. В результаті з'явиться діалогове вікно Схема даних, представлене на рис. 3.29. У цьому вікні ви повинні організувати зв'язку між таблицями. Зв'язки встановлюються через окремі, визначені користувачем поля. Для зв'язування цих полів треба вибрати поле в одній таблиці і перетягнути його, наклавши на відповідне поле в іншій таблиці.

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

• в одній або в обох таблицях повинно бути поле, що приймає унікальні (не мають дублів) значення у всіх записах;

• зв'язуються поля повинні мати однакові типи даних. Однак з цього правила є два винятки:

- поле лічильника дозволяється пов'язувати з числовим полем, якщо в останньому задано значення Довге ціле;

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

• зв'язуються поля числового типу повинні мати однакові значення властивості Розмір поля.

Для початку зв'яжіть поле Код в таблиці Країни з полем Код країни в таблиці Фірми. Для цього клацніть лівою кнопкою миші по одному з пов'язують полів і, не відпускаючи її, перетягніть мишу на інше поле. На екрані з'явиться діалогове вікно Зміна зв'язків (рис. 3.30).

У лівій частині цього вікна вказано пов'язується поле батьківської таблиці, а в правій - пов'язується поле дочірньої таблиці. Якщо треба змінити одне з цих полів, можна клацнути в ньому по стрілці прокручування, а потім вибрати бажане значення. Встановивши прапорець Забезпечення цілісності даних, ви задасте умова: ні в одній з пов'язаних таблиць не буде записів, у яких немає відповідних «партнерів» в іншій таблиці. Ще два прапорці визначають режими оновлення та видалення полів:

• каскадне оновлення пов'язаних полів - встановлює, що значення поля Код країни в таблиці Фірми змінюються відповідно до значень поля Код країни в таблиці Країни. Цей прапорець має сенс встановити;

• каскадне видалення зв'язаних записів - встановлює, що якщо з першої таблиці будуть видалені назви будь-яких країн, то втечуть і відповідні фірми в другій таблиці. У ситуації, що розглядається цей прапорець навряд чи слід встановлювати, оскільки, по-перше, фірма може мати дочірнє відділення з тим же ім'ям в іншій країні; по-друге, якщо прилади, що випускаються цією фірмою, в базі даних залишаються, то вони в разі каскадного видалення можуть виявитися «безпритульними».

Заслуговує на увагу клавіша Ооб'едіненіе. Натиснувши на неї, ви відкриєте список можливих критеріїв для відбору тих записів, які будуть зв'язуватися. Ось наявні варіанти:

• зв'язок поширюється тільки на ті записи, в яких значення обох таблиць збігаються;

• зв'язок поширюється на всі записи з таблиці Країни і тільки на ті поля таблиці Фірми, в яких значення, що містяться в об'єднуються полях, збігаються;

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

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

Отже, в поле Тип відносини слід вказати, якого типу відносини встановлюються між таблицями. В даному випадку це відношення один-ко-многим.

Тепер натисніть на кнопку Створити. У вікні Схема даних з'явиться лінія зв'язку між таблицями Країни і Фірми - рис. 3.31.

Проробивши таку процедуру для всіх таблиць бази даних, ви отримаєте необхідну систему зв'язків, яка була в якості прикладу показана на рис. 2.1.

Майстер друку зв'язків

Щоб надрукувати схему зв'язків, необхідно:

1. Відкрити відповідну базу даних.

2. Відкрити підміню Сервіс в рядку меню цієї бази даних. Вибрати пункт Схема даних, щоб відкрити діалогове вікно.

3. Відкрити меню Файл, а в ньому активізувати опцію Друк схеми даних.

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

Щоб створити підтаблицю, як зазвичай, спочатку увійдіть в вікно бази даних і відкрийте необхідну таблицю (нехай це буде таблиця Країни). Вона буде виглядати так, як показано на рис. 3.32.

Перейдемо в режим конструктора і клацнемо в цьому режимі правою кнопкою миші по заголовку таблиці - Країни: таблиця (рис. 3.33). Відкриється контекстне меню, в якому треба вибрати позицію Властивості. В результаті на екрані з'явиться вікно Властивості таблиці, в якому нас цікавить конкретна позиція Ім'я підтаблиці. Після клацання в цій позиції (лівою кнопкою) в рядку з'явиться стрілка прокрутки

після натискання на неї з'явиться меню, що містить ті об'єкти бази даних (таблиці, форми, запити), які ми хотіли б бачити в якості підлеглих в таблиці Країни (рис. 3.34).

Виберемо в цьому меню позицію Таблиця. Фірми і після звичайних перетворень (режим конструктора, збереження змін в таблиці, вікно бази даних, відкриває таблицю) отримаємо первинну таблицю Країни - рис. 3.35.

Слід додати, що крім поля Ім'я підтаблиці необхідно заповнити ще два поля в зазначеному вікні Властивості таблиці, а саме: Підлеглі поля і Основні поля. Їх треба заповнити іменами тих полів, які є сполучними між таблицями. В даному випадку підлеглим полем буде Код фірми, основним полем - Код.

На перший погляд ця таблиця ідентична попередньої, наведеної на рис. 3.32. Однак зверніть увагу на значки (+), які стоять біля кожного коду фірми. Вони вказують на те, що тут в згорнутому вигляді міститься інформація. Якщо клацнути по такому значку, відповідний рядок розкриється, і ви побачите перелік фірм, що відносяться до цієї країни, в даному випадку USA (див. Рис. 3.36).

Інакше кажучи, на рис. 3.36 продемонстрована ієрархічна дворівнева структура Країни і Фірми. Тепер для таблиці другого рівня - Фірми - виконаємо такі ж дії з вікнами Властивості таблиці і Ім'я підтаблиці (див. Рис. 3.34). Як батьківської таблиці приймемо Фірми, а в якості дочірньої - Менеджер. Пов'язаними полями в обох таблицях визначимо Код фірми. Тоді таблиця Фірми, в свою чергу, буде містити згорнуту інформацію про менеджерів, що також показано на рис. 3.34. Якщо ви розкриєте цю інформацію, то побачите вже трирівневу ієрархічну структуру Країни, Фірми та Менеджер (див. Рис. 3.38). Таким способом в принципі можна створити ієрархічне дерево. В межах таблиці можна вкласти до восьми рівнів підтаблиць. Однак кожна таблиця або підтаблиця, як ми бачимо, може мати тільки одну вкладену підтаблицю. Підтаблиця, що відноситься до підлеглій формі, може використовувати як джерело даних таблицю, запит або форму.

Покажемо це побудова з використанням більш простого шляху. Відкриємо таблицю Фірми (рис. 3.38).

Тепер відкриємо меню Вставка і в ньому позицію підтаблиці. На вкладці Таблиці виділимо Країни. В цьому випадку таблиця Фірми буде основною, а таблиця Країни - підлеглої. Тому в нижній частині діалогового вікна Вставка підтаблиці вкажемо за допомогою стрілок прокрутки в якості основного поля Код фірми, а в якості підлеглого - Код (рис. 3.39).

Відкрита таблиця Фірми буде виглядати так, як показано на рис. 3.40.

Як приклад відкрито два фрагмента. При цьому в таблиці Країни створена раніше підтаблиця (рис. 3.35) залишилася незмінною. Якщо необхідно одним клацанням розгорнути всі записи підтаблиці або згорнути всі розкриті записи, слід вибрати позицію підтаблиці в меню Формат (при відкритій таблиці Фірми). Ця ж позиція дозволяє видалити підтаблицю.

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

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

Поділіться на сторінці

Схожі статті