Мои Конспекты
Главная | Обратная связь


Автомобили
Астрономия
Биология
География
Дом и сад
Другие языки
Другое
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Металлургия
Механика
Образование
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Туризм
Физика
Философия
Финансы
Химия
Черчение
Экология
Экономика
Электроника

Цілісність сутностей.



У другій частині реляційної моделі даних визначаються два обмеження, які повинні виконуватися в будь-якої реляційної бази даних. Це:

- Цілісність сутностей.

- Цілісність зовнішніх ключів.

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

Забезпечення цілісності включає в себе три аспекти: підтримка структурної цілісності; підтримка мовної цілісності; підтримка посилальної цілісності Реляційна СУБД працює тільки зі структурою даних типу реляционное ставлення. Необхідно підтримувати правила відповідні реляційної таблиці: У таблиці немає однакових кортежів Стовпці відповідають атрибутам відносини Завжди є первинний ключ Кожен атрибут має унікальне ім'я Порядок рядків у таблиці довільний Два відносини, що відрізняються тільки порядком проходження стовпців вважаються однаковими. Проблеми структурної цілісності необхідно розглянути в разі NULL значень, тобто таких значень які на даний момент не визначені, але можуть бути визначені в будь-який час. При появі NULL значень не діють стандартні правила порівняння: одне невизначене значення не дорівнює іншому невизначеному значенню. Для виявлення рівності значень в цьому випадку використовують предикати типу: <ім'я атрибута> is NULL <ім'я атрибута> is not NULL Якщо в даному кортежі вказаний атрибут прийме невизначеною значення, то предикат is NULL приймає значення true, а предикат is not NULL значення - false. Таблиця істинності логічних операцій змінилася, оскільки з двозначної перетворилася на тризначну. Таблиця?? a b a a & b a | b 1 1 0 1 1 1 0 0 0 1 1 - 0 - 1 0 1 1 0 1 < tr> 0 0 1 0 0 < td> 0 - 1 0 - - 1 - - 1 - 0 - 0 - - - - - - У таблиці 1 кодує значення TRUE, 0 - FALSE, - - невизначене значення. Підтримка мовної цілісності полягає в тому, що реляційна СУБД повинна забезпечувати мови опису і маніпулювання даними не нижче стандарту SQL. Тобто не повинні бути доступні низькорівневі засоби маніпулювання даними, що не від... повідають стандарту. Тому доступ можливий з використанням SQL.

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

- Обмеження цілісності атрибута;

- значення за замовчуванням;

- завдання обов'язкових і необов'язкових значень;

- завдання умов на значення атрибутів;

Структурні обмеження цілісності — це обмеження, які випливають із властивостей структури даних, що зберігаються в базі.

Семантичні обмеження цілісності — це обмеження, що накладаються предметною областю, яка моделюється.

За способом підтримки виділяють такі класи обмежень цілісності:

- декларативні;

- процедурні.

Декларативні обмеження цілісності — це обмеження, що фіксують умови, яким має відповідати база даних. Завдання СКБД - не допускати порушення цих умов. Зазвичай декларативні обмеження цілісності визначаються мовою опису структури даних. Прикладом такого обмеження є: «Фонд зарплати факультету має бути рівним сумі фондів зарплати всіх його кафедр». Декларативні обмеження цілісності специфікуються фразою CONSTRAINT в описі таблиці або її полів.

 

Процедурні обмеження цілісності ~ це описи дій, спрямованих на забезпечення цілісності. Прикладом такого обмеження є: «Під час зміни фонду зарплати будь-якої з кафедр автоматично змінити фонд зарплати факультету так, щоб він дорівнював сумі фондів зарплати усіх кафедр». Процедурні обмеження цілісності специфікуються тригерами.

За часом перевірки обмеження пілісності поділяються на такі, що:

- перевіряються негайно;

- мають відкладену перевірку.

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

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

За областю дії розрізняють обмеження, що стосуються:

- відношення;

- атрибута;

- зв'язків між відношеннями;

- зв'язків між атрибутами.

За можливістю обмежувати переходи бази даних з одного стану в інший обмеження цілісності поділяються на:

- статичні;

- динамічні.

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

Динамічні обмеження цілісності задають обмеження на можливі переходи бази даних з одного стану в інший.