- •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нф) Відношення без залежностей з'єднання.
- •Питання
Властивості з'єднання без втрат і збереження залежності
Вище було продемонстровано, що відношення Staff_Branch піддане аномаліям відновлення і, щоб уникнути цих аномалій, найкраще виконати його декомпозицію на окремі відносини Staff і Branch. Однак процес декомпозиції має дві важливих властивості, які варто враховувати. Перше з них - це властивість з'єднання без утрат (lossless-join), що дозволяє відновити будь-як кортеж вихідного відношення, використовуючи відповідні кортежі менших відносин, отриманих у результаті декомпозиції. Друге - властивість збереження залежності (dependency preservation), що дозволяє зберегти обмеження, накладені на вихідне відношення, за допомогою накладення деяких обмежень на кожне з менших відносин, отриманих після декомпозиції. Інакше кажучи, у результаті відпадає необхідність виконання з'єднання результуючих відносин з метою перевірки того, чи не порушується обмеження, накладене на вихідне відношення.
6.3. Функціональні залежності Функціональна залежність (functional dependency) описує зв'язок між атрибутами і є одним з основних понять нормалізації.
У цьому розділі приводиться визначення даного поняття, а в наступних - опис його взаємозв'язку з процесами нормалізації відносин бази даних.
6.3.1. Визначення функціональної залежності
Функціональна залежність описує зв'язок між атрибутами відносини. Наприклад, якщо у відношенні R, що містить атрибути А и В, атрибут У функціонально залежить від атрибута А (що позначається як А->У), те кожне значення атрибута А зв'язано тільки з одним значенням атрибута В. (Причому кожний з атрибутів А и В може складатися з одного чи декількох атрибутів). Функціональна залежність є значеннєвим (чи семантичним) властивістю атрибутів відносини. Семантика відносини вказує, як його атрибути можуть бути зв'язані один з одним, а також визначає функціональні залежності між атрибутами у виді обмежень, накладених на деякі атрибути. Розглянемо відношення с. атрибутами А и В, де атрибут У функціонально залежить від атрибута А. Якщо нам відоме значення атрибута А, те при розгляді відносини з такою залежністю, у будь-який момент часу у всіх рядках цього відношення, що містять зазначене значення атрибута А, ми знайдемо те саме значення атрибута В. Таким чином, якщо два рядки мають те саме значення атрибута А, те вони обов'язково мають одне і те ж значення атрибута В. Однак для заданого значення атрибута В може існувати кілька різних значень атрибута А. Залежність між атрибутами А и В можна схематично представити у виді діаграми, показаної на мал. 6.1.
Детермінант. Детермінантом функціональної залежності називається чи атрибут група атрибутів, розташована на діаграмі функціональної залежності ліворуч від символу стрілки.
При наявності функціональної залежності чи атрибут група атрибутів, розташована на її діаграмі ліворуч від символу -> стрілки, називається детермінантом (determinant). Наприклад, на мал. 6.1 атрибут А є детермінантом атрибута В.
Далі в цій главі ми будемо ігнорувати тривіальні (trivial) функціональні залежності, тобто залежності типу А -> У, де атрибут У залежить від деякої підмножини атрибута А. Розглянемо наступні приклади функціональних залежностей.