Таблица 15
|
Код сотрудника |
ФИО |
Должность |
Номер отдела |
Наименование отдела |
|
7513 |
Иванов И.И. |
Программист |
128 |
Отдел проектирования |
|
9842 |
Сергеева С.С. |
Администратор БД |
42 |
Финансовый отдел |
|
6651 |
Петров П.П. |
Программист |
128 |
Отдел проектирования |
|
9006 |
Николаев Н.Н. |
Системный администратор |
128 |
Отдел проектирования |
Таблица 16
|
Код сотрудника |
Квалификация |
|
7513 |
C |
|
7513 |
Java |
|
9842 |
DB2 |
|
6651 |
VB |
|
6651 |
Java |
|
9006 |
Windows |
|
9006 |
Linux |
Отношение находится в третьей нормальной форме (ЗНФ), если оно находится во 2НФ и ни один из его неключевых атрибутов не связан функциональной зависимостью с любым другим неключевым атрибутом. Атрибуты, зависящие от других неключевых атрибутов, нормализуются путем перемещения зависимого атрибута и атрибута, от которого он зависит, в новое отношение.
Формально, для приведения схемы в 3НФ необходимо исключить все транзитивные зависимости. Схема отношения сотрудники (табл. 15) содержит следующие функциональные зависимости: Код сотрудника ’ ФИО, Должность, Номер отдела, Наименование отдела и Номер отдела ’ Наименование отдела.
Первичным ключом является Код сотрудника, и все атрибуты полностью функционально зависимы от него (первичный ключ определяется единственным атрибутом). При этом Номер отдела ключом не является.
Функциональная зависимость Код сотрудника ’ Наименование отдела является транзитивной, поскольку содержит промежуточный шаг (зависимость Номер отдела ’ Наименование отдела). Для приведения в 3НФ необходимо исключить эту транзитивную зависимость, декомпозируя отношение на два: сотрудники (Код сотрудника, ФИО, Должность, Номер отдела) и отделы (Номер отдела, Наименование отдела) (табл. 17–18).
предыдущаяследующая