Нормальная форма Бойса-Кодда. Функциональные зависимости между атрибутами.
Этот этап проектирования называется нормализацией отношения.
Для того, чтобы, не вдаваясь в детали, узнать нуждается ли отношение в нормализации, необходимо определить находится ли оно в нормальной форме Бойса-Кодда(НФБК). Если отношение находится в НФБК, то оно почти наверняка не требует нормализации. А для того, чтобы это выяснить, необходимо определить функциональные зависимости между всеми атрибутами отношения, как показано на схеме функциональных зависимостей.
Зная №поезда, всегда можно однозначно определить подход, с которого он прибыл. Следовательно, атрибут Подход функционально зависит от атрибута №поезда. Или наоборот атрибут №поезда является детерминантом атрибута Подход. На схеме функциональных зависимостей это показано стрелкой, направленной от атрибута №поезда к атрибуту Подход.
Задавшись подходом, невозможно однозначно определить №поезда, прибывшего с данного подхода, потому что таких поездов может быть несколько. Следовательно, обратной функциональной зависимости нет: атрибут №поезда функционально не зависит от атрибута Подход.
Аналогично, определяем функциональные зависимости между остальными атрибутами универсального отношения.
На схеме представлены не все функциональные зависимости.
Например: атрибут Подход функционально зависит от атрибута Инв№вагона. Это избыточная функциональная зависимость и на схеме стрелочкой она не показана, потому что эта зависимость может быть выведена путем следующих несложных логических рассуждений.
Если атрибут Подход функционально зависит от атрибута №поезда, а атрибут №поезда в свою очередь функционально зависит от атрибута Инв№вагона, то атрибут Подход функционально зависит от атрибута Инв№вагона.
Таким образом, функциональные зависимости, которые могут быть выведены через другие функциональные зависимости, называются избыточными и на схеме функциональных зависимостей не показываются.
В правом нижнем углу схемы приводится список детерминантов отношения. А в левом нижнем – список возможных ключей отношения.
В нашем примере возможным ключом универсального отношения является атрибут Инв№вагона.
Возможные ключи | Детерминанты |
<Инв№вагона> | <№поезда> |
<Момент_ок_роспуска> | |
<Инв№вагона> | |
После этого сравниваем список детерминантов и список возможных ключей. Списки не совпадают: т.е. не все возможные ключи являются детерминантами. Следовательно, отношение не находится в НФБК.
Нормализовать отношение будем при помощи ER-метода.
4. Выделение сущностей из ненормализованного отношения и установление связи между ними.
Выделим сущности ПОЕЗД и ВАГОН и установим между ними связь СОСТОИТ_ИЗ.
Сущность – это множество однородных объектов (реального мира), отличающихся друг от друга и допускающие их однозначную идентификацию.
Связь – это зависимость между сущностями. (В данной работе будем рассматривать только бинарные связи, т.е. связи между двумя сущностями.)
Атрибут – это свойство сущности.
Действительно, сущность ПОЕЗД имеет экземпляры, которые представлены в универсальном отношении, и которые можно отличить друг от друга или идентифицировать по номеру поезда. А сущность ВАГОН состоит из вагонов, которые тоже можно идентифицировать.
Между этими сущностями действительно существует связь СОСТОИТ_ИЗ, т.к. поезда состоят из вагонов. (Название связи чаще всего является глаголом.)
Графически связь СОСТОИТ_ИЗ между сущностями ПОЕЗД и ВАГОН может быть представлена в виде:
1) диаграммы ER-экземпляров;
2) диаграммы ER-типа.