4.2.1. От множеств сущностей к отношением

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

Пример. Для ER-схемы (Рисунок 3 Диаграмма сущностей и связей для базы данных о кинофильмах) схема отношения «кинофильмы» будет включать атрибуты «наименование», «год», «продолжительность», «жанр». Схема для отношения «актеры» («имя», «адрес»).

От ER-связей к отношениям

Связи ER-модели также представляются отношениями. Отношение для заданной связи R должно охватывать атрибуты, перечисленные ниже.

·         В схему отношения для связи R заносятся ключевые атрибуты каждого из множеств сущностей, соединяемых связью R.

·         Если связь обладает собственными атрибутами, они также вводятся в набор атрибутов отношения для этой связи.

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

Для атрибутов которые повторяются в отношении следует задавать разные имена.

Пример: Связь между сущностями «кинофильмы» и «киностудии» будет преобразовано в отношение, состоящее из ключевых атрибутов обоих множеств. Схема отношения примет следующий вид:

«Студия владелец» («название фильма», «год», «наименование студии»)

Связь между множествами сущностей «актеры» и «кинофильмы» может быть преобразована в схему «актеры-участники» («название фильма», «год», «имя актера»).

Объединение отношений

Иногда отношения, получаемые в результате прямых преобразований из множеств сущностей и связей, нельзя считать наилучшей формой представления определенных элементов данных. Одна из распространенных ситуаций такова. Имеется множество сущностей E, соединенное посредством связи R, типа «многие к одному» с множеством F в направлении от E к F. Реляционные схемы каждого из отношений для множества E и связи R будут содержать ключ множества E. Кроме того, в схему отношения для множества E введены атрибуты не относящиеся к ключевым, а в схему отношения для связи R ключевые атрибуты F и собственные атрибуты. Поскольку связь относится к типу «Многие к одному», все кортежи, могут быть однозначно определены с помощью ключевых атрибутов E. Их можно объединить в одной схеме, состоящей из:

·         Всех атрибутов множества E

·         Ключевых атрибутов множества F

·         Собственных атрибутов связи R

Те сущности из множества E, которые не связаны ни с одной сущностью F, в атрибутах соответствующих атрибутам R и F будут записаны некоторые нулевые значения. Значения null обычно имеют место, когда содержание атрибута кортежа неизвестно или утрачено.

Такое объединение отношений уменьшает объем хранимых данных, а также облегчает выборку информации из БД.

Для связи «один к одному» возможно объединение двух множеств и связи между ними в одно отношение.

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

Преобразование слабых множеств сущностей

Для преобразования слабого множества сущностей в отношение необходимо принимать во внимание следующее.

·         Отношение для слабого множества сущностей W должно включать не только собственные атрибуты W, но и ключевые атрибуты всех других множеств, содействующих в формирования ключа множества W.

·         В отношении любой связи, с которой соединено слабое множество сущностей W, должны быть отражены все ключевые атрибуты множества W, в том числе и те, которые «получены» от других множеств.

·         Поддерживающая связь R, соединяющая слабое множество сущностей W с другим множеством, помогающим в образовании ключа для W, однако, вовсе не нуждается в преобразовании. Дело в том, что атрибуты связи R либо уже присутствуют в отношении множества W, либо могут быть объединены со схемой отношения W.

Преобразование структур подклассов в отношения

Имея дело с иерархией отношений, мы в праве выбрать одну из нескольких стратегий преобразования.

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

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

Использовать значения null. Создать одно отношение, включающее все атрибуты всех множеств сущностей входящих в иерархию. Каждая сущность представляется одним кортежем, и компоненты кортежа, соответствующие тем атрибутам, которые сущность не имеет, принимают null.