- •1. Критерії якості логічних моделей бд
- •2. Універсальне відношення як основа реляційного представлення даних
- •3. Проектування реляційних бд із застосуванням нормалізації. Поняття нормальної форми
- •4. Функціональні залежності
- •5. Різновиди нормальних форм. Перша нормальна форма
- •6. Друга нормальна форма. Приведення моделі бд до другої нормальної форми.
- •7. Третя нормальна форма. Приведення моделі бд до третьої нормальної форми
- •8. Алгоритм нормалізації (приведення до 3нф)
- •9. Переваги та недоліки різних ступенів нормалізації
- •10. Коректність процедури нормалізації. Теорема Хеза
7. Третя нормальна форма. Приведення моделі бд до третьої нормальної форми
Визначення третьої нормальної форми можна дати або через поняття транзитивної залежності, або через поняття взаємно незалежних атрибутів. Нагадаємо визначеннятранзитивної функціональної залежності:
Визначення. Нехай X, Y, Z - три атрибути деякого відношення. При цьому X --> Y і Y --> Z, але зворотна відповідність відсутня, тобто Z -/-> Y і Y -/-> X. Тоді Z транзитивно залежить від X.
Введемо визначення взаємної незалежності атрибутів:
Визначення. Атрибути називаються взаємно незалежними, якщо жоден з них не є функціонально залежним від іншого.
Тоді можна дати визначення третьої нормальної форми:
Визначення. Відношення R знаходиться в третій нормальній формі (3НФ) тоді і тільки тоді, коли відношення знаходиться в 2НФ і всі неключові атрибути взаємно незалежні.
або, через транзитивну залежність
Визначення (у припущенні існування одного ключа). Відношення знаходиться в 3NF у тім і тільки в тому випадку, якщо воно знаходиться в 2NF і кожен неключовий атрибутнетранзитивно залежить від первинного ключа.
Для виключення транзитивної залежності у відношенні «Діти» потрібно зробити декомпозицію відношення R4 у два відношення R5 і R6.
Відношення R5:
Таб_номер |
ПІБ |
Оклад |
Офіс |
211 |
Іванов І.І. |
200 |
12 |
358 |
Петрук К.М. |
300 |
12 |
360 |
Сидоров О.Б. |
250 |
5 |
Відношення R6:
Офіс |
Телефон |
12 |
6-16 |
5 |
3-06 |
У результаті перетворень маємо три відношення в 3NF, вільні від відзначених аномалій:
Відношення R3 Первинний ключ: Таб_номер, Ім'я дитини
Функціональні залежності: Таб_номер,
Ім'я_дитини ->Вік
Відношення R5 Первинний ключ: Таб_номер
Функціональні залежності: Таб_номер -> ПІБ
Таб_номер -> Оклад
Таб_номер -> Офіс
Відношення R6 Первинний ключ: Офіс
Функціональні залежності: Офіс -> Телефон
Базовий приклад. Відношення СПІВРОБІТНИКИ_ВІДДІЛИ також не знаходиться в 3НФ, тому що є функціональна залежність неключових атрибутів (залежність номера телефону від номера відділу):
Н_ВІД -> ТЕЛ
Для того, щоб усунути залежність неключових атрибутів, потрібно зробити декомпозицію відношення на кілька відношень. При цьому ті неключові атрибути, що є залежними,виносяться в окреме відношення.
Відношення СПІВРОБІТНИКИ_ВІДДІЛИ декомпонуємо на два відношення - СПІВРОБІТНИКИ, ВІДДІЛИ.
Відношення СПІВРОБІТНИКИ (Н_СПІВРОБ, ПРІЗ, Н_ВІД):
Функціональні залежності:
Залежність атрибутів, що характеризують співробітника від табельного номера співробітника:
Н_СПІВРОБ -> ПРІЗ
Н_СПІВРОБ -> Н_ВІД
Н_СПІВРОБ -> ТЕЛ
Н_СПІВРОБ |
ПРІЗ |
Н_ВІД |
1 |
Іванов |
1 |
2 |
Петров |
1 |
3 |
Ситник |
2 |
Таблиця 5 Відношення СПІВРОБІТНИКИ
Відношення ВІДДІЛИ (Н_ВІД, ТЕЛ):
Функціональні залежності:
Залежність номера телефону від номера відділу:
Н_ВІД -> ТЕЛ
Н_ВІД |
ТЕЛ |
1 |
11-22-33 |
2 |
33-22-11 |
Таблиця 6. Відношення ВІДДІЛИ
Звернемо увагу на те, що атрибут Н_ВІД, який не був ключовим у відношенні СПІВРОБІТНИКИ_ВІДДІЛИ, стає потенційним ключем у відношенні ВІДДІЛИ. Саме за рахунок цього усувається надмірність, зв'язана з багаторазовим збереженням тих самих номерів телефонів.
Висновок. Таким чином, усі виявлені аномалії оновлення усунуті. Реляционная модель, що складається з чотирьох відношень СПІВРОБІТНИКИ, ВІДДІЛИ, ПРОЕКТИ, ЗАВДАННЯ, що знаходяться в третій нормальній формі, є адекватною описаній моделі предметної області, і вимагає наявності тільки тих тригерів, що підтримують посилальну цілісність. Такітригери є стандартними і не вимагають великих зусиль у розробці.
