Зависимость, при которой каждый неключевой атрибут зависит от всего составного ключа и не зависит от его частей, называется полной функциональной зависимостью. Если атрибут А зависит от атрибута В, а атрибут В зависит от атрибута С (С ’ В ’ А), но обратная зависимость отсутствует, то зависимость А от С называется транзитивной.
Многозначная зависимость. Говорят, что один атрибут отношения многозначно определяет другой атрибут того же отношения, если для каждого значения первого атрибута существует множество соответствующих значений второго атрибута. Многозначные зависимости могут быть:
· один-ко-многим (1:М);
· многие-к-одному (М:1);
· многие-ко-многим (М:М).
Каждая ступень процесса нормализации приводит схему отношений в последовательные нормальные формы. Для каждой ступени имеются наборы ограничений. Выделяют следующую последовательность нормальных форм:
· первая нормальная форма (1НФ);
· вторая нормальная форма (2НФ);
· третья нормальная форма (3НФ);
· усиленная 3НФ или нормальная форма Бойса-Кодда (БКНФ);
· четвертая нормальная форма (4НФ);
· пятая нормальная форма (5НФ).
Отношение находится в первой нормальной форме (1НФ), когда каждая строка содержит только одно значение для каждого атрибута (столбца), то есть все атрибуты отношения имеют единственное значение (являются атомарными).
В столбце Квалификация ненормализованной табл. 13 содержатся списки значений (С, Java и т. д.). Чтобы привести схему к 1НФ, необходимо разместить в этом столбце атомарные значения. Самый простой способ заключается в выделении по одной строке на каждый элемент квалификации (табл. 14).
Таблица 14
|
Код сотрудника |
ФИО |
Должность |
Номер отдела |
Наименование отдела |
Квалификация |
|
7513 |
Иванов И.И. |
Программист |
128 |
Отдел проектирования |
C |
|
7513 |
Иванов И.И. |
Программист |
128 |
Отдел проектирования |
Java |
|
9842 |
Сергеева С.С. |
Администратор БД |
42 |
Финансовый отдел |
DB2 |
|
6651 |
Петров П.П. |
Программист |
128 |
Отдел проектирования |
VB |
|
6651 |
Петров П.П. |
Программист |
128 |
Отдел проектирования |
Java |
|
9006 |
Николаев Н.Н. |
Системный администратор |
128 |
Отдел проектирования |
Windows |
|
9006 |
Николаев Н.Н. |
Системный администратор |
128 |
Отдел проектирования |
Linux |
Такое решение далеко от идеального, поскольку порождает очевидную избыточность данных – для каждой комбинации сотрудник-квалификация приходится хранить все характеристики сотрудника.
предыдущаяследующая