- •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нф) Відношення без залежностей з'єднання.
- •Питання
Лекція 5. Нормалізація.
6.1. Мета нормалізації 2
6.2. Надмірність даних і аномалії відновлення 2
6.2.1. Аномалії вставки 3
6.2.2. Аномалій видалення 4
6.2.3. Аномалії відновлення 4
Властивості з'єднання без втрат і збереження залежності 4
6.3. Функціональні залежності 5
6.3.1. Визначення функціональної залежності 5
Приклад 6.1. Функціональні залежності 6
Приклад 6.2. Функціональні залежності відносини Staff_Branch 6
6.4. Процес нормалізації 7
6.5. Перша нормальна форма (1 НФ) 8
Приклад 6.3. Перша нормальна форма (1НФ) 9
6.6. Друга нормальна форма (2НФ) 11
6.6.1. Повна функціональна залежність 12
Staff_No, SName -> Branch_No 12
6.6.2. Визначення другої нормальної форми 12
Приклад 6.4. Друга нормальна форма (2НФ) 12
6.7. Третя нормальна форма (ЗНФ) 14
6.7.1. Транзитивна залежність 14
Staff_No -> Branch_No і Branch_No -> BAddress 15
6.7.2. Визначення третьої нормальної форми 15
Приклад 6.5. Третя нормальна форма (3НФ) 15
6.8. Нормальна форма Бойса - Кодда (НФБК) 17
6.8.1. Визначення нормальної форми Бойса - Кодда 17
Приклад 6.6. Нормальна форма Бойса-Кодда (НФБК) 18
6.9. Огляд процесу нормалізації (від 1 НФ до НФБК) 20
6.10. Четверта нормальна форма (4НФ) 27
6.10.1. Багатозначна залежність 27
6.10.2. Визначення четвертої нормальної форми 28
6.11. П'ята нормальна форма (5НФ) 29
6.11.1. Залежність з'єднання 29
6.11.2. Визначення п'ятої нормальної форми (5НФ) 29
Резюме 31
Питання 33
Вправи 33
При проектуванні бази даних у реляційній СКБД основною метою розробки логічної моделі даних є створення точного представлення даних, зв'язків між ними і необхідними обмеженнями. Для досягнення цієї мети необхідно, насамперед, визначити придатний набір відносин. Метод, що використовується для рішення останньої задачі, називається нормалізацією (normalization). Нормалізація являє собою варіант висхідного підходу до проектування бази даних, що починається з установлення зв'язків між атрибутами. Однак у методології проектування баз даних, представленої в частині II, "Методологія", використовується спадний підхід, що починається з виявлення основних сутностей і зв'язків, а нормалізація використовується лише як метод перевірки коректності отриманого рішення. У будь-якому випадку дуже важливо правильно розуміти призначення методів нормалізації і способи їхнього ефективного застосування на практиці.
6.1. Мета нормалізації Нормалізація - метод створення набору відносин із заданими властивостями на основі вимог до даних, встановленим у деякій організації.
Процес нормалізації був уперше запропонований Э. Ф. Коддом (Codd, 1972, б). Нормалізація часто виконується у виді послідовності тестів для деякого відношення з метою перевірки його відповідності (чи невідповідності) вимогам заданої нормальної форми. Спочатку були запропоновані тільки три види нормальних форм: перша (1НФ), друга (2НФ) і третя (ЗНФ). Потім Р. Бойсом і Э. Ф. Коддом (Codd, 1974) було сформульовано більш строге визначення третьої нормальної форми, що одержало назву нормальної форми Бойса-Кодда (НФБК). Усі ці нормальні форми засновані на функціональних залежностях, що існують між атрибутами відносини (Maier, 1983).
Слідом за НФБК з'явилися визначення четвертої (4НФ) і п'ятої (5НФ) нормальних форм (Fagin, 1977, 1979). Однак на практиці ці нормальні форми більш високих порядків використовуються вкрай рідко.
У главі 3, "Реляційна модель", відношення було представлено, що складається з деякої кількості атрибутів, а реляційна схема - з деякої кількості відносин. Атрибути можуть групуватися у відносини з утворенням реляційної схеми на основі або здоровому глузді розроблювача бази даних, або за допомогою висновку реляційної схеми з розробленої ER-діаграми. При використанні кожного з цих двох підходів часто потрібно застосовувати деякий формальний метод, що допоможе проектувальнику бази даних знайти оптимальне угруповання атрибутів для кожного відношення в даній схемі.
Процес нормалізації є формальним методом, що дозволяє ідентифікувати відносини на основі їх первинних ключів (чи потенційних ключів, як у випадку НФБК) і функціональних залежностей, що існують між їхніми атрибутами. Проектувальники баз даних можуть використовувати нормалізацію у виді наборів тестів, застосовуваних до окремих відносин з метою нормалізації реляційної схеми до заданої конкретної форми, що дозволить запобігти можливе виникнення аномалій відновлення.
6.2. Надмірність даних і аномалії відновлення
Основна мета проектування реляційної бази даних полягає в групуванні атрибутів у відносини так, щоб мінімізувати надмірність даних і в такий спосіб скоротити обсяг пам'яті, необхідний для фізичного збереження відносин, представлених у виді таблиць. Проблеми, зв'язані з надмірністю даних, можна проілюструвати, порівнявши відносини Staff і Branch, показані в табл. 6.1 і 6.2, з відношенням Staff_Branch, показаним у табл. 6.3. Відношення Staff_Branch є альтернативною формою представлення відносин Staff і Branch. Згадані відносини описуються в такий спосіб:
Staff (Staff_No. SName, SAddress, Position, Salary, Branch_No)
Branch (Branch_No. BAddress, Te_No)
S taff_Branch (Staff_No. SName, SAddress, Position, Salary, Branch No,BAddress, Tel_No)
У відношенні Staff_Branch містяться надлишкові дані, оскільки зведення про відділення компанії повторюються в записах, що відносяться до кожного співробітника даного відділення. На противагу цьому, у відношенні Branch зведення про відділення містяться тільки в одному рядку, а у відношенні Staff повторюється тільки номер відділення компанії (Branch_No), що являє собою місце роботи кожного співробітника. При роботі з відносинами, що містять надлишкові дані, можуть виникати проблеми, що називаються аномаліями відновлення і підрозділяються на аномалії вставки, видалення і модифікації.