Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Управление данными (пособие).pdf
Скачиваний:
280
Добавлен:
21.05.2015
Размер:
5.42 Mб
Скачать

28

простыми (скалярными). Как показано на рисунке 4.1, свойство ФИО сущности СТУДЕНТЫ является составным, являясь агрегацией трех простых свойств ФАМ (фамилия), ИМЯ и ОТЧ (отчество).

Связи (отношения) между сущностями

Следующим этапом анализа предметной области является определение связей (отношений), в которых находятся составляющие предметную область объекты. Реальные объекты предметной области не являются независимыми, а находятся между собой в разнообразных отношениях. Например, сущности СТУДЕНТЫ и ФАКУЛЬТЕТЫ связаны тем, что конкретные студенты учатся на определенных факультетах, сущности ПОСТАВЩИКИ и ДЕТАЛИ связаны тем, что конкретные поставщики поставляют определенные детали и т.д. Информация о связях (отношениях) между сущностями также является важной составляющей всей информации о предметной области и также должна быть представлена в базе данных. Очевидно, что при формировании модели предметной области из всего многообразия связей должны быть выделены существенные связи-отношения, важность которых определяется также контекстом решаемой задачи. Связи между одними и теми же объектами, существенные для одной задачи, могут не иметь никакого значения в контексте другой задачи. Также как и для самих объектов, для связей-отношений между объектами целесообразно различать экземпляры связей, то есть связи, имеющие место между конкретными экземплярами объектов, и типы (классы) связей, являющиеся абстракциями, обобщающими связи между множествами объектов, описываемых их типами (классами).

Например, связь между абстрактными сущностями СТУДЕНТЫ и ФАКУЛЬТЕТЫ это тип связи, а связь между конкретными экземплярами этих сущностей, допустим студентом Ивановым и Факультетом компьютерных наук, уже будет экземпляром приведенного типа связи.

На диаграмме, приведенной на рисунке 4.2, связи-отношения между объектами обозначены ромбами. Например, как показано на этой диаграмме, сущность (тип сущности) СТУДЕНТЫ связана с сущностью (тип) ФАКУЛЬТЕТЫ связью типа УЧИТСЯ_НА. Эта связь отражает тот факт данной предметной области, что конкретные студенты (экземпляры сущности СТУДЕНТЫ) учатся на конкретных факультетах (экземплярах сущности ФАКУЛЬТЕТЫ).

29

 

 

фам

 

 

имя

отч

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

стипенд

 

 

 

 

 

ФИО

 

 

код

 

 

 

код

 

 

 

наимен

 

 

 

 

 

 

 

 

 

 

 

 

M

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

студенты

 

 

учится_на

 

 

факультеты

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

M

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

M

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

M

староста

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

дисц_студ_преп

 

явл_деканом

 

 

преподает_на

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ауд№

 

 

 

 

 

 

 

 

M

1

 

 

 

 

 

 

 

 

 

 

 

 

 

M

 

 

 

 

 

M

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

кол_час

 

 

 

 

 

 

 

 

 

 

 

 

 

 

преподаватели

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

дисциплина

 

 

M

 

M

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

преп_дисц

 

 

 

 

 

 

 

 

уч_зван

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

код

 

 

 

 

наимен

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ФИО

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

код

учебники

Рис. 4.2. Пример диаграммы сущностей и связей между ними

Виды связей между сущностями

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

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

ПРЕПОДАВАТЕЛИ и ФАКУЛЬТЕТЫ показаны две связи: связь ПРЕПОДАЕТ_НА и

связь ЯВЛ_ДЕКАНОМ, отражающие соответственно два факта: первый, что

преподаватели преподают на определенных факультетах, и второй, что какието преподаватели являются деканами факультетов.

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

Могут быть связаны между собой экземпляры более чем двух типов сущностей. Так связь ДИСЦ_СТУД_ПРЕП отражает тот факт, что студенты изучают конкретные учебные дисциплины у конкретных преподавателей.

30

Причем, следует обратить внимание, что эта связь не эквивалентна трем попарным связям:

СТУДЕНТЫ ДИСЦИПЛИНЫ, СТУДЕНТЫ ПРЕПОДАВАТЕЛИ и ПРЕПОДАВАТЕЛИ ДИСЦИПЛИНЫ.

Таким образом, в зависимости от числа связанных сущностей, связь может быть одинарной (это связь между экземплярами одной и той же сущности, ее еще называют рефлексивной), бинарной (между двумя сущностями) и, в общем случае, n-арной (связь между n сущностями). Следует сразу заметить, что на практике при моделировании предметной области наиболее часто используются бинарные связи.

Важной характеристикой связи между экземплярами сущностями является степень (cardinality) этой связи. Степень связи характеризует число экземпляров сущности, которое может участвовать в связи. По степени связи различают связи типа один-к-одному (1:1), связь один-ко-многим (1:m), связь

многие-к-одному (m:1) и связь типа многие-ко-многим (m:n).

Рассмотрим эти варианты на примере связи сущностей преподаватель и дисциплина. Эта связь указывает на то, какими преподавателями преподаются конкретные учебные дисциплины, и наоборот, какие дисциплины преподают конкретные преподавателями.

Связь 1:1 (один-к-одному). В этой связи может участвовать не больше одного экземпляра каждой из связываемых сущностей.

Каждый преподаватель преподает не более одной дисциплины, и каждая дисциплина преподается не более чем одним преподавателем.

Связи 1:m (один-ко-многим) и m:1 (многие-к-одному). Не более одного экземпляра одной сущности может быть связано с любым количеством экземпляров другой сущности.

Связь 1:m. Каждый преподаватель может преподавать любое количество учебных дисциплин, но каждая дисциплина преподается не более чем одним преподавателем.

Связь m:1. Каждый преподаватель может преподавать не более одной учебной дисциплины, но каждая дисциплина может преподаваться более чем одним преподавателем.

Связь m:m (многие-ко-многим). Каждый из экземпляров обеих сущностей может быть связан с любым числом экземпляров другой сущности.

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

На ER-диаграммах степень связи может обозначаться, например, символами 1 или m у соответствующих концов линий, обозначающих связь,

31

преподаватель 1 m дисциплина

или с использованием обозначений типа

преподаватель дисциплина

На обоих примерах изображена связь типа 1:m между сущностью

преподаватель и сущностью дисциплина.

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

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

Каждый преподаватель преподает не более одной (а может и ни одной) учебной дисциплины … – это необязательная связь степени 1.

Каждый преподаватель обязательно преподает какую-либо, но только одну учебную дисциплину …– это обязательная связь степени 1.

Каждый преподаватель может преподавать любое число (в том числе и ни одной) учебной дисциплины …– это необязательная связь степени m.

Каждый преподаватель обязательно преподает одну или большее число

учебных дисциплин …– это обязательная связь степени m. Обязательность или необязательность связи на ER-диаграммах можно

обозначать следующим образом:

для необязательной связи степенью 1

преподаватель

для необязательной связи степенью m

преподаватель

для обязательной связи степенью 1

преподаватель

для обязательной связи степенью m

преподаватель

32

Таким образом, обозначение следующего вида на ER–диаграмме

преподаватель

дисциплина

Иванов

Физика

Петров

Математика

Сидоров

Информатика

Орлов

Химия

Смирнов

История

Попов

 

Кузнецов

 

представляет собой случай, когда каждый преподаватель обязательно ведет какую-либо, но только одну дисциплину (обязательная связь степенью 1), но при этом конкретная дисциплина может вестись как несколькими преподавателями, так и может никем не вестись (необязательная связь степени m).

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

принадлежностью связи экземплярам обеих сущностей.

преподаватель

дисциплина

Иванов

Физика

Петров

Математика

Сидоров

Информатика

Кузнецов

Химия

Следующая диаграмма соответствует ситуации, когда преподаватель может вести любое число дисциплин (в том числе и не одной), а каждая дисциплина обязательно ведется одним или нескольким преподавателями. Это связь многие-ко-многим с обязательной принадлежностью связи экземплярам сущности ПРЕПОДАВАТЕЛИ и обязательной экземплярам сущности

ДИСЦИПЛИНА.