Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Бази даних КП Скачкова.doc
Скачиваний:
18
Добавлен:
27.10.2018
Размер:
261.12 Кб
Скачать

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 – Схема бази даних