- •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нф) Відношення без залежностей з'єднання.
- •Питання
Нормальна форма Бойса - Кодда (нфбк)
Тепер проаналізуємо відносини Prop, Staff і Prop_Inspect для з'ясування їхньої приналежності до нормальної форми Бойса-Кодда. Нагадаємо, що відношення знаходиться в цій формі, якщо кожен детермінант відносини є потенційним ключем. Отже, для перевірки приналежності до НФБК потрібно просто виділити всі детермінанти відносини і переконатися а тім, що вони є потенційними ключами.
Функціональні залежності відносин Prop, Staff .і Prop_Inspect показані нижче.
Відношення Ргор
fd2 Property_No -> PAddress
Відношення Staff
d3 Staff_No -> SName
Відношення Prop_Inspection
fdl* Property_No, IDate,ITime, Comments, Staff_No, Car_Reg.
fd4 Sfaff_No, IDafe -> Car_Reg
d5* Car_Reg, IDafe,ITime -> Property_No, Comments, Staff_No
fd6* Staff_No, IDate, ITime -> Property_No, Comments
Можна помітити, що відносини Prop і Staff уже находятсй у НФБК, оскільки детермінант кожних їхніх цих відносин є потенційним ключем. Єдиним ЗНФ -відношенням, що не знаходиться в НФБК є відношення Prop_Inspect, тому що воно містить детермінант (Staff_No, IDate), що не є потенційним ключем (ця залежність позначена як fd4). Унаслідок цього відношення Prop_Inspect може страждати від аномалій відновлення. Наприклад, для зміни даних про автомобіль, замовленому для співробітника з номером 'SG14' на 22 квітня 1996 року ('22-арг-96'), буде потрібно виконати відповідне відновлення значень відразу в двох рядках. Але якщо номер автомобіля буде змінений тільки в одному рядку, те це приведе базу даних у протиречний стан.
Для перетворення відносини Prop_Inspect у НФБК необхідно усунути залежність, що порушує вимоги НФБК, що досягається шляхом створення двох нових відносин Staff_Саг і Inspection, уміст яких представлене в табл. 6.26 і 6.27 відповідно. Нові відносини мають наступний вид:
Staff_Car (Staff_No, IDate, Car_Reg)
I
nspection
(Property_No, IDate, ITime,
Comments, Staff_No)
Відносини Staff_Car і inspection знаходяться в НФБК, оскільки детермінант кожних їхніх цих відносин є потенційним ключем.
У
підсумку декомпозиція показаного в
табл. 6.21 вихідного відношення
Ргореrtу_Inspection (аж до НФБК - відношень)
буде мати схематичний вид, показаний
на мал. 6.9. У результаті виконання всіх
етапів нормалізації, декомпозиція
вихідного відношення Property_Inspection з
утворенням НФБК - відношень приводить
до утрати функціональної залежності
Car_Reg, IDate, ITime -> Property_No, Comments, Staff_No (ця
залежність позначена як fd5*). Однак, варто
визнати, що якщо не усунути функціональну
залежність Staff_No, IDate -> Car_Reg (ця залежність
позначена як fd4), те відношення
Prop_Inspection буде характеризуватися деякою
надмірністю даних.
Отримані в результаті виконаної нормалізації відносини будуть мати наступний вид:
Prop (Property_No, PAddress)
Staff (Staff_No, SName)
Inspection (Property_No, IDate, ITime, Comments, Staff_No)
Staff_Car (Staff_No, IDate, Car_Reg)
Відношення Property_Inspection, представлене в табл. 6.21, може бути відновлене у вихідному стані за допомогою з'єднання відносин Prop, Staff, Inspection і Staff_Саг за допомогою механізму первинних зовнішніх ключів. Наприклад, атрибут Staff_No є первинним ключем відносини Staff, а, у відношенні Inspection він відіграє роль зовнішнього ключа. Наявність цього зовнішнього ключа дозволяє зв'язати відносини Staff_Inspection з метою визначення імені співробітника, що виконує, перевірку стану даного об'єкта нерухомості.
