- •6.1. Мета нормалізації Нормалізація - метод створення набору відносин із заданими властивостями на основі вимог до даних, встановленим у деякій організації.
- •6.2. Надмірність даних і аномалії відновлення
- •6.2.1. Аномалії вставки
- •6.2.2. Аномалій видалення
- •6.2.3. Аномалії відновлення
- •Властивості з'єднання без втрат і збереження залежності
- •6.3. Функціональні залежності Функціональна залежність (functional dependency) описує зв'язок між атрибутами і є одним з основних понять нормалізації.
- •6.3.1. Визначення функціональної залежності
- •Детермінант. Детермінантом функціональної залежності називається чи атрибут група атрибутів, розташована на діаграмі функціональної залежності ліворуч від символу стрілки.
- •Приклад 6.1. Функціональні залежності
- •Приклад 6.2. Функціональні залежності відносини Staff_Branch
- •6.4. Процес нормалізації
- •6.5. Перша нормальна форма (1 нф)
- •Приклад 6.3. Перша нормальна форма (1нф)
- •6.6. Друга нормальна форма (2нф)
- •6.6.2. Визначення другої нормальної форми
- •Приклад 6.4. Друга нормальна форма (2нф)
- •6.7. Третя нормальна форма (знф)
- •6.7.1. Транзитивна залежність
- •Приклад 6.5. Третя нормальна форма (3нф)
- •6.8. Нормальна форма Бойса - Кодда (нфбк)
- •6.8.1. Визначення нормальної форми Бойса - Кодда
- •Нормальна форма Бойса – Кодда (нфбк) Відношення знаходиться в нфбк тоді і тільки тоді, коли кожен його детермінант є потенційним ключем.
- •Приклад 6.6. Нормальна форма Бойса-Кодда (нфбк)
- •6.9. Огляд процесу нормалізації (від 1 нф до нфбк)
- •Перша нормальна форма (1 нф)
- •Друга нормальна форма (2нф)
- •Третя нормальна форма (знф)
- •Нормальна форма Бойса - Кодда (нфбк)
- •6.10. Четверта нормальна форма (4нф)
- •6.10.1. Багатозначна залежність
- •6.10.2. Визначення четвертої нормальної форми Четверта нормальна форма (4нф) Відношення в нормальній формі Бойса-Кодда, що не містить нетривіальних багатозначних залежностей.
- •6.11. П'ята нормальна форма (5нф)
- •6.11.2. Визначення п'ятої нормальної форми (5нф) п'ята нормальна форма (5нф) Відношення без залежностей з'єднання.
- •Питання
6.10. Четверта нормальна форма (4нф)
Як було сказано вище, НФБК дозволяє усунути будь-які аномалії, викликані функціональними залежностями. Однак у ході досліджень був виявлений ще один тип залежності - багатозначна залежність (multi - valued dependency - MVD), що при проектуванні відносин також може викликати проблеми, зв'язані з надмірністю даних (Fagin, 1977). У цьому розділі коротко описується багатозначна залежність і .зв'язок цього типу залежності з четвертою нормальною формою відносин (4НФ).
6.10.1. Багатозначна залежність
Можливість існування у відношенні багатозначних залежностей виникає внаслідок приведення вихідних таблиць до 1НФ, для якої не допускається наявність деякого набору значень на перетинанні одного рядка й одного стовпця. Наприклад, при наявності у відношенні двох багатозначних атрибутів для досягнення несуперечливого стану рядків необхідно повторити в них кожне значення одного з атрибутів у сполученні з кожним значенням іншого атрибута. Подібний тип обмеження породжує багатозначну залежність і приводить до надмірності даних. Розглянемо представлене в табл. 6.28 відношення Branch_Staff_Client, у якому містяться імена співробітників (SName) і клієнтів (CName) визначеного відділення компанії (Branch_No).
У цьому прикладі у відділенні компанії з номером 'ВЗ' працюють співробітники з іменами 'Ann Beach' і 'David Ford'. Крім того, у ньому зареєстровані клієнти з іменами 'Aline Stewart' і 'Mike Richie'. Однак, якщо в даному відділенні компанії між співробітниками і клієнтами немає ніякої прямої зв'язку, те необхідно створити рядок для кожної комбінації співробітника і клієнта - тільки це дозволить мати гарантії, що відношення знаходиться в несуперечливому стані. Ця вимога відбиває наявність у відношенні Branch_Staff_Client багатозначної залежності. Інакше кажучи, у даному відношенні існує багатозначна залежність, тому що в ньому міститься два незалежні зв'язки типу 1:М.
Багатозначна залежність У випадку багатозначної залежності, що існує між атрибутами А, В и С деякого відношення, для кожного значення А мається набір значень атрибута В и набір значень атрибута С. Однак вхідні в ці набори значення атрибутів В и С не залежать друг від друга.
Багатозначна залежність між атрибутами А, В и С деякого відношення далі буде позначатися в такий спосіб:
А -> У
А -> З
Наприклад, визначимо багатозначну залежність, що має місце у відношенні Branch_Staff_Client, представленому в табл. 6.28.
Branch_No -> SName
Branch_No -> CName
Багатозначна залежність може бути додатково визначена як тривіальна чи нетривіальна. Наприклад, багатозначна залежність. А -> У деякого відношення R визначається як тривіальна, якщо атрибут У є підмножиною атрибута А чи A U У = R.
І навпаки, багатозначна залежність визначається як нетривіальна, якщо жодне, ні інша умова не виконується. Тривіальна МЗЗ не накладає ніяких обмежень на дане відношення, а нетривіальна - накладає.
Багатозначна залежність у представленому в табл. 6.28 відношенні Branch_Staff_Client є нетривіальної, тому що в цьому відношенні жодне, ні інша умова не задовольняється. Отже, на відношення Branch_Staff_Client через наявність нетривіальної МЗЗ накладається обмеження, що приводить до появи повторюваних рядків, необхідних для того, щоб гарантувати несуперечність зв'язку між атрибутами SName і CName.
Хоча відношення Branch_Staff_Client знаходиться в НФБК (оскільки є тільки один потенційний ключ), воно усе ще залишається погано структурованим через надмірність даних, викликаної присутністю нетривіальної МЗЗ. Очевидно, що доцільніше було б визначити більш строгу форму НФБК, що виключала б створення таких реляційних структур, як відношення Branch Staff Client.