Тема 4. Проектування баз даних (09.2013) Лекція 8
8.1. Метод нормальних форм
Процес проектування БД із використанням методу нормальних форм полягає в послідовному переводу відношень з першої нормальної форми в нормальні форми більш високого порядку. Кожна наступна нормальна форма обмежує визначений тип ФЗ, усуває відповідні аномалії і зберігає властивості попередніх нормальних форм тобто має кращі властивості.
Перша нормальна форма.
Відношення знаходиться в 1НФ, якщо всі його атрибути є простими (мають єдине значення).
Вихідне відношення будується так, щоб воно було в 1НФ.
Перевід відношення в наступну нормальну форму здійснюється методом "декомпозиції без втрат". Така декомпозиція забезпечує те, що запити до вихідного відношення і до відношень, отриманих у результаті декомпозиції, дають однаковий результат.
Декомпозиція здійснюється за допомогою операції проекції. Наприклад, у відношенні R(A,B,C,D,E), A,C – ключ, усунення часткової ФЗ А→В дозволить перевести його в наступну нормальну форму. Виконаємо декомпозицію відношення R на два нових відношення R1(A,C,D,E) і R2(А,B). Відношення R2 є проекцією відношення R на атрибути А і В.
Вихідне відношення ВИКЛАДАЧ, має складений ключ ПІБ, Предм, Група і знаходиться в 1НФ - всі атрибути прості. Відповідно до рис. 7.5 б можна виділити часткову залежність атрибутів Стаж, ДСтаж, Каф, Посада, Оклад від ключа - ці атрибути знаходяться у ФЗ від атрибута ПІБ, що є частиною складеного ключа.
Ця часткова залежність від ключа приводить:
1. До явного і неявного надлишкового дублювання даних, наприклад:
повторення зведень про стаж, посаду й оклад викладачів, що проводять заняття в декількох групах і/чи по різних предметах;
повторення зведень про оклади для однієї і тієї ж посади чи про надбавки за однаковий стаж.
2. До проблем редагування даних. Наприклад, зміна посади у викладача Іванова вимагає перегляд всіх кортежів відношення і внесення змін у ті з них, що містять зведення про даного викладача.
Частина надмірності усувається при переводі відношення в 2НФ.
Друга нормальна форма.
Відношення знаходиться в 2НФ, якщо воно знаходиться в 1НФ і кожен неклчевий атрибут функціонально повно залежить від первинного ключа.
Для усунення часткової залежності і переводу відношення в 2НФ необхідно розкласти його на кілька відношень так:
побудувати проекцію без атрибутів, що знаходяться в частковій функціональній залежності від первинного ключа;
побудувати проекції на частині складеного первинного ключа й атрибути, які залежать від цих частин.
У результаті одержимо два відношення R1 і R2 у 2НФ (рис. 8.1). У відношенні R1 первинний ключ є складеним і складається з атрибутів ПІБ. Предм. Група. Даний ключ у відношенні R1 отримано у припущенні, що кожен викладач в одній групі по одному предмету може або читати лекції, або проводити практичні заняття. У відношенні R2 ключ ПІБ.
R1 а) |
|
|||||||||||||||||||||||||||||||||
R2 а)
|
|
|||||||||||||||||||||||||||||||||
Дослідження відношень R1 і R2 показує, що перехід до 2НФ дозволив виключити явну надмірність даних у таблиці R1 - повторення рядків зі зведеннями про викладачів. У R2 як і раніше мається неявне дублювання даних.
Для подальшого удосконалювання відношень необхідно перевести їх в ЗНФ.
Третья нормальная форма.
Визначення 1. Відношення знаходиться в ЗНФ, якщо воно знаходиться в 2НФ і кожен неключовий атрибут нетранзитивно залежить від первинного ключа.
Визначення 2. Відношення знаходиться в ЗНФ у тому випадку, якщо всі неклю-чові атрибути відношення взаємно незалежні і цілком залежать від первинного ключа.
R3 а) |
|
||||||||||||||||||||
R4 |
|
||||||||||||||||||||
R5
Рис. 8.2. Відношення БД у 3НФ |
|
Те, що неключові атрибути цілком залежать від первинного ключа, означає, що дане відношення знаходиться в 2НФ. Взаємна незалежність атрибутів означає відсутність усякої залежності між атрибутами відношення, у тому числі і транзитивної. Отже, друге визначення ЗНФ зводиться до першого визначення.
Якщо у відношенні R1 транзитивні залежності відсутні, то у відношенні R2 вони є: ПІБ→Посада→Оклад, ПІБ→Оклад→Посада, ПІБ→Стаж→ДСтаж.
Транзитивні залежності також породжують надлишкове дублювання даних. Усунемо їх, використовуючи операцію проекції на атрибути, що є причиною транзитивних залежностей. Одержимо відношення R3, R4 і R5, що знаходяться в ЗНФ (рис. 8.2а). Графічно ці відношення представлені на рис. 8.2б. Відношення R2 можна перетворити по-іншому - у відношенні R3 замість атрибута Посада взяти атрибут Оклад,
На практиці побудова ЗНФ схем відношень у більшості випадків є достатнім і на цьому процес проектування реляційної БД закінчується. Дійсно, приведення відношень до ЗНФ у нашому прикладі, привело до усунення надлишкового дублювання.
Якщо у відношенні мається залежність атрибутів складеного ключа від неклю-чових атрибутів, то необхідно перейти до посиленої 3НФ.

б)
б)