Формирование отношений для связи 1:1.

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

На рис. 6 приведены диаграмма ER-типа и отношение, сформированное по правилу 1 на ее основе.

1 1

 

 

К1,… К2,… К1ÚК2

Рис. 6. Диаграмма и отношение для правила 1

На рисунке используются следующие обозначения:

Cl, C2 – сущности 1 и 2;

Kl, K2 – ключи первой и второй сущности соответственно;

R1 – отношение 1, сформированное на основе первой и второй сущностей;

Kl, … или K2, ... означает, что ключом сформированного отношения может быть либо К1, либо К2.

Это и другие правила будем проверять, рассматривая различные варианты связи ПРЕПОДАВАТЕЛЬ ВЕДЕТ ДИСЦИПЛИНУ. Пусть сущность ПРЕПОДАВАТЕЛЬ характеризуется атрибутами НП (идентификационный номер преподавателя), ФИО (фамилия, имя и отчество), Стаж (стаж преподавателя). Сущность ДИСЦИПЛИНА характеризуется соответственно атрибутами КД (код дисциплины), Часы (часы, отводимые на дисциплину). Тогда схема отношения, содержащего информацию об обеих сущностях, и само отношение для случая, когда степень связи равна 1:1, а класс принадлежности обязательный для всех сущностей, могут иметь вид, показанный на рис. 7.

ПРЕПОДАВАТЕЛЬ_ДИСЦИПЛИНА (НП,ФИО, Стаж, КД, Часы)

ПРЕПОДАВАТЕЛЬ_ДИСЦИПЛИНА

НП ФИО Стаж КД Часы
П1 Иванов К1
П2 Петров К2
ПЗ Сидоров К3
П4 Егоров К4

Рис. 7. Полученные по правилу 1 схема и отношение

Сформированное отношение содержит полную информацию о преподавателях, дисциплинах и о том, как они связаны между собой. Так, преподаватель Иванов ведет только дисциплину с кодом К1, а дисциплина К1 ведется только Ивановым (связь 1:1). В этом отношении отсутствуют пустые поля (класс принадлежности обязательный для всех сущностей), т. к. нет преподавателей, которые бы что-то не вели, и нет дисциплин, которые никто не ведет. Таким образом, одного отношения в данном случае достаточно. В качестве первичного ключа может быть выбран ключ первого отношения НП или ключ второго отношения КД.

 
 


1 1

·

 

К1,… К2,… К1, К2К2

Рис. 8. Диаграмма и отношения для правила 2

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

На рис. 8 приведены диаграмма ER-типа и отношения, сформированные по правилу 2 на ее основе.

Чтобы убедиться в справедливости правила, рассмотрим следующий пример. На рис. 9 приведено исходное отношение, содержащее информацию о преподавателях и дисциплинах. Оно представляет вариант, в котором класс принадлежности сущности ПРЕПОДАВАТЕЛЬ является обязательным, а сущности ДИСЦИПЛИНА – необязательным. При этом пробелы “---” (пустые поля) присутствуют во всех кортежах с информацией о дисциплинах, которые не ведутся ни одним из преподавателей.


ПРЕПОДАВАТЕЛЬ_ДИСЦИПЛИНА

НП ФИО Стаж КД Часы
П1 Иванов К1
П2 Петров К2
ПЗ Сидоров К3
--- ---- -- К4
КД Часы НП К1 62 П1 К2 74 ПЗ КЗ 102  
НП КД П1 К1 ПЗ К2  
КД Часы К1 62 К2 74 КЗ 102  
ДИСЦИПЛИНА

ДИСЦИПЛИНА

Рис. 9. Исходное отношение

Применим правило 2, в соответствии с которым, формируются два отношения, приведенные на рис. 10.

ПРЕПОДАВАТЕЛЬ ДИСЦИПЛИНА

НП ФИО Стаж КД   КД Часы
П1 Иванов К1   К1
П2 Петров К2   К2
ПЗ Сидоров К3   К3
          К4

Рис.10. Отношения, полученные по правилу 2

В результате мы избежали пустых полей в отношениях, не потеряв данных. Добавив атрибут КД – ключ сущности ДИСЦИПЛИНА (с необязательным классом принадлежности) в качестве внешнего ключа в отношение, соответствующее сущности ПРЕПОДАВАТЕЛЬ (с обязательным классом принадлежности), мы создали условия для связывания отношений (рис. 11).

 
 


НП ФИО Стаж КД   КД Часы

Рис. 11. Связь отношений по внешнему ключу

Это связывание при работе с базой данных позволяет получать одновременно данные о преподавателе и о ведущихся им дисциплинах (часах).

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

На рис. 12 приведены диаграмма ER-типа и отношения, сформированные по правилу 3 на ее основе.

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

1 1

· ·

 

К1К2К1К2

 

 

К1, К2

Рис. 12. Диаграмма и отношения для правила 3

Использование одного отношения в рассматриваемом случае приводит к наличию нежелательных пустых полей в этом отношении (рис.1За). При использовании двух отношений (рис. 13б) нам пришлось добавить ключи каждой из сущностей в отношение, соответствующее другой сущности, чтобы не потерять сведения о том, какую дисциплину ведет каждый преподаватель и наоборот. При этом также появились пустые поля.

а) одно отношение

ПРЕПОДАВАТЕЛЬ_ДИСЦИПЛИНА

НП ФИО Стаж КД Часы
П1 Иванов К1
П2 Петров --- ---
ПЗ Сидоров К3
--- ---- -- К4

б) два отношения

ПРЕПОДАВАТЕЛЬ ДИСЦИПЛИНА

НП ФИО Стаж КД   КД Часы НП
П1 Иванов К1   К1 П1
П2 Петров ---   К3 П3
ПЗ Сидоров К3   К4 ---

в) три отношения

ПРЕПОДАВАТЕЛЬ ВЕДЕТ ДИСЦИПЛИНУ

НП ФИО Стаж   НП КД   КД Часы
П1 Иванов   П1 К1   К1
П2 Петров   ПЗ К3   К3
ПЗ Сидоров         К4

Рис. 13. Варианты отношений для правила 3

Выход заключается в использовании трех отношений, сформированных по правилу 3 (рис. 13). Объектные отношения (с атрибутами сущностей) содержат полную информацию обо всех преподавателях и дисциплинах соответственно. Связное отношение ВЕДЕТ содержит данные о преподавателях, которые ведут дисциплины, и о дисциплинах, которые ведутся преподавателями. При этом в нем имеется только одно упоминание о каждом преподавателе и дисциплине в силу связи 1:1. Это отношение содержит в данном случае только ключевые атрибуты обеих сущностей, но может иметь и другие атрибуты, характеризующие эту связь. Например, номер семестра, в котором преподаватель ведет дисциплину.

Итак, сформулированы три правила, которые позволяют формировать отношения на основе ER-диаграмм для вариантов со степенью связи типа 1:1. Сформулируем аналогичные два правила для вариантов, степень связи между сущностями которых 1:М.

Формирование отношений для связи 1:М.

Если две сущности С1 и С2 связаны как 1:М, сущность С1 будем называть односвязной (1-связной), а сущность С2 – многосвязной (М-связной). Определяющим фактором при формировании отношений, связанных этим видом связи, является класс принадлежности М-связной сущности. Так, если класс принадлежности М-связной сущности обязательный, то в результате применения правила получим два отношения, если необязательный – три отношения. Класс принадлежности односвязной сущности не влияет на результат.

Чтобы убедиться в этом, рассмотрим отношение ПРЕПОДАВАТЕЛЬ_ДИСЦИПЛИНА (рис. 14), соответствующее диаграммам, приведенным на рис. 4, т. е. случаю, когда связь типа 1:М, класс принадлежности М-связной сущности обязательный, 1-связной – необязательный.

С отношением ПРЕПОДАВАТЕЛЬ_ДИСЦИПЛИНА (рис. 14) связаны следующие проблемы:

• имеются кортежи с пустыми полями (преподаватель не ведет дисциплины);

• избыточное дублирование данных (повторяется стаж) в кортежах со сведениями о преподавателях, ведущих несколько дисциплин.

ПРЕПОДАВАТЕЛЬ_ДИСЦИПЛИНА

НП ФИО Стаж КД Часы
П1 Иванов К1
П1 Иванов К2
П2 Петров К4
ПЗ Сидоров К5
П3 Сидоров К6
П4 Егоров К3
П4 Егоров К7
П5 Козлов --- ---

Рис. 14. Исходное отношение

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

Правило 4. Если степень связи между сущностями 1:М (или М:1) и класс принадлежности М-связной сущности обязательный, то достаточно формирование двух отношений (по одному на каждую из сущностей). При этом первичными ключами отношений являются ключи их сущностей. Кроме того, ключ 1-связной сущности добавляется как атрибут (внешний ключ) в отношение, соответствующее М-связной сущности.

 

 

 
 


1 М

 

 

К1,… К2,… К1,… К1, К2

Рис. 15. Диаграмма и отношения для правила 4.

На рис. 15 приведены диаграмма ER-типа и отношения, сформированные по правилу 4. Нами показан вариант с классом принадлежности 1-связной сущности – обязательный, хотя согласно правилу 4 он может быть произвольным.

В соответствии с правилом 4 преобразуем отношение на рис. 14 в два отношения (рис.16). Из рисунка видно, что пустые поля и дублирование информации удалось устранить. Потери сведений о том, кто из преподавателей ведет какую дисциплину, не произошло благодаря введению ключа НП сущности ПРЕПОДАВАТЕЛЬ в качестве внешнего ключа в отношение ДИСЦИПЛИНА

ПРЕПОДАВАТЕЛЬ ДИСЦИПЛИНА

НП ФИО Стаж   КД Часы НП
П1 Иванов   К1 П1
П2 Петров   К2 П1
ПЗ Сидоров   К3 П4
П4 Егоров   К4 П2
П5 Козлов   К5 П3
        К6 П3
        К7 П4

Рис. 16. Отношения, полученные по правилу 4

Для формулирования и обоснования необходимости использования следующего правила рассмотрим пример: связь между сущностями 1:М, а класс принадлежности М-связной сущности необязательный.

Пусть класс принадлежности 1-связной сущности также необязательный, хотя это и не принципиально, так как определяющим является класс принадлежности М-связной сущности. Посмотрим, к чему может привести использование одного отношения в этом случае (рис. 17).

ПРЕПОДАВАТЕЛЬ_ДИСЦИПЛИНА

НП ФИО Стаж КД Часы
П1 Иванов К1
П1 Иванов К2
П2 Петров К4
--- --- --- К5
П3 Сидоров К6
П4 Егоров К3
П4 Егоров К7
П5 Козлов --- ---

Рис. 17. Исходное отношение

С приведенным отношением связаны следующие проблемы:

1) Имеются пустые поля в кортежах, которые содержат следующее:

a) данные о преподавателях, не ведущих дисциплин;

b) данные о дисциплинах, которые не ведутся преподавателями.

2) Избыточное дублирование данных о преподавателях, ведущих более одной дисциплины.

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

Правило 5. Если степень связи 1:М (М:1) и класс принадлежности М-связной сущности является необязательным, то необходимо формирование трех отношений (рис. 18).

1 М

· ·

 

К1К2К1К2

 

 

К1, К2

Рис.18. Диаграмма и отношение для правила 5

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

ПРЕПОДАВАТЕЛЬ ВЕДЕТ ДИСЦИПЛИНА

НП ФИО Стаж   НП КД   КД Часы
П1 Иванов   П1 К1   К1
П2 Петров   П1 К2   К2
ПЗ Сидоров   П2 К4   К3
П4 Егоров   П3 К6   К4
П5 Козлов   П4 К3   К5
        П4 К7   К6
              К7

Рис. 19. Отношения, полученные по правилу 5

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

Подчеркнем, что определяющим фактором при выборе между 4-м или 5-м правилом является класс принадлежности М-связной сущности.