Моделирование взаимосвязей между сущностями

       

Нормализация


Для проверки того, что модель взаимосвязей между сущностями, все сущности которой определены уникально, является полностью нормализованной и таким образом укладывается в правила Третьей формы нормализации, выполним следующие тесты.

Предварительное действие

Убедитесь в том, что все сущности имеют уникальные идентификаторы в виде комбинации атрибутов и/или связей.

Первая форма нормализации

Удалите повторяющиеся атрибуты или группы атрибутов.

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

Пусть нам нужно убрать, например, группы атрибутов для членов экипажа с номерами 1,2,3. Это приведет к созданию новой сущности ЧЛЕН ЭКИПАЖА, имеющей атрибуты "имя" и "роль" и связь типа "многие к одному" с исходной сущностью РЕЙС. (См. путь 1NF на схеме.)

Первая форма нормализации, таким образом, представляет собой механизм обнаружения пропущенных сущностей и связей.

Вторая форма нормализации

Удалите атрибуты, зависящие только от части уникального идентификатора.

Если сущность имеет уникальный идентификатор, состоящий из нескольких атрибутов и/или связей, и если значение какого-нибудь атрибута (не входящего в него) зависит только от какой-то части идентификатора (но не от всего идентификатора целиком), тогда этот атрибут и эта часть (от которой он зависит) должны составить основу новой сущности. Новая сущность идентифицируется перешедшим к ней фрагментом уникального идентификатора исходной сущности и имеет связь с ней типа "один ко многим".

Так, например, значение атрибута "номер рейса" не зависит от даты и времени вылета. Мы получим сущность АВИАМАРШРУТ с фиксированным номером рейса, которому соответствуют один или несколько РЕЙСОВ, совершенных за период времени. (См.
путь 2NF на схеме.)

Вторая форма нормализации так же, как и первая, позволяет находить пропущенные сущности и связи.

Рисунок A-1. Первая и вторая формы нормализации



Третья форма нормализации

Удалите атрибуты, значения которых зависят от атрибутов, не входящих в уникальный идентификатор.

Если значение принадлежащего сущности атрибута зависит от другого атрибута, не входящего в уникальный идентификатор, эти атрибуты должны составить основу для новой сущности, которая будет связана с исходной сущностью отношением типа "один ко многим". Уникальным идентификатором для новой сущности будет атрибут, определяющий значение другого атрибута.

Так, например, название авиалинии, тип самолета и количество мест в самолете не зависят от номера рейса, выполняемого по АВИАМАРШРУТУ. Присвоение авиалинии названия - прерогатива скорее ее президента, а не тех, кто занимается планированием маршрутов и рейсов. (См. путь 3NF на схеме.)

Третья форма нормализации завершает поиск пропущенных сущностей и связей.


Содержание раздела