 
        
        3.3 Побудова схеми реляційної бази даних у третій нормальній формі
База даних (таблиця 3.1), що буде реалізована, представлена в 1 НФ, так як вона:
- 
не має однакових кортежів; 
- 
кортежі не впорядковані; 
- 
атрибути не впорядковані та відрізняються по найменуванню; 
- 
всі визначення атрибутів атомарні. 
Таблиця 3.1 - База даних у 1НФ
| Назва підприємства | Адреса підприємства | Телефон підприємства | № відділу | Назва відділу | Табельний № службовця * | ПІБ службовця | Стать | Дата народження | Адреса | № посади | Назва посади | Оклад | № лікарні | Дата початку лікарняного * | Дата закінчення лікарняного | Діагноз хвороби | 





































 
 


 
 
Первинний ключ: «Табельний № службовця» та «Дата початку лікарняного».
Відношення знаходиться в 2НФ тоді і тільки тоді, коли воно знаходиться в 1 НФ та кожен не ключовий атрибут повністю функціонально залежить від первинного ключа.
Для приведення відношення до 2НФ необхідно замінити T(K1,K2,F1,F2), первинний ключ (K1,K2), функціональна залежність K1->F1 на T1(K1,F1) – табл. 3.2, первинний ключ K1 та T2(K1,K2,F2) – табл. 3.3, первинний ключ (K1,K2).
В даному відношенні поля «Назва підприємства», «Адреса підприємства», «Телефон підприємства», «№ відділу», «Назва відділу», «ПІБ службовця», «Стать», «Дата народження», «Адреса», «№ посади», «Назва посади», «Оклад» залежать від частини первинного ключа (від поля «Табельний № службовця») тому виносяться в окрему таблицю (табл. 3.2).
Відношення у 2НФ представляють табл. 3.2 та табл. 3.3.
Таблиця 3.2 – Підприємства-Відділи-Службовці-Посади
| Назва підприємства | Адреса підприємства | Телефон підприємства | № відділу | Назва відділу | Табельний № службовця * | ПІБ службовця | Стать | Дата народження | Адреса | № посади | Назва посади | Оклад | 
Таблиця 3.3 – Лікарняні аркуші
| Табельний № службовця * | № лікарні | Дата початку лікарняного * | Дата закінчення лікарняного | Діагноз хвороби | 
Відношення знаходиться в 3НФ тільки в тому випадку, якщо воно знаходиться в 2НФ та кожен не ключовий атрибут не транзитивно залежить від первинного ключа.
Для приведення відношення до 3НФ необхідно замінити T(K, F1, F2) первинний ключ K, транзитивна функціональна залежність F1->F2 на T1(F1, F2) первинний ключ F1, та T2(K, F2) первинний ключ К.
У табл. 3.2 від первинного ключа «Табельний № службовця» транзитивно через поле «№ відділу» залежать «Назва відділу», «Назва підприємства», «Адреса підприємства», «Телефон підприємства», через поле «№ посади» транзитивно залежать поля «Назва посади» та «Оклад». Тому відношення розбивається на табл. 3.4, табл. 3.5 та табл. 3.6.
Таблиця 3.4 – Посади
| № посади * | Назва посади | Оклад | 
Таблиця 3.5 – Відділи-Підприємства
| Назва підприємства | Адреса підприємства | Телефон підприємства | № відділу * | Назва відділу | 
Таблиця 3.6 – Співробітники
| Табельний № службовця * | ПІБ | Стать | Дата народження | Адреса | № відділу | № посади | 
У табл. 3.5 залишився транзитивний зв’язок між ключовим полем «№ відділу» та полями «Адреса підприємства» і «Телефон підприємства» через поле «Назва підприємства», тому повторюємо попередню операцію. Як результат – табл. 3.5 розбивається на табл. 3.7 та табл. 3.8.
Таблиця 3.7 – Підприємства
| Назва підприємства * | Адреса підприємства | Телефон підприємства | 
Таблиця 3.8 – Відділи
| № відділу * | Назва відділу | Назва підприємства | 
Відношення, що знаходиться в 3НФ представлено сукупністю таблиць – «Співробітники» (Таблиця 3.6), «Лікарняні аркуші» (Таблиця 3.3), «Підприємства» (Таблиця 3.7), «Відділи» (Таблиця 3.8) та «Посади» (Таблиця 3.4).
Схема бази даних, що реалізована в СУБД MS Access, представлена на рис. 3.7.

Рисунок 3.7 – Схема бази даних
