Правило 2. Если степень связи 1:1 и класс принадлежности одной сущности обязательный, а второй - необязательный, то под каждую из сущностей формируется по отношению с первичными ключами, являющимися ключами соответствующих сущностей. Далее к отношению, сущность которого имеет обязательный КП, добавляется в качестве атрибута ключ сущности с необязательным КП.
На рис. 7.15. приведены диаграмма ER-типа и отношения, сформированные по правилу 2 на ее основе.
Рис. 7.15. Диаграмма и отношения для правила 2
Чтобы убедиться в справедливости правила, рассмотрим следующий пример. На рис. 7.16. приведено исходное отношение, содержащее информацию о преподавателях и дисциплинах. Оно представляет вариант, в котором класс сущности ПРЕПОДАВАТЕЛЬ является обязательным, а сущности ДИСЦИПЛИНА - необязательным. При этом пробелы «—» (пустые поля) присутствуют во всех кортежах с информацией о дисциплинах, которые не ведутся ни одним из преподавателей.
ПРЕПОДАВАТЕЛЬ_ДИСЦИПЛИНА
НП
|
ФИО
|
Стаж
|
КД
|
Часы
|
П1
|
Иванов И.М.
|
5
|
К1
|
62
|
П2
|
Петров М.И.
|
7
|
К2
|
74
| П3 |
Сидоров Н.Г
|
10
|
КЗ
|
102
|
---
|
---
|
---
|
К4
|
80
|
Рис. 7.16. Исходное отношение
Избежать этой ситуации можно, применив правило 2, в соответствии с которым, выделяются два отношения, приведенные на рис. 7.17.
ПРЕПОДАВАТЕЛЬ (НП, Стаж, КД) ДИСЦИПЛИНА (КД, Часы)
ПРЕПОДАВАТЕЛЬ ДИСЦИПЛИНА
НП
|
ФИО
|
Стаж
|
КД
|
П1
|
Иванов И.М.
|
5
|
К1
|
П2
|
Петров М.И.
|
7
|
К2
| П3 |
Сидоров Н.Г
|
10
|
КЗ
|
П4
|
Егоров
|
5
|
К4
|
КД
|
Часы
|
К1
|
62
|
К2
|
74
|
КЗ
|
102
|
К4
|
80
|
Рис. 7.17. Отношения, полученные по правилу 2
В результате мы избежали пустых полей в отношениях, не потеряв данных. Добавив атрибут КД - ключ сущности ДИСЦИПЛИНА (с необязательным КП) в качестве внешнего ключа в отношение, соответствующее сущности ПРЕПОДАВАТЕЛЬ (с обязательным КП), мы связали отношения (рис. 7.18.).
Рис. 7.18. Связь отношений по внешнему ключу
Точнее говоря, мы создали условия для связывания отношений. Это связывание при работе с базой данных позволяет, например, получать одновременно данные о преподавателе и о ведущихся им дисциплинах (часах).
Правило 3. Если степень связи 1:1 и класс принадлежности обеих сущностей является необязательным, то необходимо использовать три отношения. Два отношения соответствуют связываемым сущностям, ключи которых являются первичными в этих отношениях. Третье отношение является связным между первыми двумя, поэтому его ключ объединяет ключевые атрибуты связываемых отношений.
Рис. 7.19. Диаграмма и отношения для правила 3
На рис. 7.19. приведены диаграмма ER-типа и отношения, сформированные по правилу 3 на ее основе.
На рис. 7.20. приведены примеры отношений, подтверждающие необходимость использования трех отношений при наличии необязательного КП для обеих связываемых сущностей.
а) одно отношение
ПРЕПОДАВАТЕЛЬ_ДИСЦИПЛИНА
-
НП
|
ФИО
|
Стаж
|
КД
|
Часы
|
П1
|
Иванов
|
5
|
К1
|
62
|
П2
|
Петров
|
7
|
---
|
---
|
П3
|
Сидоров
|
10
|
К2
|
74
|
---
|
---
|
---
|
К3
|
102
|
б) два отношения
ПРЕПОДАВАТЕЛЬ ДИСЦИПЛИНА
НП
|
ФИО
|
Стаж
|
КД
|
П1
|
Иванов
|
5
|
К1
|
П2
|
Петров
|
7
|
---
|
П3
|
Сидоров
|
10
|
К2
|
-
КД
|
Часы
|
НП
|
К1
|
62
|
П1
|
К2
|
74
|
П2
|
К3
|
102
|
---
|
с) три отношения
ПРЕПОДАВАТЕЛЬ ВЕДЕТ ДИСЦИПЛИНА
НП
|
ФИО
|
Стаж
|
П1
|
Иванов
|
5
|
П2
|
Петров
|
7
|
П3
|
Сидоров
|
10
|
КД
|
Часы
|
К1
|
62
|
К2
|
74
|
К3
|
102
|
Рис.7.20. Варианты отношений для правила 3
Использование одного отношения в рассматриваемом случае приводит к наличию нежелательных пустых полей в этом отношении (рис. 7.20а). При использовании двух отношений (рис. 7.20б) нам пришлось добавить ключи каждой из сущностей в отношение, соответствующее другой сущности, чтобы не потерять сведения о том, какую дисциплину ведет каждый преподаватель и наоборот. При этом также появились пустые поля.
Выход заключается в использовании трех отношений, сформированных по правилу 3 (рис. 7.20с). Объектные отношения (с атрибутами сущностей) содержат полную информацию обо всех преподавателях и дисциплинах соответственно. Связное отношение ВЕДЕТ содержит данные о преподавателях, которые ведут дисциплины и о дисциплинах, которые ведутся преподавателями. При этом в нем имеется только одно упоминание о каждом преподавателе и дисциплине в силу связи 1:1. Это отношение содержит в данном случае только ключевые атрибуты обеих сущностей, но может иметь и другие атрибуты, характеризующие эту связь. Например, номер семестра, в котором преподаватель ведет дисциплину.
Итак, сформулированы три правила, позволяющие формировать отношения на основе ER-диаграмм, для вариантов со степенью связи типа 1:1. Сформулируем аналогичные два правила для вариантов, степень связи, между сущностями которых 1:М.
Формирование отношений для связи 1:М
Если две сущности С1 и С2 связаны как 1:М, сущность С1 будем называть односвязной (1-связной), а сущность С2 - многосвязной (М-связной). Определяющим фактором при формировании отношений, связанных этим видом связи, является класс принадлежности М-связной сущности. Так, если класс принадлежности М-связной сущности обязательный, то в результате применения правила получим два отношения, если необязательный - три отношения. Класс принадлежности односвязной сущности не влияет на результат.
Чтобы убедиться в этом, рассмотрим отношение ПРЕПОДАВАТЕЛЬ_ДИСЦИПЛИНА (рис. 7.21.), соответствующее диаграммам, приведенным на рис. 1.11., т. е. случаю, когда связь типа 1:М, класс принадлежности М-связной сущности обязательный, 1-связной - необязательный.
ПРЕПОДАВАТЕЛЬ_ДИСЦИПЛИНА
НП
|
ФИО
|
Стаж
|
КД
|
Часы
|
П1
|
Иванов
|
5
|
К1
|
62
|
П1
|
Иванов
|
5
|
К2
|
74
|
П2
|
Петров
|
7
|
К4
|
80
| П3 |
Сидоров
|
10
|
К5
|
96
| П3 |
Сидоров
|
10
|
Кб
|
120
|
П4
|
Егоров
|
5
|
КЗ
|
102
|
П4
|
Егоров
|
5
|
К7
|
89
|
П5
|
Козлов
|
8
|
---
|
---
|
Рис. 7.21. Исходное отношение
С отношением ПРЕПОДАВАТЕЛЬ_ДИСЦИПЛИНА (рис. 7.21.) связаны следующие проблемы:
имеются кортежи с пустыми полями (преподаватель не ведет дисциплины),
избыточное дублирование данных (повторяется стаж преподавателя) в кортежах со сведениями о преподавателях, ведущих несколько дисциплин.
Если бы класс принадлежности 1 -связной сущности был обязательным (нет преподавателя без дисциплины), то исчезли бы пустые поля, но повторяющиеся данные в атрибутах преподавателя сохранились бы. Для устранения названных проблем отношения могут быть сформированы по следующему правилу.
Правило 4. Если степень связи между сущностями 1:М (или М:1) и класс принадлежности М-связной сущности обязательный, то достаточно формирование двух отношений (по одному на каждую из сущностей). При этом первичными ключами этих отношений являются ключи их сущностей. Кроме того, ключ 1 -связной сущности добавляется как атрибут (внешний ключ) в отношение, соответствующее М-связной сущности.
На рис. 7.22. приведены диаграмма ER-типа и отношения, сформированные по правилу 4.
Рис. 7.22. Диаграмма и отношения для правила 4
В соответствии с правилом 4 преобразуем отношение на рис. 7.21. в два отношения (рис. 7.23.).
ПРЕПОДАВАТЕЛЬ ДИСЦИПЛИНА
НП
|
ФИО
|
Стаж
|
П1
|
Иванов
|
5
|
П2
|
Петров
|
7
|
П3
|
Сидоров
|
10
|
П4
|
Егоров
|
5
|
П5
|
Козлов
|
8
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
КД
|
Часы
|
НП
|
К1
|
62
|
П1
|
К2
|
74
|
П1
|
К3
|
102
|
П4
|
К4
|
80
|
П2
|
К5
|
96
|
П3
|
К6
|
120
|
П3
|
К7
|
89
|
П4
|
Рис. 7.23. Отношения, полученные по правилу 4
Из рис. 7.23. видно, что пустые поля и дублирование информации удалось устранить. Потери сведений о том, кто из преподавателей ведет какую дисциплину, не произошло благодаря введению ключа НП сущности ПРЕПОДАВАТЕЛЬ в качестве внешнего ключа в отношение ДИСЦИПЛИНА.
Для формулирования и обоснования необходимости использования следующего правила рассмотрим следующий пример.
Пример. Связь между сущностями 1:М, а класс принадлежности М-связной сущности необязательный.
Пусть класс принадлежности 1-связной сущности также необязательный, хотя это и не принципиально, так как определяющим является класс принадлежности М-связной сущности. Посмотрим, к чему может привести использование одного отношения в этом случае (рис. 7.24.).
ПРЕПОДАВАТЕЛЬ_ДИСЦИПЛИНА
НП
|
ФИО
|
Стаж
|
КД
|
Часы
|
П1
|
Иванов
|
5
|
К1
|
62
|
П1
|
Иванов
|
5
|
К2
|
74
|
П2
|
Петров
|
7
|
К4
|
80
|
---
|
---
|
---
|
К5
|
96
|
П3
|
Сидоров
|
10
|
Кб
|
120
|
П4
|
Егоров
|
5
|
КЗ
|
102
|
П4
|
Егоров
|
5
|
К7
|
89
|
П5
|
Козлов
|
8
|
---
|
---
|
Рис. 7.24. Исходное отношение
С приведенным отношением связаны следующие проблемы:
1. Имеются пустые поля в кортежах, которые содержат следующее:
а) данные о преподавателях, не ведущих дисциплин;
б) данные о дисциплинах, которые не ведутся преподавателями.
2. Избыточное дублирование данных о преподавателях, ведущих более одной дисциплины.
В случае обязательного класса принадлежности 1-связной сущности исчезают проблемы 1 а). Для устранения всех проблем нужно перейти к трем отношениям в соответствии со следующим правилом.
Правило 5. Если степень связи 1:М (М:1) и класс принадлежности М-связной сущности является необязательным, то необходимо формирование трех отношений (рис. 7.25.).
Рис. 7.25. Диаграмма и отношение для правила 5
Два отношения соответствуют связываемым сущностям, ключи которых являются первичными в этих отношениях. Третье отношение является связным между первыми двумя (его ключ объединяет ключевые атрибуты связываемых отношений).
В результате применения правила 5 к рассматриваемому отношению содержащиеся в нем данные (рис. 7.24.) распределяются по трем отношениям (рис. 7.26.).
ПРЕПОДАВАТЕЛЬ ВЕДЕТ ДИСЦИПЛИНА
КД
|
Часы
|
К1
|
62
|
К2
|
74
|
К3
|
102
|
К4
|
80
|
К5
|
96
|
К6
|
120
|
К7
|
89
|
НП
|
ФИО
|
Стаж
|
П1
|
Иванов
|
5
|
П2
|
Петров
|
7
|
П3
|
Сидоров
|
10
|
П4
|
Егоров
|
5
|
П5
|
Козлов
|
8
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
НП
|
КД
|
П1
|
К1
|
П1
|
К2
|
П2
|
К4
|
П3
|
К6
|
П4
|
К3
|
П4
|
К7
|
Рис. 7.26. Отношения, полученные по правилу 5
Таким образом, указанные проблемы удалось разрешить. Ключ в связном отношении ВЕДЕТ, является составным и включает в себя ключевые атрибуты обоих связываемых отношений (сущностей). В практических ситуациях связное отношение может содержать и другие характеризующие связь атрибуты.
Подчеркнем, что определяющим фактором при выборе между 4-м или 5-м правилом является класс принадлежности М-связной сущности.
Достарыңызбен бөлісу: |