SELECT ORDER_NUM, CUST_NUM, PROD_ID, QTY, DATE_ORDER 4 страница

В данном случае оказывается, что множество отношений для связи Договора должно содержать тройки вида

 

(мастер, изделие, множество цехов),

 

а сама связь Договоры – не только обычные множества сущностей Мастера и Изделия, но и новое множество сущностей, элементами которого являются множества цехов. Если такой подход допустим, считать множества цехов базовыми сущностями неприемлемо.

 
 

Лучше считать множеством сущностей Договоры. Как и на рис. 54, договор связывает мастера, изделие и множество цехов, но теперь число цехов не ограничено. Поэтому между договорами и цехами имеется связь типа "многие-ко-многим", а не "многие-к-одному", как это было бы, если бы договора были настоящим множеством "связующих" сущностей.

Набросок E/R-диаграммы показан на рис. 56. Заметим, что здесь договор связан с единственным мастером и единственным цехом, но с произвольным множеством цехов.

Такая же стратегия проектирования подходит и для ODL. Например, вполне приемлемо следующее описание интерфейса ODL:

interface Договор{

relationship Мастер мастер1;

relationship Изделие изделие1;

relationship Set<Цех> цеха;

};

Здесь объекты договоров имеют три связи: с единственным мастером, с единственным изделием и с множеством цехов. Обратные связи опущены.

Определения подклассов

Как уже было рассмотрено, классы в ODL аналогичны множествам сущностей в E/R-модели. Пусть класс С – это подкласс класса D. Для выражения этого понятия в E/R-модели мы соединяем множества сущностей, соответствующие классам С и D специальной связью isa. Множества сущностей С и D обозначаются обычными прямоугольниками. Атрибуты, или связи, относящиеся только к сущностям С, присоединяются к прямоугольнику С, а атрибуты, применимые к С и D, размешаются у D.

Связь isa обозначается линиями с треугольниками в середине. Вершина каждого треугольника указывает на суперкласс.

Пример 4.22.На рис. 57 показаны множество сущностей Изделия и два его подкласса: Кожаные_изделия и Меховые_изделия.

Треугольники, помеченные isa, указывают от Кожаные_изделия и Меховые_изделия на суперкласс Изделия.

 
 

Связи мастером и относится, связывающие Изделия с Мастера и Цеха, не показаны, но предполагается, что есть связь скорняжные_пошивы между Меховые_изделия и Мастера.

Наследование в E/R-модели

Существует значительное отличие между наследованием в ODL или других объектно-ориентированных моделях и наследованием в E/R-модели. В ODL объект должен быть членом только одного класса. В E/R-модели считается, что сущность имеет компоненты, принадлежащие нескольким множествам сущностей, которые являются частью isa-иерархии. Эти компоненты объединены в единую сущность связями isa, и такая сущность имеет все атрибуты своих компонентов, а также участвует во всех связях, в которых они участвуют.

При таком подходе получается тот же эффект, что и в ODL, так как наследование свойств дает объекту те же атрибуты и связи, которые соответствующая ему сущность могла бы собрать из своих компонентов.

При необходимости, вместо использования множественного наследования, в E/R-модели можно ввести новое множество сущностей.

Моделирование ограничений

Как уже говорилось, описание базы данных включает ограничения или правила, позволяющие более адекватно описать предметную область, уменьшить возможность возникновения ошибок и аномалий.

 

Ключи

 
 

Аналогично классам ODL, множество сущностей может также иметь ключи. Если множество атрибутов формирует ключ для множества сущностей, в нем не может быть двух сущностей, чьи значения совпадают для каждого атрибута ключа. В нотации E/R-диаграммы подчеркиваются атрибуты, принадлежащие ключу для любого множества сущностей.

 

На рис. 58 показано множество сущностей Мастера из рис. 47 с атрибутами фамилия, имя, отчество, которые вместе служат ключом.

В модели может быть несколько ключей, при в E/R-модели отсутствуют средства для указания всех ключей. Принято выделять один ключ в качестве первичного и рассматривать множество его атрибутов как единственный ключ для множества сущностей. Первичный ключ В E/R-модели первичный ключ выделяется подчеркиванием, а другие ключи, называемые вторичными, либо не отмечаются, либо перечисляются в комментарии на краю диаграммы.

Возможна необычная ситуация, когда ключ для множества сущностей не принадлежит самому этому множеству. Такой случай называется "слабыми множествами сущностей".

 

Ссылочная целостность

В E/R-диаграммах можно расширить функции стрелок таким образом, чтобы они показывали, ожидается ли ссылочная целостность данной связи в одном или нескольких направлениях. Пусть R – это связь множества сущностей Е с множеством сущностей F. Стрелка с закругленным "острием", указывающая на F, означает не только то, что Е и F находятся в связи типа "многие-к-одному" или "один-к-одному", но и то, что должно существовать множество Е. То же самое относится к случаю, когда R – связь между более чем двумя атрибутами.

Пример 4.23.На рис. 59 показано ограничение ссылочной целостности для множеств Изделия, Цеха и Начальники. Эти множества и связи впервые были введены на рис. 47 и рис. 48. Закругленная стрелка, указывающая от связи обеспечивает на множество Цеха выражает ограничение ссылочной целостности, состоящее в том, что цех, обеспечивающий работу над изделием, должен всегда присутствовать в множестве Изделия.

 


Аналогично, вторая закругленная стрелка от Возглавляет к Цеха, означает: если начальник возглавляет цех, то этот цех обязательно существует в множестве Цеха.

Заметим, что от Возглавляет на Начальник по-прежнему указывает обычная стрелка, выражая разумное допущение о связи между начальниками и их цехами. Если цех прекращает свое существование, ее начальник больше не может называться начальником (цеха) и должен быть удален из множества Начальники. Поэтому закругленная стрелка указывает на Цеха. Если же из базы данных удален начальник, цех может продолжать существовать. Поэтому на Начальники указывает обычная стрелка, обозначающая, что у каждого цеха есть только один начальник, но иногда он может быть и без начальника.

 

Дополнительные ограничения

Для конкретной базы данных могут быть введены также другие ограничения (правила целостности).

Например, учитывая оборот изделий и реальные возможности мастеров, можно ввести правило, чтоб у каждого мастера было не более десяти изделий.

В E/R диаграммах соответствующим образом помечают линии между символами связи и множества сущностей, как в следующем примере (рис. 60).