Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. - Базы данных. Учебник для высших учебных заведений (6-е изд.) - 2009 (1084484), страница 37
Текст из файла (страница 37)
6.10. Отношения, полученные по правилу 2В результате мы избежали пустых полей в отношениях, не потеряв данных.Добавив атрибут КД - ключ сущности Д И С Ц И П Л И Н А (с необязательнымКП) в качестве внешнего ключа в отношение, соответствующее сущности ПРЕПОДАВАТЕЛЬ (с обязательным КП), мы связали отношения (рис. 6.11).НПСтаж КДФИОКДЧасыРис. 6.11. Связь отношений по внешнему ключуТочнее говоря, мы создали условия для связывания отношений.
Это связывание при работе с базой данных позволяет, например, получать одновременно данные о преподавателе и о ведущихся им дисциплинах (часах).Правило 3. Если степень связи 1:1 и класс принадлежности обеих сущностей является необязательным, то необходимо использовать три отношения.Два отношения соответствуют связываемым сущностям, ключи которых являются первичными в этих отношениях. Третье отношение является связныммежду первыми двумя, поэтому его ключ объединяет ключевые атрибуты связываемых отношений.С1К1,.11»С2R1К2,...R2кгГR1 R2К1,К2Рис. 6.12. Диаграмма и отношения для правила 3Часть 2. Проектирование и использование БД184На рис. 6.12 приведены диаграмма ER-типа и отношения, сформированные по правилу 3 на ее основе.На рис.
6.13 приведены примеры отношений, подтверждающие необходимость использования трех отношений при наличии необязательного КП дляобеих связываемых сущностей.а) одно отношениеПРЕПОДАВАТЕЛЬ_ДИСЦИПЛИНАНПФИОСтаж КДЧасыП1Иванов И.М.5К162П2Петров М.И.7——ПЗСидоров Н.Г.10К274—...КЗ102—б) два отношенияПРЕПОДАВАТЕЛЬДИСЦИПЛИНАНПФИОСтаж КДКДЧасыНПП1Иванов И.М.5К1К162П1П2Петров М.И.7—К274ПЗПЗСидоров Н.Г.10К2КЗ102—в) три отношенияПРЕПОДАВАТЕЛЬВЕДЕТДИСЦИПЛИНАНПФИОСтажНПКДКДЧасыП1Иванов И.М.5П1К1К162П2Петров М.И.7ПЗК2К274ПЗСидоров Н.Г.10КЗ102Рис.
б. 13. Варианты отношений для правила 3Использование одного отношения в рассматриваемом случае приводит кналичию нежелательных пустых полей в этом отношении (рис. 6.13а). Прииспользовании двух отношений (рис. 6.136) нам пришлось добавить ключикаждой из сущностей в отношение, соответствующее другой сущности, чтобы не потерять сведения о том, какую дисциплину ведет каждый преподаватель и наоборот.
При этом также появились пустые поля.6. Метод сущность-связь185Выход заключается в использовании трех отношений, сформированных по правилу 3 (рис. 6.13в). Объектные отношения (с атрибутами сущностей) содержатполную информацию обо всех преподавателях и дисциплинах соответственно.Связное отношение ВЕДЕТ содержит данные о преподавателях, которые ведутдисциплины и о дисциплинах, которые ведутся преподавателями.
При этом в немимеется только одно упоминание о каждом преподавателе и дисциплине в силусвязи 1:1. Это отношение содержит в данном случае только ключевые атрибутыобеих сущностей, но может иметь и другие атрибуты, характеризующие эту связь.Например, номер семестра, в котором преподаватель ведет дисциплину.Итак, сформулированы три правила, позволяющие формировать отношения на основе Е R-диаграмм, для вариантов со степенью связи типа 1:1.
Сформулируем аналогичные два правила для вариантов, степень связи между сущностями которых 1:М.Формированиеотношенийдля связи1:МЕсли две сущности С1 и С2 связаны как 1:М, сущность С1 будем называтьодносвязной (1 -связной), а сущность С2 - многосвязной (М-связной). Определяющим фактором при формировании отношений, связанных этим видомсвязи, является класс принадлежности М-связной сущности. Так, если класспринадлежности М-связной сущности обязательный, то в результате применения правила получим два отношения, если необязательный - три отношения.
Класс принадлежности односвязной сущности не влияет на результат.Чтобы убедиться в этом, рассмотрим отношение П Р Е П О Д А В АТЕЛЬЕД И С Ц И П Л И Н А (рис. 6.14), соответствующее диаграммам, приведенным нарис. 6.4, т. е. случаю, когда: связь типа 1:М, класс принадлежности М-связной сущности обязательный, 1-связной - необязательный.ПРЕПОДАВАТЕЛЬ_ДИСЦИПЛИНАНПФИОСтаж КДП1ИвановИ.М.5К162П1ИвановИ.М.5К274П2ПетровМ.И.7К480ПЗСидоров Н.Г. 10К596ПЗСидоров Н.Г.
10Кб120П4Егоров В.В.5КЗ102П4Егоров В.В.5К789П5Козлов А.С.8——ЧасыРис. 6.14. Исходное отношениеЧасть 2. Проектирование и использование БД186С отношением ПРЕПОДАВАТЕЛЬ_ДИСЦИПЛИНА (рис. 6.14) связаны следующие проблемы:• имеются кортежи с пустыми полями (преподаватель не ведет дисциплины),• избыточное дублирование данных (повторяется стаж преподавателя) в кортежах со сведениями о преподавателях, ведущих несколько дисциплин.Если бы класс принадлежности 1-связной сущности был обязательным (нетпреподавателя без дисциплины), то исчезли бы пустые поля, но повторяющиесяданные в атрибутах преподавателя сохранились бы.
Для устранения названныхпроблем отношения могут быть сформированы по следующему правилу.Правило 4. Если степень связи между сущностями 1:М (или М:1) и класспринадлежности М-связной сущности обязательный, то достаточно формирование двух отношений (по одному на каждую из сущностей). При этомпервичными ключами этих отношений являются ключи их сущностей. Кроме того, ключ 1-связной сущности добавляется как атрибут (внешний ключ)в отношение, соответствующее М-связной сущности.На рис. 6.15 приведены диаграмма ER-типа и отношения, сформированные по правилу 4.К2,...К1,-К2,...К1.К2Рис. б.
15. Диаграмма и отношения для правила 4В соответствии с правилом 4 преобразуем отношение на рис. 6.14 в два отношения (рис. 6.16).ПРЕПОДАВАТЕЛЬДИСЦИПЛИНАНПФИОСтажКДЧасыНПП1ИвановИ.М.5К162П1П2ПетровМ.И.7К274П1ПЗСидоров Н.Г.10КЗ102П4П4Егоров В.В.5К480П2П5Козлов А.С.8К596ПЗКб120ПЗК789П4Рис. 6.16. Отношения, полученные по правилу 46. Метод сущность-связь187Из рис. 6.16 видно, что пустые поля и дублирование информации удалосьустранить. Потери сведений о том, кто из преподавателей ведет какую дисциплину, не произошло благодаря введению ключа НП сущности ПРЕПОДАВАТЕЛЬ в качестве внешнего ключа в отношение Д И С Ц И П Л И Н А .Для формулирования и обоснования необходимости использования следующего правила рассмотрим следующий пример.Пример. Связь между сущностями 1:М, а класс принадлежности М-связной сущности необязательный.Пусть класс принадлежности 1-связной сущности также необязательный,хотя это и не принципиально, так как определяющим является класс принадлежности М-связной сущности.
Посмотрим, к чему может привести использование одного отношения в этом случае (рис. 6.17).ПРЕПОДАВАТЕЛЬ_ДИСЦИПЛИНАНПФИОСтаж КДЧасыП1ИвановИ.М.5К162П1ИвановИ.М.5К274П2ПетровМ.И.7К480———К596ПЗСидоров Н.Г.10Кб120П4Егоров В. В.5КЗ102П4Егоров В.В.5К789П5Козлов А.С.8——Рис. 6.17. Исходное отношениеС приведенным отношением связаны следующие проблемы:1. Имеются пустые поля в кортежах, которые содержат следующее:а) данные о преподавателях, не ведущих дисциплин;б) данные о дисциплинах, которые не ведутся преподавателями.2. Избыточное дублирование данных о преподавателях, ведущих болееодной дисциплины.В случае обязательного класса принадлежности 1-связной сущности исчезают проблемы 1 а). Для устранения всех проблем нужно перейти к трем отношениям в соответствии со следующим правилом.Правило 5.
Если степень связи 1:М (М:1) и класс принадлежности М-связной сущности является необязательным, то необходимо формирование трехотношений (рис. 6.18). Два отношения соответствуют связываемым сущностям, ключи которых являются первичными в этих отношениях. Третье отно-Часть 2. Проектирование и использование БД188R1 R2К1,К2Рис. 6.18. Диаграмма и отношение для правила 5шение является связным между первыми двумя (его ключ объединяет ключевые атрибуты связываемых отношений).В результате применения правила 5 к рассматриваемому отношению содержащиеся в нем данные (рис. 6.17) распределяются по трем отношениям(рис.
6.19).ПРЕПОДАВАТЕЛЬВЕДЕТДИСЦИПЛИНАНПФИОСтажНПКДКДЧасыП1ИвановИ.М.5П1К1К162П2ПетровМ.И.7П1К2К274ПЗСидоров Н.Г.10П2К4КЗ102П4Егоров В.В.5ПЗКбК480П5Козлов А.С.8П4КЗК596П4К7Кб120К789Рис. 6.19. Отношения, полученные по правилу 5Таким образом, указанные проблемы удалось разрешить. Ключ в связномотношении ВЕДЕТ является составным и включает в себя ключевые атрибутыобоих связываемых отношений (сущностей). В практических ситуациях связное отношение может содержать и другие характеризующие связь атрибуты.Подчеркнем, что определяющим фактором при выборе между 4-м или 5-мправилом является класс принадлежности М-связной сущности.Формированиеотношенийдля связиМ:МПри наличии связи М:М между двумя сущностями необходимо три отношения независимо от класса принадлежности любой из сущностей.
Исполь-1896. Метод сущность-связьзование одного или двух отношений в этом случае не избавляет от пустыхполей или избыточно дублируемых данных.Правило 6. Если степень связи М:М, то независимо от класса принадлежности сущностей формируются три отношения. Два отношения соответствуют связываемым сущностям и их ключи являются первичными ключами этихотношений. Третье отношение является связным между первыми двумя, а егоключ объединяет ключевые атрибуты связываемых отношений.На рис.