Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. - Базы данных. Учебник для высших учебных заведений (6-е изд.) - 2009 (960530), страница 37
Текст из файла (страница 37)
Метод сущность-связьК1,...К2,...K1vK2Рис. 6.6. Диаграмма и отношения для правила 1На рисунке используются следующие обозначения:С1, С2 - сущности 1 и 2;Kl, К2 - ключи первой и второй сущности соответственно;R1 - отношение 1, сформированное на основе первой и второй сущностей;KlvK2,... означает, что ключом сформированного отношения может бытьлибо К1, либо К2.Это и другие правила будем проверять,.рассматривая различные варианты связи ПРЕПОДАВАТЕЛЬ ВЕДЕТ Д И С Ц И П Л И Н У .
Пусть сущностьПРЕПОДАВАТЕЛЬ характеризуется атрибутами НП (идентификационныйномер преподавателя), Ф И О (фамилия, имя и отчество), Стаж (стаж преподавателя). Сущность Д И С Ц И П Л И Н А характеризуется соответственно атрибутами КД (код дисциплины), Часы (часы, отводимые на дисциплину).Тогда схема отношения, содержащего информацию об обеих сущностях, и самоотношение для случая, когда степень связи равна 1:1, а КП обязательный длявсех сущностей, могут иметь вид, показанный на рис. 6.7.ПРЕПОДАВАТЕЛЬ_ДИСЦИПЛИНА(НП,ФИО, Стаж, КД, Часы)ПРЕПОДАВАТЕЛЬ_ДИСЦИПЛИНАНПФИОСтаж КДП1Иванов И.М.5К162П2Петров М.И.7К274ПЗСидоров Н.Г.
10КЗ102П4Егоров В.В.К4805ЧасыРис. 6.7. Полученные по правилу 1 схема и отношениеСформированное отношение содержит полную информацию о преподавателях, дисциплинах и о том, как они связаны между собой. Так, преподаватель Иванов ведет только дисциплину с кодом К1, а дисциплина К1 ведется только Ивановым (связь 1:1).
В этом отношении отсутствуют пустыеполя (КП обязательный для всех сущностей), т. к. нет преподавателей, которые бы что-то не вели, и нет дисциплин, которые никто не ведет. ТакимЧасть 2. Проектирование и использование БД182образом, одного отношения в данном случае достаточно.
В качестве первичного ключа может быть выбран ключ первого отношения НП или ключ второго отношения КД.Правило 2. Если степень связи 1:1 и класс принадлежности одной сущности обязательный, а второй - необязательный, то под каждую из сущностейформируется по отношению с первичными ключами, являющимися ключами соответствующих сущностей.
Далее к отношению, сущность которого имеет обязательный КП, добавляется в качестве атрибута ключ сущности с необязательным КП.На рис. 6.8 приведены диаграмма ER-типа и отношения, сформированныепо правилу 2 на ее основе.К1_,...К2,...К1,К2К2,...Рис. 6.8. Диаграмма и отношения для правила 2Чтобы убедиться в справедливости правила, рассмотрим следующий пример. На рис. 6.9 приведено исходное отношение, содержащее информацию опреподавателях и дисциплинах. Оно представляет вариант, в котором класссущности ПРЕПОДАВАТЕЛЬ является обязательным, а сущности ДИСЦ И П Л И Н А - необязательным.
При этом пробелы «—» (пустые поля) присутствуют во всех кортежах с информацией о дисциплинах, которые не ведутся ни одним из преподавателей.ПРЕПОДАВАТЕЛЬ_ДИСЦИПЛИНАЧасыНПФИОСтаж КДП1Иванов И.М.5К162П2Петров М.И.7К274ПЗСидоров Н.Г. 10КЗ102——К480—Рис. 6.9. Исходное отношениеИзбежать этой ситуации можно, применив правило 2, в соответствии скоторым, выделяются два отношения, приведенные на рис. 6.10.6. Метод сущность-связь183ПРЕПОДАВАТЕЛЬНИЦ], ФИО, Стаж, КД)Д И С Ц И П Л И Н А ^ , Часы)ПРЕПОДАВАТЕЛЬДИСЦИПЛИНАНПФИОСтаж КДКДЧасыП1Иванов И.М.5К1К162П2Петров М.И.7К2К274ПЗСидоров Н.Г.10КЗКЗ102П4Егоров В.В.5К4К480Рис. 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-связной сущности был обязательным (нетпреподавателя без дисциплины), то исчезли бы пустые поля, но повторяющиесяданные в атрибутах преподавателя сохранились бы.