Получение предварительных отношений
Следующий шаг проектирования структуры данных заключается в получении предварительных отношений и их предлагаемых первичных ключей. Первичный ключ отношений – атрибут или набор атрибутов, который может быть использован для однозначной идентификации. Данные в БД представляются в виде отношений. Для этого необходимо руководствоваться следующими шестью правилами для бинарных связей: Правило 1. Если степень связи 1:1 и класс принадлежности обеих сущностей обязательный, то такая связь преобразуется в одно отношение, первичным ключом которого становится любой из сущностей. Правило 2. Если степень связи 1:1 и класс принадлежности одной из сущностей обязательный, а другой необязательный, то формируется два отношения, по одному для каждой сущности. Ключ каждой сущности становится первичным ключом соответствующего отношения. Ключ сущности с необязательным классом принадлежности добавляется как атрибут в отношение для сущности с обязательным классом принадлежности. Правило 3. Если степень связи 1:1 и класс принадлежности обеих сущностей необязательный, то необходимы три отношения: по одному для каждой сущности и одно для связи. Ключами первых двух отношений будут ключи сущностей, а ключом третьего – ключ любой из сущности. Правило 4. Если степень связи 1:n и класс принадлежности n-связной сущности необязательный, то необходимы три отношения: по одному для каждой сущности. Ключами этих отношений станут ключи каждой сущности. Ключ односвязной сущности добавится как атрибут в отношение для n-связной сущности. Правило 5. Если степень связи 1:n и класс принадлежности n-связной сущности обязательный, то необходимы два отношения, по одному для каждой сущности и одно для связи. В отношении для связи среди атрибутов должны быть ключи каждой сущности. Ключами первых двух отношений будут ключи сущностей, а ключом третьего – ключ n-связной сущности. Правило 6. Если степень связи m:n, то необходимы три отношения: по одному для каждой сущности и одно для связи. В отношении для связи среди атрибутов должны быть ключи каждой сущности. Ключами первых двух отношений становятся ключи сущностей, а ключом третьего – ключи обеих сущностей. В соответствии с вышеперечисленными правилами для БД формируются следующие предварительные отношения (Таблица 1).
Таблица 1. Таблица предварительных отношений
Нормализация отношений, таблица окончательных отношений
Всего выделяют три нормальные формы и далее формы высших порядков. Первая нормальная форма (1НФ) – это обычное отношение, поэтому, согласно определению отношений, любое отношение автоматически находится в 1НФ. Иными словами, каждый атрибут данного отношения хранит одно-единственное значение и не является ни списком, ни множеством значений. Вторая нормальная форма (2НФ) – отношение, находящееся в 1НФ и обладающее неключевыми атрибутами, не зависящими от части сложного ключа (зависят лишь от всего ключа целиком, а не от части). Следует также заметить: если потенциальный ключ отношения является простым, то отношение автоматически находится в 2НФ. Третья нормальная форма (3НФ) – отношение, находящееся в 2НФ и включающее в себя лишь взаимно независимые отношения. Это значит, что факты, хранящиеся в таблице, должны зависеть только от ключа. Кроме вышеописанных трёх НФ, следует обратить внимание на одну из высших НФ, а именно на нормальную форму Бойса-Кодда (НФБК). Суть её состоит в том, что детерминанты всех функциональных зависимостей являются потенциальными ключами. В соответствии с вышеперечисленными формами для БД формируются следующие окончательные отношения (Таблица 2).
Таблица 2. Таблица окончательных отношений
|