1) Доменна цілісність при завданні типу даних визначаються правильні значення для окремо

1) Доменна цілісність

При завданні типу даних визначаються правильні значення для окремо взятого стовпчика. Це називається доменної цілісністю. Домен - це безліч допустимих значень стовпця. Як альтернативний метод визначення допустимих значень використовується властивість NULL, яке вказує для даного стовпця тип значень. Традиційні для SQL Server методи забезпечення цілісності включають в себе накладення умов на домени стовпців за допомогою призначених для користувача типів даних, правил і значень за замовчуванням. Для забезпечення цілісності також використовуються обмеження ANSI (значення за замовчуванням і обмеження на перевірку). Зверніть увагу на те, що типи даних і властивість NULL використовуються завжди, в той час як інші компоненти системи цілісності даних застосовувати необов'язково.

2) Посилальна цілісність

3) Об'єктна цілісність

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

Для того щоб обійти проблему неповних або невідомих даних, в базах даних можуть використовуватися типи даних, поповнені так званим null-значенням. Null-значення - це, власне, не значення, а якийсь маркер, який показує, що значення невідомо.

Таким чином, в ситуації, коли можлива поява невідомих або неповних даних, розробник має на вибір два варіанти.

Другий варіант полягає у використанні null-значень замість невідомих даних. За здавалося природністю такого підходу ховаються менш очевидні і глибші проблеми. Найбільш кидається в очі проблемою є необхідність використання тризначної логіки при оперуванні з даними, які можуть містити null-значення. В цьому випадку при неакуратному формулюванні запитів, навіть самі природні запити можуть давати неправильні відповіді. Є більш фундаментальні проблеми, пов'язані з теоретичним обґрунтуванням коректності введення null-значень, наприклад, незрозуміло взагалі, чи входять null-значення в домени чи ні.

Практично всі реалізації сучасних реляційних СУБД дозволяють використовувати null-значення, незважаючи на їх недостатню теоретичну обґрунтованість. Таку ситуацію можна порівняти з ситуацією, що склалася на початку століття з теорією множин. Майже відразу після створення Кантором теорії множин, в ній були виявлені внутрішні суперечності (антиномії). Були розроблені більш строгі теорії, що дозволяють уникнути цих протиріч (конструктивна теорія множин). Однак в реальній роботі більшість математиків користується класичною теорією множин, тому що суворіші теорії більш обмежені і негнучкий в застосуванні саме в силу своєї більшої строгості.

29. Цілісність даних. Первинний ключ, обмеження по зв'язках. Зовнішній ключ. Бізнес правила.

Цілісність (від англ. Integrity - незайманість, недоторканність, безпеку, цілісність) - розуміється як правильність даних в будь-який момент часу. Але ця мета може бути досягнута лише в певних межах: СУБД не може контролювати правильність кожного окремого значення, що вводиться в базу даних (хоча кожне значення можна перевірити на правдоподібність). Наприклад, не можна виявити, що вводиться значення 5 (що представляє номер дня тижня) в дійсності має дорівнювати 3. З іншого боку, значення 9 явно буде помилковим і СУБД повинна його відкинути. Однак для цього їй слід повідомити, що номери днів тижня повинні належати набору (1,2,3,4,5,6,7).

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

Схожі статті