22. Основные понятия модели «сущность-связь»
В этой связи большой популярностью разработчиков пользуются средства, основанные на графических нотациях, самым распространенным средством данного типа являются диаграммы "сущность-связь" (entity-relationship, E/R), которые соответствуют объектно-ориентированному подходу.
Компоненты диаграмм "сущность-связь" 1.Множества сущностей, аналогичные классам. Сущности – это члены множества сущностей. 2.Атрибуты - это значения, описывающие свойства сущности. 3.Связи – это соединения между двумя или более множествами сущностей. Множественность E/R-связей
Для выражения множественности связей в E/R-диаграммах можно применять стрелки. Если между множествами Е и F есть связь типа "многие-к-одному", используется стрелка, указывающая на F. Она означает, что каждая сущность из множества Е связана только с одной сущностью из множества F. Однако сущность из F может быть связана с многими сущностями в Е.
Связь типа "один-к-одному" выражается стрелками, указывающими и что начальник может возглавлять только один цех, а у начальника может быть только один цех.Зачастую E/R-связи удобно изображать таблицей, каждая строка которой представляет пару сущностей, вовлеченных в данную связь. Например, связь мастером можно представить так:
Конкретного способа, которым должны реализовываться связи, не существует ни в E/R-моделях, ни в ODL. Такая таблица иногда называется множеством отношений для конкретной связи. Элементы этого множества – строки таблицы. Их можно представить в виде кортежей с компонентами для каждого множества сущностей. Например, кортежем во множестве отношений для связи мастером, является пара Вечернее платье, Иванова
Многосторонние связи
Встречаются довольно редко. Многосторонние связи в E/R-моделях изображаются линиями, соединяющими ромб (связь) с каждым из участвующих в данной связи множеств.
Пример. Изображена связь Договоры между цехом и мастером на изготовление цех заключает с мастером контракт на изготовление изделия. В общем случае значением E/R-связи можно считать множество кортежей, компонентами которых являются сущности, вовлеченные в данную связь. Например, связь Договоры можно описать трехмерными кортежами вида: (цех, мастер, изделие). Вполне реальную ситуацию с помощью стрелок описать невозможно.
Роли в связях
Некоторое множество сущностей может многократно фигурировать в одной и той же связи, от символа связи к множеству проводится столько линий, сколько раз это множество участвует в данной связи. Каждая из таких линий определяет роль, которую множество играет в связи.
Предполагается, что у наставника может быть много учеников, но у каждого ученика есть только один наставник. Таким образом, стрелка E/R-диаграммы на рис. 3 показывает связь типа "многие-к-одному" множества Ученик с множеством Наставник.
Атрибуты связей Пример связь Договоры имеет атрибут гонорар.
Наследование в E/R-модели
Существует значительное отличие между наследованием в ODL или других объектно-ориентированных моделях и наследованием в E/R-модели. В ODL объект должен быть членом только одного класса. В E/R-модели считается, что сущность имеет компоненты, принадлежащие нескольким множествам сущностей, которые являются частью isa-иерархии. Эти компоненты объединены в единую сущность связями isa, и такая сущность имеет все атрибуты своих компонентов, а также участвует во всех связях, в которых они участвуют.
Моделирование ограничений
Как уже говорилось, описание базы данных включает ограничения или правила, позволяющие более адекватно описать предметную область, уменьшить возможность возникновения ошибок и аномалий. На рис. 6 показано множество сущностей Мастера из рис. 47 с атрибутами фамилия, имя, отчество, которые вместе служат ключом.
В модели может быть несколько ключей, при в E/R-модели отсутствуют средства для указания всех ключей. Принято выделять один ключ в качестве первичного и рассматривать множество его атрибутов как единственный ключ для множества сущностей. Первичный ключ В E/R-модели выделяется подчеркиванием, а другие ключи, называемые вторичными, либо не отмечаются, либо перечисляются в комментарии на краю диаграммы.
Возможна необычная ситуация, когда ключ для множества сущностей не принадлежит самому этому множеству. Такой случай называется "слабыми множествами сущностей".
Ссылочная целостность
Аналогично, вторая закругленная стрелка от Возглавляет к Цеха, означает: если начальник возглавляет цех, то этот цех обязательно существует в множестве Цеха. На Начальники указывает обычная стрелка, обозначающая, что у каждого цеха есть только один начальник, но иногда он может быть и без начальника.
Дополнительные ограничения
Слабые множества сущностей
В ряде случаев для полного определения ключа некоторого множества сущностей используются атрибуты, которые частично или полностью принадлежат другому множеству сущностей. Множество с таким ключом называется слабым множеством сущностей.
Для обозначения слабого множества сущностей и описания его ключевых атрибутов принимаются следующие соглашения. 1.Слабое множество обозначается двойным прямоугольником. 2.Связи типа "многие-к-одному" слабого множества с другими множествами сущностей, поставляющими для него ключевые атрибуты, обозначаются двойными ромбами. 3.Если множество сущностей поставляет атрибуты для собственного ключа, эти атрибуты подчеркиваются.