Ключі відношень
Первинний ключ – це атрибут (або група атрибутів), котрий унікальним чином ідентифікує кожний екземпляр об’єкта (запис).
Вторинний ключ - це атрибут (або група атрибутів), значення якого може повторюватися для декількох записів.
За первинний ключ рекомендують вибирати числове поле, оскільки обробка такого типу полів відбувається набагато ефективніше, ніж текстових.
Вибір складеного первинного ключа з декількох текстових полів може серйозно погіршити продуктивність СКБД.
У випадку, якщо первинний ключ підібрати складно, або він досить громіздкий, рекомендують створити штучний ідентифікатор у вигляді поля типу “довге ціле“ і заповнити його унікальними значеннями, що кодують записи початкової таблиці. У СКБД MS Access для цього передбачений спеціальний тип даних “Лічильник“. Це поле нагадує поле типу “довге ціле“. Його особливістю є те, що СКБД автоматично надає номер кожному новому запису і відстежує унікальність нумерації.
Усі атрибути відношення, які не входять у первинний ключ, називають описовими.
При створенні БД часто використовують поняття “інформаційний об’єкт”. Інформаційний об’єкт – це опис певної сутності у вигляді сукупності логічно пов’язаних атрибутів. Він має таке ж ім’я, що і відповідна сутність, наприклад, СТУДЕНТ, ФАХІВЕЦЬ тощо. Цей об’єкт має сукупність реалізацій і ідентифікується значенням ключа.
Зв’язки між таблицями дають можливість сумісно використовувати дані з різних таблиць. Зв’язок кожної пари таблиць забезпечують однаковими полями в них, які розглядають як ключ зв’язку.
Розглянемо спосіб зв’язування таблиць. Одну з них назвемо головною, іншу – зв’язуваною. Обидві вони мають власні первинні ключі.
Для забезпечення зв’язку між цими таблицями у зв’язуваній таблиці потрібно передбачити зовнішній ключ (Foreign Key). Поля зовнішнього ключа мають той же склад, що і первинний ключ головної таблиці. Типи відповідних полів повинні співпадати, а назви можуть відрізнятися.
Значення первинного ключа у головній таблиці повинні бути унікальні для різних записів, тоді як значення зовнішнього ключа у зв’язаній таблиці можуть повторюватися багато разів.
Цілісність даних означає, що в базі даних встановлено і коректно підтримуються взаємозв’язки між записами різних таблиць при завантаженні, додаванні і видаленні записів у зв’язаних таблицях, а також при зміні значень ключових полів.
Цілісність бази даних (Database Integrity) — це відповідність інформації, що знаходиться в базі даних, її внутрішній логіці, структурі і всім явно заданим правилам.
Кожне правило, що накладає деяке обмеження на можливий стан бази даних, називається обмеженням цілісності (Integrity Constraint). Приклади обмежувальних правил наступні: вага деталі має бути позитивною; кількість знаків у телефонному номері не повинна перевищувати 10; вік батьків не може бути менше віку їхньої дитини і так далі
Цілісність БД не гарантує достовірності інформації, що міститься в ній, але забезпечує принаймні правдоподібність цієї інформації, відкидаючи вочевидь неймовірні, неможливі значення.
Достовірність БД (або істинність) є відповідність фактів, що зберігаються в базі даних, реальному світу. Очевидно, що для визначення достовірності БД потрібне володіння повними знаннями як про вміст БД, так і про реальний світ. СКБД може і повинна контролювати цілісність БД, але принципово не в змозі контролювати достовірність БД. Контроль достовірності БД може бути в обмеженому обсязі покладений тільки на людину.
Отже, БД може бути цілісною, але не достовірною. Можливо і зворотне: БД може бути достовірною, але не цілісною. Останнє має місце, якщо правила (обмеження цілісності) задані неправильно.