- •39 Інформаційні системи та субд Історія розвитку
- •Основні функції сучасної субд
- •Моделі даних
- •Ранні підходи до організації бд
- •Принципи концептуального проектування
- •Базові поняття моделі «Сутність-зв'язок»
- •Реляційна модель даних Базові поняття реляційної моделі даних
- •Властивості відношень
- •Реляційна модель даних: три складові
- •Проектування рбд за допомогою концепції функціональних залежностей Поняття функціональної залежності
- •Друга і третя нф. Алгоритм декомпозиції
- •Нормальна форма Бойса-Кодда
- •Багатозначні залежності. Четверта нормальна форма
- •Надлишкові фз. Мінімальне покриття
- •Перетворення концептуальної моделі в реляційну
- •1:*, Кп багатозв'язкової суті є необов'язковим.
- •Перетворення відношень супертип - підтип
- •Приклад проектування рбд на основі концептуальної моделі
- •Лабораторний практикум по проектуванню рбд Лабораторна робота №1
- •Лабораторна робота №2
- •Лабораторна робота № 3
- •Контрольні завдання по проектуванню рбд
Друга і третя нф. Алгоритм декомпозиції
DEF. Відношення знаходиться в Другій Нормальній Формі (2НФ), якщо воно знаходиться в 1НФ і з нього виключені всі функціонально неповні залежності.
DEF. БД знаходиться в Другій Нормальній Формі (2НФ), якщо всі її відношення знаходяться в 2НФ.
DEF. Відношення знаходиться в Третій Нормальній Формі (3НФ), якщо воно знаходиться в 2НФ і з нього виключені всі транзитивні функціональні залежності.
DEF. БД знаходиться в Третій Нормальній Формі (3НФ), якщо всі її відношення знаходяться в 3НФ.
Основним прийомом нормалізації відношення є декомпозиція без втрат. Опишемо коротко загальний алгоритм декомпозиції. Скорочено аномальну ФЗ називатимемо неповну або транзитивну залежність.
1. Для кожного детермінанта аномальної функціональної залежності виписується своє відношення з цим детермінантом як ПК відношення.
2. Виписується відношення зв'язку, в яке включаються всі атрибути, що не увійшли до відношень з пункту 1, плюс до них всі ПК відношень з пункту 1 (поля зв'язку).
Слід пам'ятати, що нормалізація 1НФ проводиться послідовно 1НФ —» 2НФ —» 3НФ, тобто спочатку проводиться декомпозиція 1НФ по всіх функціонально неповних залежностях, а потім, отримані відношення розбиваються з метою позбавлення від транзитивних залежностей.
Застосуємо цей алгоритм до відношенню ВИКЛАДАЧ_ДИСЦИПЛІНА.
Приведемо відношення до 2НФ, тобто позбавимося від функціонально неповних залежностей:
Назва предмета → К-сть годин
Особистий номер → <Прізвище, Посада, Кафедра, Оклад, Телефон>
В результаті отримаємо три відношення:
ВИКЛАДАЧ = <Особистий номер, Прізвище, Посада, Оклад, Кафедра, Телефон>;
ПРЕДМЕТ = <Назва предмету, К-сть годин>;
НАВАНТАЖЕННЯ = <Особистий номер (FK), Назва предмету(FK)>
Знаком FK позначені поля зв’язку, що називаються зовнішніми ключами (foreign key).
Два останніх відношення не містять транзитивних залежностей, тому знаходяться в 3НФ. Відношення ВИКЛАДАЧ містить три транзитивних залежності:
Посада → Оклад;
Кафедра → Телефон;
Телефон → Кафедра.
Примінимо алгоритм декомпозиції для цих ФЗ. Строге слідування алгоритму потребує розбиття відношення ВИКЛАДАЧ на чотири
ТАРИФНА_СІТКА = <Посада, Оклад>
ТЕЛ_ДОВ1 = <Кафедра, Телефон (FK)>
ТЕЛ_ДОВ2 = <Телефон, Кафедра (FK)>
ВИКЛАДАЧ = <Особистий номер, Прізвище, Посада, Кафедра (FK)>.
В останнє відношення замість атрибуту Кафедра можна включити атрибут Телефон. Включення обох атрибутів у відношення ВИКЛАДАЧ надлишково. Більш того, можна в результаті аналізу наочної області і переговорів із замовником БД відмовитися від однієї сторони взаємно-однозначної залежності. Тоді відповідне відношення ТЕЛ_ДОВ1 або ТЕЛ_ДОВ2 пропаде. Проте якщо необхідно зберегти в схемі РБД обидві залежності, то доведеться залишити обидва відношення.
В результаті 3НФ РБД ВИКЛАДАЧ_ПРЕДМЕТ складається з шести відношень
ПРЕДМЕТ = <Назва предмету, К-сть годин>;
НАВАНТАЖЕННЯ = <Особистий номер (FK), Назва предмету (FK)>
ТАРИФНА_СІТКА = <Посада, Оклад>
ТЕЛ_ДОВ1 = <Кафедра, Телефон (FK)>
ТЕЛ_ДОВ2 = <Телефон, Кафедра (FK)>
ВИКЛАДАЧ = <Особистий номер, Прізвище, Посада (FK), Кафедра (FK)>.