19.08.2016, 15:37:31
Войти Зарегистрироваться
Авторизация на сайте

Ваш логин:

Ваш пароль:

Забыли пароль?

Навигация
Новости
Архив новостей
Реклама
Календарь событий
Right Left

Реляційні бази даних. Ключі. відносини

  1. зміст
  2. Питання відповідь
  3. 2. Що таке відношення (зв'язок) між таблицями (relationship)? приклад
  4. 3. Що таке зовнішній ключ (foreign key)? приклад
  5. 4. Що таке рекурсивний зовнішній ключ?
  6. 5. Чи можуть первинний і зовнішній ключі бути простими або складними (складними)?
  7. 6. Яка відмінність між штучним і природним ключем? приклад
  8. 7. Які існують способи вибору первинного ключа?
  9. 8. Що означають терміни «головна таблиця» (master) і «підпорядкована таблиця» (detail)?
  10. 9. Які існують типи відносин (зв'язків) між таблицями?
  11. пов'язані теми

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

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

зміст

Вхідні дані

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

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

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

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

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

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

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

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

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

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

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

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

Таблиці в реляційної моделі даних можуть мати зв'язки між собою. Такі зв'язки називаються відносинами. Для таблиць «Працівник» і «Зарплата» можна встановити зв'язок по полю «Табельний номер».

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

Це означає наступне. Якщо потрібно знайти нараховану заробітну плату в таблиці «Зарплата» для працівника Іванов І.І., то потрібно виконати наступні дії:

  • знайти табельний номер працівника Іванов І.І. в таблиці «Працівник». Значення табельного номера одно 7585;
  • в таблиці «Зарплата» знайти всі значення, які дорівнюють 7585 (табельний номер);
  • вибрати з таблиці «Зарплата» все значення поля «Нараховано», які відповідають табельної номером 7585.

Значення табельного номера одно 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). Тобто, кожного запису, яка є первинним ключем однієї таблиці, відповідає кілька записів пов'язаної таблиці;
  • «Багато до одного». Це коли декільком записам головної таблиці відповідає один запис підпорядкованої таблиці;
  • «Багато до багатьох». Це коли в обох таблицях існує кілька взаємопов'язаних записів.

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

пов'язані теми

2. Що таке відношення (зв'язок) між таблицями (relationship)?
3. Що таке зовнішній ключ (foreign key)?
4. Що таке рекурсивний зовнішній ключ?
5. Чи можуть первинний і зовнішній ключі бути простими або складними (складними)?
6. Яка відмінність між штучним і природним ключем?
7. Які існують способи вибору первинного ключа?
8. Що означають терміни «головна таблиця» (master) і «підпорядкована таблиця» (detail)?
9. Які існують типи відносин (зв'язків) між таблицями?
1. Що таке первинний ключ в таблиці бази даних?
Для чого використовуються первинні ключі?