При роботі з таблицями в реляційних базах даних, бажано (необхідно), щоб кожна таблиця мала так званий первинний ключ.
Первинний ключ - це поле, яке використовується для забезпечення унікальності даних в таблиці. Це означає, що значення (інформація) в поле первинного ключа в кожному рядку (записи) таблиці може бути унікальним.
Унікальність необхідна щоб уникнути неоднозначності, коли невідомо до якої записи таблиці можна звернутися, якщо в таблиці є повторювані записи (два записи мають однакові значення у всіх полях таблиці).
Приклад. Для таблиці «Працівник» можна ввести додаткове поле, яке буде первинним ключем. Однак, поле (атрибут) «Табельний номер» також забезпечує унікальність. Так як, теоретично, не може бути двох однакових табельних номерів. На практиці можуть бути випадків, що один і той же табельний номер буде введений помилково і співпадуть значення всіх полів таблиці. В результаті виникнуть два однакових записи в таблиці. Щоб уникнути такої помилки, краще створити в таблиці додаткове поле-лічильник, яке забезпечить унікальність.
Головне достоїнство реляційних баз даних полягає в можливості використовувати інформацію з різних таблиць. Для цього спочатку потрібно створити між ними зв'язку. Після цього ви зможете об'єднувати ці дані в запитах, формах і звітах.
Щоб побачити всі зв'язки в базі даних, відкрийте шаблон Access, а потім на вкладці Робота з базами даних натисніть кнопку Схема даних.
Зв’язок "один-до-багатьох"
Давайте скористаємося базою даних відстеження замовлень, до якої входять таблиця ''Клієнти'' й таблиця ''Замовлення''. Клієнт може розмістити будь-яку кількість замовлень. Таким чином, для будь-якого клієнта, представленого в таблиці ''Клієнти'', у таблиці ''Замовлення'' може міститися багато замовлень. Взаємозв’язок між таблицями ''Клієнти'' та ''Замовлення'' – це зв’язок ''один-до-багатьох''.
Щоб представити зв’язок ''один-до-багатьох'' у структурі власної бази даних, візьміть первинний ключ на стороні зв’язку ''один'' і вставте його як додаткове поле або поля в таблицю на стороні зв’язку ''багато''. У цьому разі, наприклад, нове поле – поле ідентифікатора з таблиці ''Клієнти'' – потрібно додати до таблиці ''Замовлення'' та назвати його ''Код користувача''. Потім програма Access зможе використати номер із поля ''Код користувача'' в таблиці ''Замовлення'' для пошуку користувачів, які відповідають певним замовленням.
Зв’язок "багато-до-багатьох"
Тепер давайте розглянемо зв’язок між таблицями ''Товари'' та ''Замовлення''. В одному замовленні може бути вказано кілька товарів. З іншого боку, один товар може зустрічатися в багатьох замовленнях. Таким чином, кожному запису в таблиці ''Замовлення'' може відповідати багато записів у таблиці ''Товари''. Крім того, кожному запису в таблиці ''Товари'' також може відповідати багато записів у таблиці ''Замовлення''. Такий тип зв’язку називається зв’язком ''багато-до-багатьох''. Зверніть увагу, що для виявлення наявних зв’язків ''багато-до-багатьох'' між таблицями важливо розглянути обидва кінці зв’язку.
Для представлення зв’язку "багато-до-багатьох" потрібно створити третю таблицю, яку часто називають розподільною, щоб розділити зв’язок "багато-до-багатьох" на два зв’язки "один-до-багатьох". Первинний ключ із кожної із двох таблиць потрібно вставити у третю таблицю. Унаслідок цього у третій таблиці буде записано всі випадки або екземпляри зв’язків. Наприклад, таблиці "Замовлення" та "Товари" пов’язані зв’язком "багато-до-багатьох", який визначатиметься через створення двох зв’язків "один-до-багатьох" із таблицею "Відомості про замовлення". В одному замовленні може зустрічатися багато товарів, і кожний товар може зустрічатися в багатьох замовленнях.
Зв’язок "один-до-одного"
У зв’язку ''один-до-одного'' кожному запису в першій таблиці може відповідати лише один запис у другій таблиці, а кожному запису у другій таблиці може відповідати лише один запис у першій таблиці. Цей зв’язок не дуже поширений, оскільки зазвичай відомості, пов’язані між собою в такий спосіб, зберігаються в одній таблиці. Зв’язок ''один-до-одного'' можна використовувати для розділення таблиці з великою кількістю полів, для відокремлення частини таблиці з міркувань безпеки або для зберігання даних, які застосовуються лише до підмножини головної таблиці. У разі визначення такого зв’язку в обох таблицях мають бути спільні поля.
Створіть базу "Працівники" по аналогу.
Виведіть на екран схему даних та відтворіть зв'язки між даними.