Основні ключі, які полегшують керування базою даних

Бази даних використовують таблиці для організації інформації. Кожна таблиця складається з ряду рядків, кожен з яких відповідає одному запису бази даних. Отже, як бази даних зберігають ці записи чіткими? Це через використання ключів.

Первинні ключі

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

Приклад первинного ключа

Припустимо, у нас є таблиця під назвою «Співробітники», яка містить інформацію про персонал для кожного співробітника нашої фірми. Нам потрібно вибрати відповідний первинний ключ, який би однозначно ідентифікував кожного співробітника. Вашою першою думкою може бути використання імені співробітника. Однак це не спрацює, оскільки цілком можливо, що ви найняли б двох співробітників з однаковим ім’ям. Кращим вибором може бути використання унікального ідентифікаційного номера співробітника, присвоєного кожному співробітнику при прийомі на роботу.

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

Якщо ви працюєте в державній організації, використання номера соціального страхування може бути нелегальним відповідно до Закону про конфіденційність 1974 року. З цієї причини більшість організацій перейшли на використання унікальних ідентифікаторів, таких як Employee ID або Student ID.

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

Більшість баз даних також здатні генерувати первинні ключі. Наприклад, Microsoft Access може бути налаштований на використання типу даних AutoNumber для призначення унікального ідентифікатора кожному запису в таблиці. Хоча це ефективно, це погана практика проектування, оскільки вона залишає безглузде значення в кожному записі в таблиці. Натомість використовуйте цей простір для зберігання чогось корисного.

Зовнішні ключі

Інший тип ключів – це зовнішній ключ. Зовнішній ключ створює природні зв’язки між таблицями. У більшості структур баз даних між таблицями існують природні зв’язки.

Приклад зовнішнього ключа

Повертаючись до нашої бази даних співробітників, уявіть, що ми хочемо додати до бази даних таблицю, що містить відомості про відділ. Цю нову таблицю можна назвати Відділами і міститиме велику кількість інформації про відділ в цілому.

Ми також хотіли б включити інформацію про співробітників у відділі, але було б зайвим мати ту саму інформацію в двох таблицях (Співробітники та Відділи). Тому замість цього ми створимо зв’язок між двома таблицями.

Створення зв'язку між таблицями

Припустимо, що таблиця «Відділи» використовує стовпець «Ім’я відділу» як первинний ключ. Щоб створити зв’язок між двома таблицями, ми б додали новий стовпець до таблиці «Співробітники» під назвою «Відділ».

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

Для зовнішнього ключа немає обмежень унікальності, оскільки, наприклад, у нас може бути більше одного співробітника, який належить до одного відділу. Аналогічно, немає вимоги, щоб запис у таблиці «Відділи» мав відповідний запис у таблиці «Співробітники», оскільки ми можемо мати відділ без працівників.