2 нормальная форма
Сущность находится во второй нормальной форме, если она находится в первой нормальной форме и в ней отсутствуют неключевые атрибуты, зависящие от части первичного ключа.
Если сущность имеет простой первичный ключ (1 атрибут) и находится в 1 нормальной форме, то она автоматически находится и во 2 нормальной форме.
Для приведения сущности ко 2-ой нормальной форме необходимо:
1) Выделить неключевые атрибуты, зависящие от одной и той же части первичного ключа
2) Поместить эти атрибуты в новую сущность
3) Установить с новой сущностью связи типа 1:М
4) Повторить указанные выше действия, если это возможно
Приведение ко 2-ой нормальной форме позволяет избежать следующих аномалий:
1) Аномалия вставки: невозможно ввести данные о сотруднике, если он в данный момент не руководит ни одним проектом
2) Аномалия обновлений: если сотрудник руководит несколькими проектами и данные о сотруднике меняются, то необходимо корректировать несколько кортежей сущности проекта. Если выполнить нормализацию, то достаточно ввести изменения лишь в 1 кортеж сущности сотрудника.
3) Аномалия удаления: если сотрудник временно прекращает руководство проекта, то данные о нем теряются
4) Причиной этих аномалий является избыточность данных, обусловленная тем, что в одной сущности хранится разнородная информация (о проектах и сотрудниках), а это, в свою очередь, говорит о неадекватности модели данных той предметной области, которая исследуется и моделируется. БД, основанная на такой модели будет работать неправильно.
26. Нормализация данных. Третья нормальная форма и нормальная форма Кодда-Бойса.
Нормализация – процесс проверки и организации сущностей, в результате которых устраняются избыточные копии данных и тем самым устраняется возможность появления противоречивых данных, т. к. информация о факте должна храниться в одном месте.
Процесс нормализации – постепенное приведение сущности к нормальным формам.
Сущность находится в 3-й нормальной форме, если она находится во 2-й нормальной форме, и между ее не ключевыми атрибутами отсутствует функциональная зависимость.
Сущность находится в 3-й нормальной форме, если она находится во 2-й и каждый ее неключевой атрибут нетранзитивно зависит от первичного ключа.
Транзитивная зависимость:
Т. о. можно сказать, что в 3-й нормальной форме, каждый неключевой атрибут функционально зависит только от всего первичного ключа и ни от чего другого.
Для приведения сущности к 3-й нормальной форме необходимо:
1) Выделить неключевые атрибуты, которые функционально зависят от одного и того же неключевого атрибута
2) Поместить эти атрибуты в новую сущность
3) Установить в новой сущности связь типа 1:М
4) Повторить указанные выше действия, если это возможно
После приведения в 3-й нормальной форме получим:
Приведение в 3-й форме позволяет избежать след. аномалий:
1) Аномалия вставки: невозможно ввести данные об окладе, если соответствующую должность не занимает ни один сотрудник
2) Если должность занимает несколько сотрудников и оклад по должности меняется, то необходимо корректировать несколько кортежей сущности сотрудник; если выполнить нормализацию, то достаточно внести изменения лишь в 1 кортеж сущности должность.
3) Если удалить сотрудника, занимающего уникальную должность, то данные об окладе теряется.
Причиной этих аномалий является избыточность данных, обусловленная тем, что в одной и той же сущности сотрудник хранится информация и о сотрудниках и о должностных окладах.