Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD-КН1.doc
Скачиваний:
18
Добавлен:
27.04.2019
Размер:
7.07 Mб
Скачать

4.3. Друга нормальна форма

Друга нормальна форма визначається знаходженням відношення у першій нормальній формі і повною функціональною залежністю неключових атрибутів від складного ключа. Переведення до другої нормальної форми здійснюється шляхом розкладу відношення на проекції, у яких будуть виконуватися вимоги повної функціональної залежності.

У реляційній алгебрі другу нормальну форму визначають так: Відношення знаходиться у другій нормальній формі, якщо воно знаходиться у першій нормальній формі і кожний не ключовий атрибут повністю залежить від первинного ключа (не може бути залежності від частини ключа).

Друга нормальна форма існує тільки для відношень, які мають складний первинний ключ. Нехай в таблиці ЗМІННИЙ ЖУРНАЛ в базі даних хлібзаводу в якості первинного ключа використовують два атрибути Дата та Зміна. Сформували складний ключ, який для данної таблиці є унікальним. Припустимо завод працює у три зміни. Наприкінці третьої зміни майстер має підбити підсумок за поточну дату, тобто скільки використано сировини, скільки виготовлено продукції загалом за три зміни. Результати передбачено зберігати в тій же таблиці Змінний Журнал. Створено атрибути: Сировини_всього, Продукції_всього. В таблиці на кожну зміну існує окремий запис. Дані про ітогові показники за дату мають міститися за логікою в третьому записі. А чим же заповнювати відповідні поля в двох попередніх записах? Тут ми бачимо ненормалізовану таблицю, тому що атрибути Сировини_всього та Продукції_всього залежать тільки від Дати і не залежать від Зміни, тобто залежать тільки від частини ключа, а не ключа вцілому. Для приведення бази до другої нормальної форми слід створити додаткову таблицю ДАНІ_ЗА_ДОБУ і туди заносити підсумки за добу.

Приклад: таблиця ВИКЛАДАЧ на рис. 4.1. побудована з порушенням другої нормальної форми тому, що від атрибута кафедра залежить тільки атрибут дисципліни, а всі інші атрибути мають відношення тільки до особи викладача. Для приведення таблиці до другої нормальної форми слід винести атрибут кафедра в окрему таблицю КАФЕДРА і утворити зв‘язок за рахунок зовнішнього ключа. Тоді, для уніфікації ключів можна створити в таблиці ВИКЛАДАЧ сурогатний ключ код викладача і надати йому тип даних лічильник.

4.4. Третя нормальна форма

Використовуючи термінологію реляційної алгебри, перебування відношення у третій нормальній формі можна визначити наступним чином:

Відношення перебуває у третій нормальній формі тоді і тільки тоді, коли воно знаходиться у другій нормальній формі і не вміщує транзитивних залежностей між атрибутами.

Функціональна залежність між атрибутами А і В відношення R називається транзитивною, позначається R.A -> R.B, коли існує набір атрибутів С такий, що:

  1. С не є підмножиною А;

  2. С не включає в себе В;

  3. Існує функціональна залежність R.A -> R.C;

  4. Не існує функціональної залежності R.C. ->R.А;

  5. Існує функціональна залежність R.C. ->R.B.

Прикладом транзитивної залежності можуть бути дані з картки обліку співробітників у відділі кадрів підприємства. У картці обліку співробітника, як правило, відображають його Табельний номер, ПІБ, Посада, Оклад, Відділ та інші особисті дані. Наприклад, у відношенні

СПІВРОБІТНИК (Табельний номер, Прізвище І.П., Посада, Оклад, Відділ, Телефон)

є транзитивні функціональні залежності:

Т абельний номер Відділ Телефон

Т абельний номер Посада Оклад

Транзитивною залежністю є така, коли виконуються умови Табельний номер Відділ і Відділ Телефон, а зворотня залежність відсутня. Табельний номер Посада і Посада Оклад

В даному прикладі Телефон залежить тільки від Відділу і не залежить від особи, яка їм користується. Оклад також залежить тільки від Посади і не залежить від Табельного номеру. Між цими атрибутуми існує транзитивна залежність. Для її усунення атрибути Посада і Оклад слід винести в окрему таблицю, яка має відповідати штатному розкладу і зв‘язати її з таблицею СПІВРОБІТНИК атрибутом Код посади. Аналогічно поступимо з атрибутами Відділ та Телефон.

Наявність транзитивних залежностей призводить до дублювання інформації ( у нашому прикладі, про телефон, оклад), контролю надлишковості і т.п. Для нашого прикладу нормалізованими виходять відношення:

СПІВРОБІТНИК (Табельний номер, Прізвище І.П., код посади, код відділу)

ПОСАДА (код посади, Назва посади, Оклад)

ВІДДІЛ (код відділу, Назва відділу, Телефон)

Рівень нормалізації відношень на практиці залежить від його семантики, заданої функціональними зв’язками.

Приклад: У таблиці ВИКЛАДАЧ з рис. 4.1. якраз можемо спостерігати порушення третьої нормальної форми між атрибутами ПІБ, посада та оклад.

Схему бази даних приведеної до 3 нормальної форми наведено на рис. 4.2.

Рис. 4.2. База даних ВИКЛАДАЧ приведена до третьої нормальної форми

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]