Модели концептуального уровня представления данных
На концептуальном уровне представления данных используются различные модели данных, в частности модель сущность-связь и семантическая иерархическая модель.
Наибольшее распространение получила семантическая модель данных типа «сущность – связь» (модель Entity – Relation, ER – модель, модель Чена), предложенная впервые Ченом. Основными абстрактными понятиями этой модели являются понятия сущности, экземпляра сущности, атрибута и связи.
Сущность - реальный или мыслимый объект предметной области. Сущность характеризуется свойствами - атрибутами. Каждая сущность состоит из множества экземпляров сущности. Например, сущность «студент» имеет экземпляры сущности - сведения о конкретных студентах. Фамилия и номер зачётной книжки студента – это характеристики или атрибуты сущности «студент».
Между сущностями устанавливаются связи. Связь - соответствие или отображение между элементами двух или более множеств (между экземплярами сущностей). Различают следующие виды или типы связей:
1:1 – связь один к одному между сущностями. Связь «один к одному» между сущностями
устанавливается, если каждому экземпляру одной сущности соответствует только один
экземпляр другой сущности.
1:M (или М:1) – связь один ко многим (или многие к одному). Связь «один ко многим» между сущностями устанавливается, если каждому экземпляру одной сущности соответствует несколько экземпляров другой сущности.
M : N – связь многие ко многим. Связь «многие ко многим» между сущностями устанавливается, если каждому экземпляру одной сущности соответствует несколько экземпляров другой сущности и наоборот.
Для описания или представления модели данных кроме введенных понятий необходимо использование некоторых графических примитивов, позволяющих эту модель показать. Существует множество вариантов графического представления модели сущность - связь. Наиболее известными являются диаграммы Бахмана и Чена.
На диаграммах Бахмана для описания модели сущность-связь используются следующие графические примитивы:
имя сущности - сущность (множество экземпляров сущности)
это вершина графа
имя связи - описание связи между сущностями
имя сущности _имя атрибута 1
. . . – описание атрибутов сущности
_имя атрибута n
- тип связи или или S1, где S1 -тип связи 1:N
N
Например, дано описание следующей предметной области: в городе имеется несколько
предприятий, на каждом из которых работают сотрудники. Сотрудники характеризуются
должностью, фамилией, именем, отчеством (ФИО), окладом, возрастом, адресом.
Предприятие характеризуется названием, числом сотрудников, фио директора. Каждый
сотрудник может работать на одном предприятии, на одном предприятии работают
несколько сотрудников. Описание модели средствами диаграммы Бахмана представлено
на рисунке 1.1.
Название предприятия
Предприятие Адрес предприятия
ФИО директора
Число сотрудников
1 1
является директором включает/работает на
1 N
ФИО сотрудника
Сотрудник Должность
Оклад
Возраст
Адрес
Рисунок 1.1 – Пример диаграммы Бахмана модели сущность-связь
На диаграмме Бахмана подчеркнутые атрибуты имеют неповторяющиеся значения, то есть однозначно определяют каждый экземпляр сущности. В следующих разделах будет введено понятие ключевого атрибута, соответствующего выделенным атрибутам. На рассмотренном примере показано применение графических примитивов и с точки зрения теории баз данных не учтены ограничения целостности данных, которые привели бы в частности к выделению атрибута «Должность» в отдельную сущность, вызвали бы сомнение по поводу выбора ФИО в качестве ключевого атрибута. Кроме этого из примера видно, что между двумя сущностями может быть более одной связи. Наличие связи «один к одному» с именем «является директором» позволит при работе с базой данных быстро получить информацию о директоре более подробную, чем просто значение атрибута «ФИО директора». Кроме этого с точки зрения логики описанной предметной области связь «один к одному» с именем «является директором» подчеркивает, что директор предприятия является сотрудником предприятия. При описании модели имеет значение направление связи между сущностями. В связи с этим при проведении связи часто вводят понятие «родительской» и «дочерней сущности». Для связи «один к одному» с именем «является директором» родительской является сущность «Сотрудник», а дочерней «Предприятие», тогда с точки зрения логики модели связь читается как «сотрудник является директором предприятия». Имя связи на модели может читаться не только от родительской сущности по направлению к дочерней сущности, но и наоборот. Так на рисунке 1.1 связь «один ко многим» от родительской сущности «Предприятие» имеет имя «включает», а прочтение этой же связи от дочерней сущности «Сотрудник» выглядит как «работает на». Полностью эту связь можно назвать как «сотрудник работает на предприятии». При определении имени связи в последнем случае на диаграмме имена связей записываются через «слеш» или вертикальную черту. Кроме направления, связи между сущностями имеют мощность, которая отражается в типе связи. Мощность также определяется из описания предметной области. Так на предприятии может быть один директор и на предприятии работают несколько сотрудников. С другой стороны только один сотрудник может быть директором и по условию сотрудник может работать на одном предприятии. Как видно из приведенного очень простого примера задача построения модели базы данных не тривиальная, требующая знания не только правил описания модели, но и теоретических основ баз данных, существенно влияющих на эффективность работы с созданной базой данных. Эти аспекты будут рассмотрены в следующих разделах учебного пособия.
Альтернативой диаграмм Бахмана, используемых при построении модели сущность-связь являются диаграммы Чена, которые исторически появились первыми. На диаграммах Чена используются следующие графические примитивы.
|
- представление сущности
- представление атрибута
- наименование связи
- представление связи типа 1: 1
- представление связи типа 1: М
- представление связи типа N:M
Рассмотренный ранее пример на диаграмме Чена представлен на рисунке 1.2.
Название Адрес ФИО Число
предприятия предприятия директора сотрудников
Предприятие
является включает работает на
директором
Сотрудник
ФИО сотрудника Должность Оклад Возраст Адрес
Рисунок 1.2 – Пример диаграммы Чена модели сущность-связь
С точки зрения занимаемого пространства при описании модели сущность-связь диаграмма Чена менее предпочтительна и более громоздка, тем не менее, также как и диаграмма Бахмана описывает логику взаимосвязей сущностей предметной области.
Ту или иную форму графического представления модели сущность-связь выбирает проектировщик базы данных, но обязательно на любой диаграмме модели должны присутствовать сущности, атрибуты, при этом ключевые атрибуты выделены, показаны связи с указанием имен и мощностей. В настоящее время кроме приведенных диаграмм для описания моделей сущность-связь используются методологии, используемые в CASE-средствах проектирования баз данных, рассмотренные в разделах 1.4 и 1.5 пособия.
Альтернативой модели сущность-связь, используемой на концептуальном уровне представления данных, является модель Смита или семантическая иерархическая модель (SHM-модель, Semantik Hierarchic Model). Подход Смита предполагает использование множества понятий (концепций, абстракций), которые должны быть интегрированы в иерархическую структуру. Каждое из таких понятий имеет отличное от других значение, смысл которого понятен проектировщику. В качестве элементарных форм абстракции Смит использует обобщение и агрегацию. Обобщение – объединение однородных элементов или объединение классов однородных элементов. Агрегация – объединение разнородных понятий. Например, объект автомобиль характеризуется маркой, номером, цветом кузова. Здесь можно сказать, что автомобиль агрегирует разнородные понятия – марку, цвет, номер, которые не имеют между собой ничего общего, кроме того, что они относятся к характеристикам автомобиля. В случае рассмотрения объекта линия можно сказать, что к линиям относятся окружность, прямая, эллипс. Линия имеет свойства присущие и прямой, и окружности, и эллипсу, в то же время последние понятия имеют свои собственные, отличные от других свойств. То есть, можно сказать, что понятие линия обобщает такие геометрические фигуры как окружность, эллипс и другие.
В математическом смысле агрегация – это декартово произведение. Объекты формируются как связь между другими объектами, то есть - это объединение других объектов в единое целое по связи между ними. У каждого из класса объектов, входящих в обобщение, есть общие свойства, присущие объекту обобщения, но могут быть и индивидуальные отличия. В обобщении наблюдается наследование свойств.
Агрегация и обобщение не являются взаимоисключающими категориями. Агрегатный объект может быть обобщением некоторого класса объектов и наоборот. Но может быть такая ситуация, когда некоторые компоненты объекта или его категории не представляют интереса и тогда они не отображаются в концептуальной модели. Объект называется первичным, если ни компоненты, ни категории объекта не представляют интереса. Если несколько раз последовательно применить к некоторым объектам обобщение или агрегацию, образуется иерархия объектов. В SHM-модели различают иерархии агрегаций и обобщений.В иерархии агрегаций все связи имеют тип 1:1. На рисунке 1.3 приведен пример иерархии обобщения.
Рисунок 1.3 – Пример иерархии обобщения в SHM-модели
На рисунке 1.4 приведен пример иерархии агрегации.
Рисунок 1.4 – Пример иерархии агрегации в SHM – модели
Иерархия абстракций является объединением иерархии обобщений и агрегаций, концептуальная модель может включать иерархии агрегации и обобщения для всех понятий прикладной области. Иерархии агрегаций и обобщений могут быть определены отдельно одна от другой, но можно определить структуру каждого объекта как единого блока в виде объединения иерархий агрегаций и обобщения. В этом случае агрегации размещаются в плоскости страницы, а обобщенные понятия – в перпендикулярной плоскости или вводятся обозначения на связи. Связь типа ребра обобщения называется “является” и обозначается ISA; ребро иерархии агрегации – “является частью” помечается PART OF. На рисунке 1.5 приведен пример иерархии абстракций.
Рисунок 1.5 – Пример иерархии абстракций в SHM модели
По сравнению с моделью сущность-связь SHM–модель более наглядна, так как иерархия всегда более ясна по сравнению с сетью или графом. Но не каждая предметная область может быть описана с помощью одной иерархии, для связей «многие ко многим» приходится строить несколько иерархий. В настоящее время при проектировании баз данных в основном используются модели сущность-связь.