Skip to content

Latest commit

 

History

History
16 lines (10 loc) · 2.43 KB

README.md

File metadata and controls

16 lines (10 loc) · 2.43 KB

Нормализация ER-диаграммы

В данном упражнении необходимо проанализировать ER-диаграмму, построенную в практической работе №2, на соответствие правилам нормализации.

lab2_er_diagram

Проверка на соответствие первой нормальной форме (1NF)

Все отношения находятся в 1NF, так как все атрибуты являются атомарными (каждый кортеж содержит только одно значение для каждого из атрибутов, а не список).

Проверка на соответствие второй нормальной форме (2NF)

Сущность роль (role) не соответствует 2NF, так как атрибут name зависит только от атрибута role_id, то есть от части составного ключа. Чтобы исправить это, выделим 13-ую сущность функция (function), которая будет связана с ролью через отдельную таблицу role_with_function (одна связь многие-ко-многим преобразуется в две связи один-ко-многим).

Сущность место (seat) также не соответствует 2NF, так как атрибуты number и type зависят только от атрибута seat_id. Кроме того, логичнее связывать место не с идентификатором вагона coach_id, а с его типом. Таким образом, выделим 14-ую сущность тип вагон (coach_type), которая будет связана с местом через отдельную таблицу coach_type_with_seat (одна связь многие-ко-многим преобразуется в две связи один-ко-многим).

lab3_er_diagram_2nf

Теперь все отношения находятся в 2NF, так как у всех сущностей все атрибуты зависят от первичного ключа целиком, а не от какой-то его части.