Реляційна цілісність даних
Реляційна цілісність даних розглядається в двох аспектах — ключі відношення і реляційні обмеження цілісності.
Первинним ключем (ключем відношення, ключовим атрибутом) називається атрибут відношення, що однозначно ідентифікує кожний з його кортежів. Ключ може бути складеним (складним), тобто складатися з декількох атрибутів.
Кожне відношення обов'язково має комбінацію атрибутів, яка може служити ключем. Таким чином, її існування гарантує те, що відношення — це множина, яка не містить однакових кортежів. У багатьох СУБД можна створювати відношення, не визначаючи ключі.
Іноді відношення має декілька комбінацій атрибутів, кожна з яких однозначно визначає всі кортежі відношення. Такі комбінації атрибутів — це можливі ключі відношення (потенційні) і будь-який з них можна вибрати як первинний.
Якщо вибраний первинний ключ складається з мінімально необхідного набору атрибутів, то він є не надмірним.
Зазвичай ключі використовують для:
виключення дублювання значень в ключових атрибутах (інші атрибути у розрахунок не приймаються);
впорядкування кортежів. Можливо впорядкування за збільшенням або убуванню значень всіх ключових атрибутів, а також змішане впорядкування (по одних атрибутах зростання, по інших — убування);
прискорення роботи з кортежами відношення;
організації зв¢язування таблиць.
Якщо у відношенні R1 є не ключовий атрибут А, значення якого є значеннями ключового атрибуту В іншого відношення R2, то атрибут А відношення R1 є зовнішнім ключем.
За допомогою зовнішніх ключів встановлюються зв'язки між відношеннями. Реляційна модель накладає на зовнішні ключі обмеження для забезпечення цілісності даних — обмеження посилальної цілісності, тобто кожному значенню зовнішнього ключа повинні відповідати рядки в зв'язуваних відношеннях.
Оскільки кожен атрибут пов'язаний з деяким доменом, для множини допустимих значень кожного атрибуту відношення визначають так звані обмеження домена. Окрім цього, для БД задаються два правила цілісності, які називаються реляційними обмеженнями цілісності — обмеженнями для всіх допустимих станів БД:
правила цілісності сутності (відношень);
правила посилальної цілісності.
Визначник null указує на те, що значення атрибуту в даний момент невідоме або неприйнятно для даного кортежу, null не входить в область визначення деякого кортежу або ніяке значення ще не задано. Ключове слово null є способом обробки неповних або незвичайних даних, null у жодному випадку не можна ототожнювати як нульове чисельне значення або заповнений пропусками текстовий рядок (нулі і пропуски — це деякі значення; null — це відсутність значення). Цілісність відношень — в базовому (основному) відношенні жоден атрибут первинного ключа не може містити відсутніх значень, тобто NULL-значень.
Посилальна цілісність — значення зовнішнього ключа відношення повинне або відповідати значенню первинного ключа базового відношення, або задаватися визначником null.
Корпоративні обмеження цілісності — додаткові правила підтримки цілісності даних, визначувані користувачами або адміністраторами БД.