Преобразование ER-модели в реляционную модель
- Преобразование сущностей
Обычная сущность преобразуется в отдельную таблицу, полями таблицы будут все атрибуты сущности:
Сущность (Ключ, Атрибут1, Атрибут2)
- Преобразование слабой сущности
Слабая сущность преобразуется в отдельную таблицу, полями таблицы будут все атрибуты сущности плюс ключевые атрибуты всех сущностей, с помощью которых данная слабая сущность идентифицируется.
Ключевые поля всех родительских таблиц войдут в ключ дочерней таблицы. Для дочерней таблицы они будут называться внешним ключом.
Сущность1 (Ключ1, Ключ2, Атрибут1, Атрибут2)
- Преобразование подтипов сущностей.
Несколько способов создания таблиц:
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)
Недостатком этого подхода является то, что информация о каждом объекте теперь раскидана по двум таблицам.