Визначення зв’язків
між таблицями БД
Після створення таблиць необхідно сформувати схему
компонування цих даних при витягу їх із БД і надання користувачу. Першим
кроком при цьому повинно бути визначення зв’язків між таблицями. Після
цього стає можливим створення запитів, форм і звітів, у яких дані виводяться
одночасно з декількох таблиць.
Зв’язок між таблицями встановлює відношення між значеннями,
що збігаються між собою, в ключових полях, звичайно між полями різних
таблиць, що мають однакові імена. У більшості випадків із ключовим полем
однієї таблиці, що є унікальним ідентифікатором кожного запису, зв’язується
зовнішній ключ іншої таблиці. Наприклад, для співвіднесення відомостей
про авторів і про написані ними книги слід в двох таблицях – Книги й
Автори – визначити зв’язок по полях №_Автора.
Зв’язок із відношенням один-до-багатьох – найчастіше
використовуваний тип зв’язку між таблицями. У такому зв’язку кожного
запису в таблиці А можуть відповідати декілька записів у таблиці В,
а запис у таблиці В не може мати більш одного відповідного запису в
таблиці А.
При відношенні багато-до-багатьох одного запису в таблиці
А можуть відповідати декілька записів у таблиці В, а одному запису в
таблиці В – декілька записів у таблиці А. Така схема реалізується тільки
за допомогою третьої (сполучної) таблиці, ключ якої складається принаймні
з двох полів, що є полями зовнішнього ключа в таблицях А и В. Наприклад,
між таблицями Автори і Видавці є відношення багато-до-багатьох, що визначається
шляхом створення двох зв’язків із відношенням один-до-багатьох через
таблицю Книги.
Визначення зв’язків
Процедура визначення зв’язків між таблицями БД така:
- Закрити усі відкриті таблиці. Створювати або змінювати зв’язки
між відкритими таблицями не можна.
- Переключитися у вікно БД.
- Натиснути кнопку Схема даних на панелі інструментів.
- Якщо в БД не визначені ніякі зв’язки, то на екран автоматично
буде виведене вікно Додавання таблиці. Якщо цього вікна на екрані
немає, слід натиснути кнопку Додати таблицю на панелі інструментів.
Якщо ж таблиці, що необхідно зв’язати, уже відображені на екрані,
перейти до кроку 6.
- У вікні діалогу Додавання таблиці двічі клацнути імена таблиць,
для яких потрібно визначити зв’язки. Закрити вікно.
- Для зв’язування полів вибрати поле в одній таблиці і перенести
його на відповідне поле в другій таблиці. Для зв’язування відразу
декількох полів вибрати і перенести при натиснутій клавіші Контрол.
Зв’язані поля не обов’язково повинні мати однакові імена, але вони
обов’язково повинні мати однакові типи даних і мати вміст одного
типу. Крім того, якщо зв’язуються числові поля, вони повинні мати
однаковий Розмір поля.
- У діалоговому вікні, що відкривається, Зв’язки перевірити імена
полів, поданих у двох списках. У разі потреби тут можна внести зміни.
- Для створення зв’язку натиснути кнопку Створити.
- Кроки з 5 по 8 проробити для кожної що зв’язується пари таблиць.
Об’єднання
У БД є можливість у запиті об’єднати дві або більш
таблиці. У результаті створюється нова таблиця або набір записів, що
містять інформацію з декількох таблиць. Таблиці з’єднуються, відповідно
до відношень між ними. У залежності від того, як таблиці з’єднуються,
можна одержати такі види з’єднань:
- Внутрішнє об’єднання. Записи з обох таблиць включаються
в об’єднання тільки тоді, коли значення специфікованого поля першої
таблиці збігається зі значенням специфікованого поля другої таблиці.
Об’єднання таблиць, установлюване через замовчування в режимі конструктора
запиту, є внутрішнім об’єднанням.
- Ліве зовнішнє об’єднання. У з’єднання включаються всі
записи першої таблиці плюс записи з другої таблиці, якщо значення
специфікованих полів збігаються. Записи з другої таблиці (на правій
стороні) комбінуються з записами з таблиці на лівій стороні тільки
в тому випадку, коли в записах на правій стороні об’єднання є значення
в зв’язаних полях, шо збігаються зі значеннями на лівій стороні.
- Праве зовнішнє об’єднання. У результуючий набір запиту
на об’єднання включаються всі записи другої таблиці (на правій
стороні) плюс запису з першої таблиці (на лівій стороні) , якщо
значення специфікованих полів збігаються.