Перед тем, как приступить к созданию автоматизированной системы обработки информации, необходимо формирование понятий о событиях, фактах и предметах, которыми будет оперировать разрабатываемая система. Для того чтобы привести эти понятия к определенной модели данных, необходимо их заменить соответствующими информационными представлениями. Наиболее удобным инструментом такого представления данных, вне зависимости от реализующего его ПО, является модель «сущность-связь» (entity – relationship model, ER-model), основывающаяся на семантической информации о реальном мире и предназначающаяся для логического представления данных.
ER-модель определяет значения одних данных в зависимости от других данных. Важно, что из модели «сущность – связь» можно получить все существующие модели данных (иерархическую, сетевую, реляционную и объектную).
При этом необходимо отметить, что модель «сущность – связь» не является моделью данных, так как не определяет операций над данными и ограничивается описанием только их логической структуры.
Модель «сущность – связь» предложил Питер Пин-Шэн Чен (Сhen) в 1976 г. В дальнейшем многие авторы предложили свои варианты подобной модели (нотации Мартина, IDEF1X, Баркена и др.)..
Далее будет использован некоторый гибрид нотаций Чена (сущности, связи и атрибуты) и Мартина (степени и кардинальности связей). В табл. 3.1 приведен перечень используемых в этом случае обозначений.
Любой фрагмент предметной области может быть представлен как множество объектов (сущностей), между которыми существует некоторое множество связей (отношений).
Сущность entity (класс объектов) – это совокупность объектов, обладающих одинаковым набором свойств.
Каждая сущность обладает следующими свойствами:
● сущность имеет уникальное имя, к одному имени применяется одна и та же интерпретация, которая не может применяться
к различным именам, кроме случаев, когда они являются псевдонимами/синонимами;
● сущность обладает атрибутами (одним или несколькими), которые или принадлежат сущности, или наследуются через связь;
● сущность обладает атрибутами (одним или несколькими), которые однозначно определяют каждый экземпляр сущности;
● сущность может обладать любым числом связей с другими сущностями модели.
Таблица 3.1
Графические обозначения
Обозначение |
Значение |
Независимая сущность |
|
Зависимая сущность |
|
Атрибут |
|
Ключевой атрибут |
|
Связь |
Фактически сущность представляет совокупность атрибутов, описывающих свойства каждого члена данного набора сущностей.
Атрибут – это любая, значимая для предметной области характеристика сущности, и предназначенная для идентификации, классификации и количественной характеристики либо выражения состояния сущности.
Пример. Если в качестве предметной области рассматривать вуз, то в ней можно выделить следующие сущности: обучаемые, преподаватели, сотрудники, аудитории, дисциплины и т.п. Для объекта класса ЛИЧНОСТЬ В ВУЗЕ таким набором свойств могут быть год рождения, образование, ученая степень, иностранный язык, адрес и т.п.
При построении ИМ можно использовать язык ER-диаграмм, но чаще применяется более содержательный язык инфологического моделирования (ЯИМ), который представляет сущности предложениями следующего вида:
СУЩНОСТЬ (атрибут 1, атрибут 2, ..., атрибут n).
Пример:
ЛИЧНОСТЬ (табельный номер, фамилия, имя, отчество, возраст).
Атрибут может быть описательным (дескриптором сущности) или входить в состав первичного ключа (уникального идентификатора).
Ключ сущности (уникальный идентификатор) –атрибут или множество атрибутов и/или связей, который предназначен для однозначной идентификации каждого экземпляра данного типа сущности.
В системах обработки данных используется следующая гипотеза, а именно: каждый объект в наборе объектов различим (т.е. его описание отличается от описания других объектов). В соответствии с этой гипотезой каждая сущность имеет ключ.
В рассмотренном выше примере атрибут табельный номер является ключом сущности ЛИЧНОСТЬ В ВУЗЕ (конечно если все табельные номера в вузе уникальны).
Для идентификации каждый экземпляр сущности полностью идентифицируется своим собственным ключевым атрибутом, иначе в его идентификации участвуют и атрибуты другой родительской сущности.
Каждый атрибут описывается уникальным именем, представляемым грамматическим оборотом некоторого существительного, который описывает характеристику представляемую атрибутом.
У одного и того же набора объектов может оказаться несколько ключей. Один из них назначают первичным ключом набора объектов, и служит в дальнейшем ключом соответствующего этому набору файла (его еще называют ключом записи, кортежа). Все остальные ключи набора в этом случае называют возможными ключами.
Кроме таких понятий, как «ключ», «возможный ключ». «первичный ключ» имеется также понятие «составной ключ», которое применяется для ключа, состоящего из нескольких атрибутов.
Диаграмма «Сущность – атрибут». Связь между объектом и его свойством может быть различной. Рассмотрим классификацию связей между объектом и его свойствами (между сущностью и атрибутами):
1) по количеству принимаемых свойством значений связь считается:
– единичной;
– множественной.
Объект может иметь только одно значение какого-то свойства. Например, для объекта класса ЛИЧНОСТЬ таким свойством является дата рождения.
Свойство у объекта одновременно может принимать несколько значений. Например, при описании ЛИЧНОСТИ фиксируется свойство иностранный язык. Сотрудник (личность) может знать несколько иностранных языков.
2) по оценке постоянства связи, между сущностью и атрибутом во времени связь считается:
– статической (свойство с течением времени не изменяется, например: дата рождения);
– динамической (свойство может измениться со временем, например: ученая степень).
3) по оценке ассоциаций между объектом и его свойством:
– простые (неделимые);
– условные (свойство присуще не всем экземплярам сущности, например, свойство ученая степень для ЛИЧНОСТИ в вузе);
– составные (например, свойство «адрес» состоит из города, улицы, дома, квартиры).
Для обозначения связи между объектом и его свойством введены графические обозначения, приведенные в табл. 3.2.
Таблица 3.2
Графические обозначения связи между объектом и его свойством
Обозначение связи |
Характер связи |
единичная связь |
|
множественная связь |
|
статическая связь |
|
D |
динамическая связь |
условная связь |
Пример. Рассмотрим диаграмму «сущность – атрибуты» для предметной области «ВУЗ» (рис. 3.1).
Рис. 3.1. Диаграмма «сущность – атрибуты»
Данная диаграмма дает словесную интерпретацию сущности ЛИЧНОСТЬ через ее свойства. Сущность обозначается именем существительным в единственном числе. Сущность обладает
статическими единичными свойствами: фамилия, пол; динамическими множественными свойствами: образование, иностранный язык; динамическими единичными свойствами: ученая степень, адрес. В свою очередь свойство ученая степень является условным, а свойство адрес – составным.
Связи между объектами предметной области. Связь (от англ. relationship) – характер взаимосвязи (ассоциация), установленный между несколькими сущностями.
Набор связей (от англ. relationship set) – отношение между n (причем n => 2) сущностями, относящимися к некоторому набору сущностей.
В случае, когда n = 2 связь называется бинарной, n-арный набор связей (n > 2) можно заменить совокупностью бинарных, но n-арные связи отображают точнее семантику предметной области.
Связь обладает именем, степенью и классом принадлежности.
В методике проектирования данных есть правило, согласно которому связи обозначаются глагольными формами.
Пример. Если в качестве предметной области рассматривать предприятие, то в ней можно выделить следующие сущности: сотрудник, отдел и т.п.
Рассмотрим существующие связи между указанными сущностями:
● так как каждый отдельный сотрудник работает в каком-либо отделе, то между сущностями СОТРУДНИК и ОТДЕЛ имеется связь «работает в» или ОТДЕЛ – РАБОТНИК;
● поскольку один из работников является руководителем отдела, то между упомянутыми сущностями СОТРУДНИК и ОТДЕЛ существует связь «руководит» или ОТДЕЛ – РУКОВОДИТЕЛЬ.
Число ассоциированных сущностей через набор связей с другой сущностью, получило название степени связи.
Могут существовать следующие степени бинарных связей:
1. Связь «один к одному» (1:1) представляет тот тип связи, когда один экземпляр объекта, от которого направлена связь, идентифицирует один и только один экземпляр объекта, к которому направлена связь, и наоборот.
Данный тип связи представлен на рис. 3.2, где прямоугольники обозначают сущности, а ромб – связь в соответствии с обозначениями принятыми в табл. 3.1. Поскольку степени связи для каждой сущности равны 1, то они соединены одной линией.
Рис. 3.2. Связь 1:1
Другой характеристикой связи кроме ее степени является класс принадлежности сущностей входящих в нее или кардинальность связи.
Класс принадлежности характеризует обязательный или необязательный характер связи между экземплярами двух сущностей.
Раз в каждом отделе должен быть руководитель, то сущности «ОТДЕЛ» обязательно должна соответствовать сущность «СОТРУДНИК». Но не каждый сотрудник руководитель отдела, поэтому в такой связи не каждая сущность «СОТРУДНИК» имеет ассоциированную с ней сущность «ОТДЕЛ», таким образом, не каждый экземпляр сущности принимает участие в этой связи.
Говорят, что сущность «СОТРУДНИК» обладает обязательным классом принадлежности (такой факт обозначается указанием интервала возможных вхождений сущности в связь, это в данном случае 1,1), а сущность «ОТДЕЛ» обладает необязательным классом принадлежности (0,1). Теперь данная связь описывается как 0,1:1,1. В дальнейшем кардинальность бинарных связей степени 1 обозначается, как показано на рис. 3.3.
Рис. 3.3. Обозначение принадлежности
2. Связь «один ко многим» (1:М) представляет тот тип связи, когда один экземпляр объекта, от которого направлена связь, идентифицирует некоторое число (0, 1, …) экземпляров объектов данных, к которым направлена связь. А в обратном направлении эта связь идентифицирует только один объект.
Такая связь характерна для связи ОТДЕЛ – СОТРУДНИК, поскольку в отделе может работать любое число сотрудников, но каждый сотрудник может работать только в одном отделе. При этом не каждый отдел (например, вновь образованный) должен иметь хотя бы одного сотрудника.
Степень связи M графически отображается «вороньей лапкой» («древообразной» линией), так это сделано на рис. 3.4. В таком случае необходимо также учитывать класс принадлежности сущностей.
Кардинальность бинарных связей степени M обозначается, как представлено на рис. 3.5.
Рис. 3.5. Обозначение кардинальности бинарных связей степени n
3. Связь М:1 («много к одному»).
Пример. Предположим, рассматриваемое ранее предприятие действует на основании системы контрактов, которые заключаются с заказчиками. Такой факт изображается в модели «сущность – связь» связью КОНТРАКТ – ЗАКАЗЧИК, который объединяет сущности КОНТРАКТ(НОМЕР, СРОК ИСПОЛНЕНИЯ, СУММА) и ЗАКАЗЧИК(НАИМЕНОВАНИЕ, АДРЕС).
С одним заказчиком может быть заключено любое число контрактов, поэтому связью КОНТРАКТ – ЗАКАЗЧИК будет степень M:1 (рис. 3.6). В таком случае, раз каждый контракт заключается с конкретным заказчиком, а каждый заказчик обладает хотя бы одним контрактом, то каждая сущность характеризуется обязательным классом принадлежности.
Рис. 3.6. Пример связи М:1
4. Связь М:М («много ко многим») представляет тот тип связи, когда один экземпляр объекта, от которого направлена связь, идентифицирует некоторое число объектов, которому направлена связь, и наоборот. То есть связь является неуникальной в обоих направлениях.
Пусть в предыдущем примере для выполнения каждого контракта создана рабочая группа, в которую включены сотрудники из разных отделов. Так как каждый сотрудник может включаться в любое число рабочих групп, и каждая группа должна иметь не меньше, чем одного сотрудника, тогда связь между сущностями СОТРУДНИК и РАБОЧАЯ_ГРУППА характеризуется степенью М:М (рис. 3.7).
Рис. 3.7. Пример связи М:М
При условии зависимости существования сущности x от сущности y, сущность x называется зависимой (при этом сущность x называют «слабой», а сущность y – «сильной»). В качестве примера рассмотрена связь между описанными ранее сущностями РАБОЧАЯ ГРУППА и КОНТРАКТ. Рабочая группа создается после того, как подписывается контракт с заказчиком, и прекращает свое существование по выполнению контракта. Поэтому, сущность РАБОЧАЯ ГРУППА зависима от сущности КОНТРАКТ. Зависимая сущность обозначается двойным прямоугольником, а ее связь с сильной сущностью – линией со стрелкой (рис. 3.8):
Рис. 3.8. Пример обозначения «слабой» и «сильной» сущностей
Кардинальность связи для сильной сущности всегда будет (1,1). Для зависимой сущности классы принадлежности и степени связи могут быть любыми. Например, рассматриваемое предприятие использует несколько банковских кредитов, которые могут быть представлены набором сущностей КРЕДИТ (НОМЕР ДОГОВОРА, СУММА, СРОК ПОГАШЕНИЯ, БАНК). По каждому кредиту осуществляются платежи в счет его погашения и выплаты процентов. Такой факт характеризуется набором сущностей ПЛАТЕЖ (ДАТА, СУММА) и набором связей «осуществляется по». В случае, если поступление запланированного кредита срывается, информацию о нем необходимо удалить из БД. Соответственно, нужно удалить все сведения о плановых платежах по этому кредиту. Поэтому, сущность ПЛАТЕЖ зависима от сущности КРЕДИТ (рис. 3.9).
Рис. 3.9. Пример обозначения «слабой» и «сильной» сущностей
На языке инфологического моделирования связь (ассоциация) между информационными объектами представляется предложением вида:
АССОЦИАЦИЯ[СУЩНОСТЬ S1, СУЩНОСТЬ S2](атрибут 1, атрибут 2),
где S1, S2 – степени связи, а атрибут 1 или 2 – атрибуты, входящие в состав ключа сущности.
Пример представления описания связи между сущностями КРЕДИТ и ПЛАТЕЖ.
Осуществляется по [Кредит 1, Платеж M] (Номер кредита, Номер платежа).
Разновидности объектов. Выше были рассмотрены объекты, не вникая в их сложность. На самом деле различают несколько разновидностей объектов (рис. 3.10).
Рис. 3.10. Классификация объектов
Объект называется простым, если он является неделимым.
Сложный объект представляет собой объединение других объектов.
Понятия простой и сложный объекты являются относительными понятиями. Например, стул в системе учета материальных ценностях является простым объектом, а в мебельном производстве – сложным объектом.
Выделяют несколько разновидностей сложных объектов: составной, обобщенный, агрегированный.
Составной объект представляет собой связь «целое – часть».
Для отображения составного объекта в инфологической модели не используются никакие специальные обозначения. Характер связи между элементами составного объекта может быть 1:М, М:М. Примеры:
УЗЛЫ – ДЕТАЛИ, ГРУППА – СТУДЕНТ.
Обобщенный объект выражает присутствие связи «род – вид» между некоторыми объектами данной предметной области.
Связь «род – вид» характеризует собой классификацию ряда объектов предметной области по неким признакам.
Объекты, которые входят в состав обобщенного объекта являются его категориями. Такой атрибут «категория» называется дискриминантом.
Пример. Предметная область – ВУЗ. В данной предметной области обобщенным объектом является сущность личность (рис. 3.11).
Рис. 3.11. Пример обобщенного объекта ЛИЧНОСТЬ В ВУЗЕ
Классификация внутри обобщенного объекта может быть многоуровневой. Для обозначения подкласса внутри обобщенного объекта используется специальное графическое средство – треугольник.
Родовой и видовые объекты обладают определенным набором свойств.
Агрегированные объекты соответствуют некоторому процессу, в который вовлечены другие объекты.
Агрегированный объект обозначается ромбом и именуется существительным отглагольной формы.
Для примера, агрегированный объект ПОСТАВКА (рис. 3.12) соединяет в себе объекты ПОТРЕБИТЕЛЬ, ПОСТАВЩИК, ТОВАР, ДАТА ПРОДАЖИ. Агрегированный объект может иметь и собственные свойства.
Рис. 3.12. Пример агрегированного объекта
Диаграмма «сущность – связь». Непременным свойством модели «сущность – связь» безусловно, является то, что она может быть выполнена в виде графической схемы. Это значительно упрощает анализ предметной области. Существует несколько разновидностей обозначений элементов диаграммы «сущность – связь», каждая из которых имеет определенные положительные черты. Сущности со связями и атрибуты с сущностями соединяются прямыми линиями. Для указания кардинальностей связей применяются введенные ранее обозначения.
В процессе построения диаграмм выделяются следующие этапы:
1) идентификация сущностей и связей рассматриваемой предметной области;
2) идентификация семантической информации в наборах связей. К примеру, является ли представленный набор связей отображением связи 1:М;
3) определение кардинальностей связей;
4) определение атрибутов и наборов их значений (доменов);
5) организация данных в виде отношений «сущность – связь».
В качестве примера строится диаграмма, отображающая связь данных для подсистемы учета персонала предприятия.
Выделяются сущности и связи. Рассматриваемое предприятие включающие в свой состав отделы с работающими в них сотрудниками. Каждый сотрудник занимает определенную должность (инженер, ведущий инженер, бухгалтер и т.д.). В результате таких рассуждений вводятся следующие наборы сущностей:
Отдел (номер ОТДЕЛА, НАИМЕНОВАНИЕ отдела);
Сотрудник (табельный номер, ФИО сотрудника, адрес РЕГИСТРАЦИИ);
Должность (НАИМЕНОВАНИЕ должности, оклад),
а также набор связей РАБОТАЕТ_В и ЗАНИМАЕТ.
Считаем, что совместительство в организации не разрешено.
Обобщая вышеизложенное, получается диаграмма «сущность – связь», показанная на рис. 3.13.
Рис. 3.13. Фрагмент диаграммы учета персонала
ER-модель представляет специфику ограничения целостности данных. В модели предусматриваются следующие ограничения на:
1) допустимые значения – определяют типы данных (численные, символьные и др. значения);
2) допустимые значения для атрибута – диапазон возможных значений (к примеру, возраст сотрудника может быть от 18 до 60 лет);
3) значения данных (например, сумма отчислений не может превышать суммы зарплаты).