Диаграмма «сущность-связь»




Очень важным свойством модели «сущность-связь» является то, что она может быть представлена в виде графической схемы. Это значительно облегчает анализ предметной области. Существует несколько вариантов обозначения элементов диаграммы «сущность-связь», каждый из которых имеет свои положительные черты:

Нотация Чена

Элемент диаграммы Обозначает
независимая сущность
зависимая сущность
родительская сущность в иерархической связи
Связь
идентифицирующая связь
Атрибут
первичный ключ
внешний ключ (понятие внешнего ключа вводится в реляционной модели данных)
многозначный атрибут
получаемый (наследуемый) атрибут в иерархических связях

Связь соединяется с ассоциируемыми сущностями линиями. Возле каждой сущности на линии, соединяющей ее со связью, цифрами указывается класс принадлежности. Пример:

Нотация Мартина

Элемент диаграммы Обозначает
независимая сущность
зависимая сущность
родительская сущность в иерархической связи

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

Обозначение Кардинальность
нет
1, 1
0, 1
M, N
0, N
1, N

Имя связи указывается на линии ее обозначающей. Пример:

Нотация IDEF1X

Обозначения сущностей:

Элемент диаграммы Обозначает
независимая сущность
зависимая сущность

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

Обозначения связей:

Элемент диаграммы Обозначает
идентифицирующая связь
неидентифицирующая связь

 

Обозначение кардинальности связей:

Элемент диаграммы Обозначает
1, 1
0, M
0, 1
1, M
точно N (N – произвольное число)

Пример:

Кроме того, в IDEF1X вводится понятие «отношение категоризации», по смыслу эквивалентное рассмотренной нами иерархической связи. Отношение полной категоризации (сущности-категории составляют полное множество потомков родительской сущности) обозначается:

Также может существовать отношение неполной категоризации (сущности-категории составляют неполное множество потомков общей сущности):

Нотация Баркера

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

Обозначение Кардинальность
0, 1
1, 1
0, N
1, N

Пример:

Для обозначения отношения категоризации вводится элемент «дуга»:

Будем использовать некий гибрид нотаций Чена (обозначение сущностей, связей и атрибутов) и Мартина (обозначение степеней и кардинальностей связей). В таблице 2.1 приводится список используемых обозначений.

Таблица 2.1

Обозначение Значение
Набор независимых сущностей
Набор зависимых сущностей
Атрибут
Ключевой атрибут
Набор связей

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

В процессе построения диаграммы можно выделить несколько очевидных этапов:

1. Идентификация представляющих интерес сущностей и связей.

2. Идентификация семантической информации в наборах связей (например, является ли некоторый набор связей отображением 1: n).

3. Определение кардинальностей связей.

4. Определение атрибутов и наборов их значений (доменов).

5. Организация данных в виде отношений «сущность-связь».

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

Выделим интересующие нас сущности и связи:

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

ОТДЕЛ (ИМЯ_ОТДЕЛА),

СОТРУДНИК (ТАБЕЛЬНЫЙ_НОМЕР, ИМЯ),

ДОЛЖНОСТЬ (ИМЯ_ДОЛЖНОСТИ, ОКЛАД),

и набор связей РАБОТАЕТ_В с атрибутом ставка между ними. Атрибут ставка может принимать значения из интервала]0, 1](больше нуля, но меньше или равен единице), он определяет какую часть должностного оклада получает данный сотрудник.

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

Тринарная связь, показанная здесь, несет более полную информацию о предметной области. Она однозначно отображает тот факт, что оклад сотрудника зависит от его должности, отдела, где он работает, и ставки. Однако в этом случае возникают некоторые проблемы с определением степени связи. Хотя, как было сказано, каждый работник может занимать несколько должностей, а в штате каждого отдела существуют вакансии с различными должностями, тем не менее, класс принадлежности сущности ДОЛЖНОСТЬ на приведенном рисунке установлен в (1, 1). Это объясняется тем, что ДОЛЖНОСТЬ ассоциируется фактически не с сущностями СОТРУДНИК и ОТДЕЛ, а со связью между ними. Обозначать этот факт предлагается так, как это показано на следующей диаграмме:

Здесь сущности СОТРУДНИК, ОТДЕЛ и связь РАБОТАЕТ_В агрегируются в некую новую абстрактную сущность, которая ассоциируется с сущностью ДОЛЖНОСТЬ с помощью связи степени n: 1.

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

В этом случае для адекватного описания семантики предметной области необходимо ввести еще одну сущность ШТАТНАЯ_ЕДИНИЦА, которая фактически заменяет собой связь РАБОТАЕТ_Вв абстрактной сущности и поэтому имеет атрибут ставка.

Переход от n -арной связи через агрегацию сущностей к набору бинарных связей можно рассматривать как последовательные этапы одного процесса, который приводит к однозначному порождению реляционной модели данных. При построении диаграммы «сущность-связь» можно использовать любой из этих трех способов представления данных.

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

ЗАКАЗЧИК (ИМЯ_ЗАКАЗЧИКА,АДРЕС)

КОНТРАКТ(НОМЕР,СРОК_НАЧАЛА,СРОК_ОКОНЧАНИЯ,СУММА)

РАБОЧАЯ ГРУППА (ПРОЦЕНТ_ВОЗНАГРАЖДЕНИЯ)

Атрибут «процент_вознаграждения » отражает ту долю стоимости контракта, которая предназначена для оплаты труда членов соответствующей рабочей группы. Смысл остальных атрибутов понятен без дополнительных пояснений. Связи между перечисленными сущностями также описаны в предыдущем параграфе.Как правило, один из членов рабочей группы является руководителем по отношению к другим сотрудникам, входящим в ее состав. Для отражения этого факта необходимо ввести связь «руководит» с кардинальностью1, 1: 0, n между сущностями СОТРУДНИК и РАБОЧАЯ_ГРУППА (сотрудник может руководить в произвольном числе рабочих групп, но каждая рабочая группа имеет одного и только одного руководителя).

Рассмотрим теперь более внимательно информационный объект «заказчик». На практике очень часто возникает необходимость различать национальную принадлежность юридических лиц, с которыми предприятие вступает в договорные отношения. Это связано с тем, что для зарубежных фирм необходимо хранить, например, сведения о валюте, в которой осуществляются расчеты, языке, на котором подписан контракт и т.д. В свою очередь, для отечественных компаний необходимо иметь сведения об их форме собственности (частная или государственная), поскольку от этого может зависеть порядок налогообложения средств, полученных за выполнение работ по контракту.

Таким образом, необходимо ввести в рассмотрение еще два непересекающихся множества ЗАРУБЕЖНОЕ_ПРЕДПРИЯТИЕ(ВАЛЮТА, ЯЗЫК) и ОТЕЧЕСТВЕННОЕ_ПРЕДПРИЯТИЕ(ФОРМА_СОБСТВЕННОСТИ), объединение которых составляет полное множество ЗАКАЗЧИК. Ассоциацию между этими объектами называют отношением наследования или иерархической связью, так как сущности ЗАРУБЕЖНОЕ_ПРЕДПРИЯТИЕ и ОТЕЧЕСТВЕННОЕ_ПРЕДПРИЯТИЕ наследуют атрибуты сущности ЗАКАЗЧИК (ИМЯ_ЗАКАЗЧИКА, АДРЕС). Для того чтобы определить к какому подмножеству относится конкретная сущность из набора ЗАКАЗЧИК (и, соответственно, какой набор атрибутов она имеет), необходимо ввести атрибут«национальная принадлежность», называемый дискриминантом. Этот тип связи предлагается отображать на диаграмме следующим образом:

 

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

 

 

Пример: Рассмотрим интернет-магазин. У магазина есть товары, которые поставляются поставщиками и покупаются покупатели. Это можно представить тремя объектами и двумя связями:

Но как поставщик поставляет товары? Он делает поставку, которая подтверждается документом. Аналогично и покупатель делает покупку, которая также может подтверждаться документом. Таким образом, поставка и покупка могут рассматриваться, как самостоятельные объекты:

Теперь имеются пять объектов и четыре связи. Две связи «один ко многим» (один поставщик может осуществить несколько поставок, но каждая поставка осуществляется только одним поставщиком, аналогично и для связи Покупатель-Покупка) и две связи «многие ко многим» (каждая поставка может содержать несколько товаров, а один и тот же товар может содержаться в нескольких поставках, аналогично и для связи Покупка-Товар). Но связи «многие ко многим» недопустимы в реляционной модели, поэтому каждую такую связь надо заменить на две связи «один ко многим». Делается это добавлением промежуточного объекта:

Таким образом, появились еще два объекта – журнал покупок и журнал поставок, со связями «один ко многим» (один журнал поставок может включать несколько поставок, но каждая поставка может входить только в один журнал, аналогично и для остальных). Каждый объект магазина имеет свои атрибуты:

Вот собственно и создана концептуальная модель базы данных «Магазин», вернее ее части, ведь в магазине еще есть сотрудники, склады, доставка товаров и т.д. Вообще, если предметная область обширная, то ее полезно разбить на несколько локальных предметных областей (данная концептуальная модель отражает именно локальную предметную область). Объем локальной области выбирается таким образом, чтобы в нее входило не более 6-7 объектов. После создания моделей каждой выделенной предметной области производится объединение локальных концептуальных моделей в одну общую, как правило, довольно сложную схему.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2018-01-31 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: