Новини високих технологій
» » Що це - первинний ключ в базі даних?

Що це - первинний ключ в базі даних?

22-08-2018, 19:49
2 475
Бази даних використовуються в будь-якій діяльності: банківській та фінансовій галузях, туристичному бізнесі, складських господарствах, на виробництві і в навчанні. Вони представляють собою сукупність таблиць, мають чіткі властивості і підпорядковуються суворим вимогам. В реляційних БД таблиці називають відносинами.

Що таке первинний ключ в БД

В базі даних первинний ключ таблиці – це один з її стовпців (Primary key). Розберемося на прикладі, як це виглядає. Уявімо просте ставлення студентів університету (назвемо його "Студенти").

Прізвище



Ім'я



Рік народження



Факультет



Курс



Середній бал



Іванов



Іван



1999



Економічний



3



38



Кузнєцов



Петро



2000



Журналістики



2



41



Михайлов



Сергій



2000



Технологічний



2



40



Козлов



Євген



1998



Технологічний



4



45



Іванов



Антон



2000



Юридичний



2



36

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

Простий і складений первинний ключ

Primary key може бути простим і складеним. Якщо унікальність запису визначається значенням тільки в одному полі, як описано вище, ми маємо справу з простим ключем. Складовою ключ – це первинний ключ бази даних, що складається з двох і більше полів. Розглянемо таке ставлення клієнтів банку.




Ф. В. О.



Дата народження



Серія паспорта



Номер паспорта



Іванов П. А.



12051996



75



0553009



Сергєєв В. Т.



14071958



71



4100654



Краснов Ст. Л.



22012001



73



1265165

Паспорти людей можуть містити одні і ті ж серії або номера, але паспортів з одним і тим же поєднанням серії та номера не існує. Таким чином, поля "Серія паспорта" і "Номер паспорта" стануть складним ключем зазначеного відносини, однозначно ідентифікуючи людини.

Зв'язок між відносинами

Отже, первинний ключ в базі даних – це один або декілька стовпців таблиці, що дозволяє однозначно ідентифікувати рядок цього відношення. Для чого він потрібен? Повернемося до першого прикладу з відношенням "Студенти". В базі даних, крім цього відносини, зберігається й інша інформація, наприклад, успішність кожного учня. Щоб не повторювати всю інформацію, що вже міститься в БД, користуються ключем, посилаючись на потрібну запис. Це виглядає так.


У двох відносинах прикладу ми бачимо поле ID. Це первинні ключі в базі даних для цих таблиць. Як бачимо, в успішності містяться лише посилання на ці поля з інших таблиць без необхідності вказувати всю інформацію з них.

Природний і сурогатний ключ

Як визначають первинний ключ таблиці бази даних? Два розглянутих нами прикладу – "Студенти" і "Клієнти банку" - ілюструють поняття природного і сурогатного ключа. В таблиці клієнтів банку ми визначили ключ, який складається з полями "Номер" і "Серія паспорта", використавши вже наявні стовпці. Такий ключ називається природним, для його визначення ми не робили ніяких змін і доповнень. У випадку з відношенням "Студенти" ні одне поле або поєднання полів не давали нам унікальності. Це змусило нас ввести додаткове поле з кодом учня. Такий ключ називається сурогатним, для нього ми додали ще один службовий стовпця в таблицю. Цей стовпець не несе ніякої корисної інформації і служить лише для ідентифікації записів.

Зовнішній ключ і цілісність даних в БД

Все вищевикладене приводить нас до зовнішнього ключа (Foreign key) та цілісності БД. Foreign key – це поле, яке посилається на Primary key зовнішнього відносини. В таблиці успішності це стовпці "Студент" і "Дисципліна". Їх дані відсилають нас до зовнішніх таблиць. Тобто поле "Студент" щодо "Успішність" - це Foreign key, а щодо "Студент" первинний ключ в базі даних. Важливим принципом побудови баз даних є їх цілісність. І одне з її правил – цілісність по посиланнях. Це означає, що зовнішній ключ таблиці не може посилатися на неіснуючий Primary key іншого відношення. Не можна видалити з відношення "Студент" запис з кодом 1000 – Іванов Іван, якщо на неї посилається запис з таблиці успішності. У правильно побудованій БД при спробі видалення ви отримаєте помилку, що це поле використовується.
Існують і інші групи правил цілісності, а також інші обмеження баз даних, які також заслуговують на увагу й повинні бути враховані розробниками.
Цікаво по темі
Функція PHP array_keys: прості реляційні відношення
Функція PHP array_keys: прості реляційні відношення
Рядки і масиви стали практичним інструментом обробки даних, що складаються в безумовних відносинах. Сформувати масив по рядку, виконати обробку і
Властивості і типи полів
Властивості і типи полів
Комп'ютерні програми працюють з колосальною кількістю інформації, яку необхідно десь зберігати. Спеціально для цієї мети створюються бази даних, що
Докладно про те, як зв'язати таблиці в access
Докладно про те, як зв'язати таблиці в access
Багато хто з нас працюють на виробництві, де найчастіше для ведення звіту використовуються бази даних. У даній статті ми докладно розповімо про те,
Функція створення таблиці в SQL Create Table
Функція створення таблиці в SQL Create Table
Робота з базами даних безпосередньо пов'язана із зміною таблиць і містяться в них даних. Але перед початком проведення дій таблиці необхідно