Отображение модели ER в реляционную модель

Опубликовано: 19 Августа, 2021

Чтобы понять это, вы должны иметь представление о:

ER модель

Модель отношений

После разработки диаграммы ER системы нам необходимо преобразовать ее в реляционные модели, которые могут быть напрямую реализованы любой СУБД, такой как Oracle, MySQL и т. Д. В этой статье мы обсудим, как преобразовать диаграмму ER в реляционную модель для различных сценариев.

Случай 1: Бинарные отношения с мощностью 1: 1 при полном участии объекта

У человека есть 0 или 1 номер паспорта, и паспорт всегда принадлежит 1 человеку. Таким образом, мощность 1: 1 с ограничением полного участия от Passport.

Сначала преобразуйте каждую сущность и связь в таблицы. Таблица Person соответствует объекту Person с ключом Per-Id. Точно так же таблица паспортов соответствует паспортному объекту с ключом в качестве номера доступа. Таблица имеет отношение между человеком и паспортом (у какого человека какой паспорт). Таким образом, он будет принимать атрибут Per-Id от Person и Pass-No от Passport.

Человек Имеет Заграничный пасспорт
Per-Id Другой атрибут человека Per-Id Pass-Нет Pass-Нет Другой атрибут паспорта
PR1 - PR1 PS1 PS1 -
PR2 - PR2 PS2 PS2 -
PR3 -

Таблица 1

Как видно из таблицы 1, каждый Per-Id и Pass-No имеет только одну запись в таблице Has. Таким образом, мы можем объединить все три таблицы в 1 с атрибутами, показанными в таблице 2. Каждый Per-Id будет уникальным и не будет нулевым. Так что это будет ключ. Pass-No не может быть ключевым, потому что для некоторых людей он может быть NULL.

Per-Id Другой атрибут человека Pass-Нет Другой атрибут паспорта

Таблица 2


Случай 2: Бинарные отношения с мощностью 1: 1 и частичным участием обоих объектов

Мужчина женится на 0 или 1 женщине, и наоборот. Таким образом, мощность 1: 1 с ограничением частичного участия от обоих. Сначала преобразуйте каждую сущность и связь в таблицы. Таблица Male соответствует объекту Male Entity с ключом M-Id. Точно так же женская таблица соответствует женской сущности с ключом F-Id. Таблица женитьбы представляет отношения между мужчиной и женщиной (какой мужчина женится на какой женщине). Таким образом, он будет принимать атрибут M-Id от Male и F-Id от Female.

Мужчина Жениться женский
M-Id Другой мужской атрибут M-Id F-Id F-Id Другой женский атрибут
M1 - M1 F2 F1 -
M2 - M2 F1 F2 -
M3 - F3 -

Таблица 3

Как видно из таблицы 3, некоторые мужчины и некоторые женщины не вступают в брак. Если мы объединим 3 таблицы в 1, для некоторого M-Id F-Id будет NULL. Таким образом, нет атрибута, который всегда отличался бы от NULL. Таким образом, мы не можем объединить все три таблицы в 1. Мы можем преобразовать в 2 таблицы. В таблице 4 M-Id, состоящие в браке, будут иметь связанный F-Id. Для других это будет NULL. В таблице 5 будет информация обо всех женщинах. Первичные ключи подчеркнуты.

M-Id Другой мужской атрибут F-Id

Таблица 4

F-Id Другой женский атрибут

Таблица 5                                                                 

Примечание. Бинарная связь с мощностью 1: 1 будет иметь 2 таблицы при частичном участии обеих сущностей в отношении. Если хотя бы 1 организация имеет полное участие, количество необходимых столов будет равно 1.


Случай 3: Бинарные отношения с числом элементов n: 1

В этом сценарии каждый студент может записаться только на один факультативный курс, но на факультативный курс может быть более одного студента. Сначала преобразуйте каждую сущность и связь в таблицы. Таблица Student соответствует объекту Student с ключом S-Id. Точно так же таблица Elective_Course соответствует объекту Elective_Course с ключом в качестве E-Id. Таблица Enrolls представляет взаимосвязь между Student и Elective_Course (какой студент зачисляется на какой курс). Таким образом, он будет принимать атрибут S-Id от и Student E-Id от Elective_Course.

Ученик Зачисляет Факультативный курс
S-Id Другой атрибут ученика S-Id E-Id E-Id Другой факультативный курс
S1 - S1 E1 E1 -
S2 - S2 E2 E2 -
S3 - S3 E1 E3 -
S4 - S4 E1

Таблица 6

Как видно из таблицы 6, S-Id не повторяется в таблице Enrolls. Таким образом, его можно рассматривать как ключ таблицы Enrolls. Ключи учащихся и таблиц регистрации одинаковые; мы можем объединить его как одну таблицу. Полученные таблицы показаны в Таблице 7 и Таблице 8. Первичные ключи подчеркнуты.

S-Id Другой атрибут ученика E-Id

Таблица 7

E-Id Другой факультативный курс

Таблица 8


Случай 4: Бинарная связь с мощностью m: n

В этом сценарии каждый студент может записаться на более чем 1 обязательный курс, а на обязательный курс может быть более 1 студента. Сначала преобразуйте каждую сущность и связь в таблицы. Таблица Student соответствует объекту Student с ключом S-Id. Точно так же таблица Compulsory_Courses соответствует объекту обязательных курсов с ключом C-Id. Таблица Enrolls представляет взаимосвязь между студентом и обязательными_курсами (какой студент зачисляется на какой курс). Таким образом, он будет принимать атрибут S-Id от Person и C-Id от Compulsory_Courses.

Ученик Зачисляет Обязательные_курсы
S-Id Другой атрибут ученика S-Id C-Id C-Id Другой обязательный курс
S1 - S1 C1 C1 -
S2 - S1 C2 C2 -
S3 - S3 C1 C3 -
S4 - S4 C3 C4 -
S4 C2
S3 C3

Таблица 9

Как видно из таблицы 9, S-Id и C-Id повторяются в таблице Enrolls. Но его сочетание уникально; поэтому его можно рассматривать как ключ таблицы Enrolls. Ключи всех таблиц разные, их нельзя объединить. Первичные ключи всех таблиц подчеркнуты.

Случай 5: Бинарные отношения со слабой сущностью

В этом сценарии у сотрудника может быть много иждивенцев, и один иждивенец может зависеть от одного сотрудника. Иждивенец не может существовать без работника (например, вы в детстве можете находиться на иждивении своего отца в его компании). Таким образом, это будет слабая организация, и ее участие всегда будет полным. У слабой сущности нет собственного ключа. Таким образом, его ключ будет представлять собой комбинацию ключа его идентифицирующего объекта (в данном случае E-Id сотрудника) и его частичного ключа (D-Name).

Сначала преобразуйте каждую сущность и связь в таблицы. Таблица сотрудников соответствует сущности сотрудников с ключом E-Id. Точно так же таблица зависимых соответствует зависимой сущности с ключом как D-Name и E-Id. Таблица имеет отношение между сотрудником и иждивенцами (у какого сотрудника какие иждивенцы). Таким образом, он будет принимать атрибут E-Id от сотрудника и D-Name от иждивенцев.

Работник Имеет Иждивенцы
E-Id Другой атрибут сотрудника E-Id D-имя D-имя E-Id Другие зависимые
E1 - E1 баран баран E1 -
E2 - E1 ШРИНИ ШРИНИ E1 -
E3 - E2 баран баран E2 -
E3 АШИШ АШИШ E3 -

 Таблица 10

 Как видно из таблицы 10, E-Id, D-Name являются ключевыми как для таблицы Has, так и для таблицы зависимостей. Итак, мы можем объединить эти две в 1. Итоговые таблицы показаны в таблицах 11 и 12. Первичные ключи всех таблиц подчеркнуты.

E-Id Другой атрибут сотрудника

Таблица 11

D-имя E-Id Другие зависимые

Таблица 12


Статья предоставлена Sonal Tuteja . Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсужденной выше.