Цілісність [integrity - незайманість, недоторканність, безпеку, цілісність] розуміється як правильність даних в будь-який момент часу. Але ця мета може бути досягнута лише в певних межах: СУБД не може контролювати правильність кожного окремого значення, що вводиться в базу даних [хоча кожне значення можна перевірити на правдоподібність]. Наприклад, не можна виявити, що вводиться значення 5 [представляє номер дня тижня] насправді має дорівнювати 3. З іншого боку, значення 9 явно буде помилковим і СУБД повинна його відкинути. Однак для цього їй слід повідомити, що номери днів тижня повинні належати набору [1, 2, 3, 4, 5, 6, 7].
Підтримка цілісності бази даних може розглядатися як захист даних від невірних змін або руйнувань [не плутати з незаконними змінами та руйнуваннями, які є проблемою безпеки]. Сучасні СУБД мають ряд засобів для забезпечення підтримки цілісності [так само, як і засобів забезпечення підтримки безпеки].
Виділяють три групи правил цілісності:
цілісність за первинними ключам;
цілісність за зовнішніми ключам;
цілісність, яка визначається користувачем.
Цілісність по первинним ключам. Атрибути, що входять до складу деякого потенційного ключа не можуть приймати Null-значень.
Цілісність по зовнішнім ключам. Зовнішні ключі не повинні бути неузгодженими, тобто для кожного значення зовнішнього ключа повинно існувати відповідне значення первинного ключа в батьківському відношенні.
Цілісність, що визначається користувачем. Для будь-якої конкретної бази даних існує ряд додаткових специфічних правил, які відносяться до неї однієї і визначаються розробником. Найчастіше контролюється:
унікальність тих або інших атрибутів;
діапазон значень [екзаменаційна оцінка від 2 до 5];
приналежність набору значень [підлогу "М" або "Ж"].
Ключ - мінімальний набір атрибутів, за значеннями яких можна однозначно знайти необхідний екземпляр сутності.
Первинний ключ сутності дозволяє ідентифікувати її екземпляри, а зовнішній - екземпляри сутності, яка знаходиться в зв'язку з даною сутністю.