Реляційні бази даних. Поняття ключа. Види ключів. Відношення. Головна та підлегла таблиці

Реляційні бази даних. Поняття ключа. Види ключів. Відношення. Головна та підлегла таблиці

У даній темі на прикладі двох таблиць визначаються основні поняття реляційних баз даних, а саме:

  • первинний ключ;
  • зовнішній ключ;
  • простий та складений ключі;
  • відношення, типи відношень;
  • штучний та природній ключі;
  • головна (master) та підлегла (detail) таблиці.

Зміст


Пошук на інших ресурсах:

 




Вхідні дані

Нехай задано базу даних працівників підприємства, що складається з двох таблиць. Перша таблиця містить дані про працівника. Друга таблиця містить відомості про заробітну плату працівників.

Таблиці мають таку структуру.

Таблиця “Працівник”. Містить дані про працівника

база даних таблиця "Працівник" фото

Таблиця “Зарплата”. Містить відомості про заробітну плату працівників.

база даних таблиця Зарплата фото


Питання/відповідь

1. Що таке первинний ключ в таблиці бази даних? Для чого використовуються первинні ключі?

При роботі з таблицями в реляційних базах даних, бажано (необхідно), щоб кожна таблиця мала так званий первинний ключ.

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

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

Приклад. Для таблиці “Працівник” можна ввести додаткове поле, що буде первинним ключом. Однак, поле (атрибут) “Табельний номер” також забезпечує унікальність. Тому що, теоретично, не може бути двох однакових табельних номерів. На практиці можуть бути випадки, що такий самий табельний номер буде введено помилково і співпадуть значення усіх полів таблиці. В результаті виникнуть два однакових записи в таблиці. Щоб уникнути такої помилки, краще створити в таблиці додаткове поле-лічильник, яке точно забезпечить унікальність.

Так само, для таблиці “Зарплата” можна ввести додаткове поле, що буде первинним ключом.

2. Що таке відношення (зв’язок) між таблицями (relationship)? Приклад

У реляційній моделі даних таблиці можуть мати між собою зв’язки. Такі зв’язки називаються відношеннями. Для таблиць “Працівник” та “Зарплата” можна встановити зв’язок за полем “Табельний номер”.

Приклад. Проаналізуємо таблиці “Працівник” та “Зарплата”. У цих таблицях можна встановити відношення між таблицями на основі поля “Табельний номер”. Тобто, зв’язок між таблицями відбувається на основі поля (атрибуту) “Табельний номер”.

Це означає наступне. Якщо потрібно пошукати нараховану заробітну плату в таблиці “Зарплата” для працівника Демченко А.Д., то потрібно виконати такі дії:

  • знайти табельний номер працівника Демченко А.Д. у таблиці “Працівник”. Значення табельного номеру рівне 7585;
  • у таблиці “Зарплата” знайти усі значення, що рівні 7585 (табельний номер);
  • вибрати з таблиці “Зарплата” усі значення поля “Нараховано”, що відповідають табельному номеру 7585.

база даних зв'язок таблиця фото

Рис. 1. Ілюстрація зв’язку між таблицями. Табельний номер 2145 таблиці “Працівник” відображається у таблиці “Зарплата”

база даних відношення таблиця фото

Рис. 2. Зв’язок (відношення) між полями таблиць

3. Що таке зовнішній ключ (foreign key)? Приклад

Поняття “зовнішній ключ” є важливим при розгляді зв’язаних таблиць.

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

Приклад. Нехай між таблицями “Працівник” і “Зарплата” є взаємозв’язок за полем “Табельний номер”. У цьому випадку поле “Табельний номер” таблиці “Працівник” може бути первинним ключем, а поле “Табельний номер” таблиці “Зарплата” зовнішнім ключем. Це означає, що значення поля “Табельний номер” таблиці “Зарплата” замінюються значеннями поля “Табельний номер” таблиці “Працівник”.



4. Що таке рекурсивний зовнішній ключ?

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

5. Чи можуть первинний та зовнішній ключі бути простими або складеними (складними)?

Первинний, вторинний та зовнішній ключі можуть бути як простими так і складеними. Прості ключі – це ключі, що містять тільки одне поле (один атрибут). Складені (складні) ключі – це ключі, що містять декілька полів (атрибутів).

6. Яка відмінність між штучним та природнім ключем? Приклад

Природній ключ забезпечує унікальність з самої сутності предметної області. Бувають випадки, коли значення записів деякого поля (полів) таблиці є унікальними. Таке поле може бути природнім ключем.

Штучний ключ вводиться додатково для забезпечення унікальних значень. Найчастіше штучний ключ є полем типу лічильник (counter). У такому полі, при додаванні нового запису (рядка) в таблицю, значення лічильника збільшується на 1 (або іншу величину). Якщо запис видалити з таблиці, то максимальне значення лічильника рядків вже не зменшується, а залишається як є. Як правило, за цим всім слідкує система керування базами даних.

Приклад. У таблиці “Працівник” природнім ключем є поле (атрибут) “Табельний номер”. Поле “Табельний номер” є саме по собі унікальним, тому що не може бути двох працівників з однаковим табельним номером.

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

база даних таблиця фото

де поле “Номер” є штучним ключем, що забезпечує унікальність.

7. Які є способи вибору первинного ключа?

Існує 3 способи вибору первинного ключа:

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






8. Що означають терміни “головна таблиця” (master) та “підлегла таблиця” (detail)?

Якщо між таблицями є зв’язок, то одна з них може бути головною (master), а інша підлеглою (detail). Головна таблиця відображає всі записи, що містяться в ній. Підлегла таблиця відображає тільки тільки ті записи, що відповідають значенню ключа головної таблиці, яке на даний момент є активним (поточним). Якщо змінюється поточний запис головної таблиці, то змінюється множина доступних записів підлеглої таблиці.

Приклад. Якщо розглянути таблиці “Працівник” та “Зарплата”, то таблиця “Працівник” є головною, а таблиця “Зарплата” є підлеглою.

9. Які є типи відношень (зв’язків) між таблицями?

Існує 4 основні типи відношень між таблицями:

  • “один до одного”. У цьому випадку кожному запису однієї таблиці відповідає тільки один запис іншої таблиці;
  • “один до багатьох”. Це коли одному запису головної таблиці (master) відповідає декілька записів підлеглої таблиці (detail). Тобто, в кожному запису, що є первинним ключем однієї таблиці, відповідає декілька записів зв’язаної таблиці;
  • “багато до одного”. Це коли декільком записам головної таблиці відповідає один запис підлеглої таблиці;
  • “багато до багатьох”. Це коли в обох таблицях існує декілька взаємозв’язаних записів.

Приклад. У випадку двох таблиць “Працівник” і “Зарплата” є відношення (зв’язок) типу “один до багатьох”. Таблиця “Працівник” є головною. Таблиця “Зарплата” є підлеглою.


Схожі теми