Преобразование ER-модели в реляционную модель

    1. Преобразование сущностей

Преобразование ER-модели в реляционную модель - student2.ru

Обычная сущность преобразуется в отдельную таблицу, полями таблицы будут все атрибуты сущности:

Сущность (Ключ, Атрибут1, Атрибут2)

    1. Преобразование слабой сущности

Преобразование ER-модели в реляционную модель - student2.ru

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

Сущность1 (Ключ1, Ключ2, Атрибут1, Атрибут2)

    1. Преобразование подтипов сущностей.

Преобразование ER-модели в реляционную модель - student2.ru

Несколько способов создания таблиц:

1 способ) Создается одна таблица, в которую помещают все атрибуты. Для того, чтобы указать, к какому подтипу относится объект, приходится вводить дополнительное поле-признак.

Сущность1(Ключ, Атрибут1, Атрибут2, Атрибут3, Атрибут4, Атрибут4, Признак)

Недостатком этого способа является то, что в таблице остается много незаполненных полей: для объекта подтипа 1 атрибуты 4 и 5, а для объекта подтипа 2 - атрибуты 2 и 3 останутся пустыми.

2 способ) Создается отдельная таблица для каждого подтипа. В нее включаются все атрибуты этого подтипа и все атрибуты надтипа.

Подтип1(Ключ, Атрибут1, Атрибут2, Атрибут3)
Подтип2(Ключ, Атрибут1, Атрибут4, Атрибут5)

Недостатком этого подхода является то, что подтипы теперь никак не связаны друг с другом.

3 способ) Создается одна таблица для надтипа, и по одной таблице для каждого подтипа, в которую включаются ключевые поля надтипа:

Сущность1(Ключ, Атрибут1)
Подтип1(Ключ, Атрибут2, Атрибут3)
Подтип2(Ключ, Атрибут4, Атрибут5)

Недостатком этого подхода является то, что информация о каждом объекте теперь раскидана по двум таблицам.

Наши рекомендации