Формирование отношений для связи 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-м правилом является класс принадлежности М-связной сущности.