Сущность

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

Сущность – это субъект, место, вещь, событие или понятие, содержащие информацию. Сущности могут быть вещественными, реальными объектами, такими как КЛИЕНТ или ШКАФ, или неосязаемыми концептуальными абстракциями как ЦЕНТР ЗАТРАТ или МЫСЛЬ. Сущности не предназначены для представления единичного объекта, они представляют набор экземпляров, содержащих информацию, представляющую интерес с точки зрения их уникальности. Например, сущность КЛИЕНТ представляет собой экземпляр объектов типа Клиент. Иван Иванов и Савелий Краморов – конкретные примеры экземпляров сущности КЛИЕНТ. Конкретный экземпляр сущности представляется строкой таблицы и идентифицируется первичным ключом.

Сущность имеет следующие признаки:

· Она имеет имя и описание.

· Она представляет класс, а не единичный экземпляр абстракции.

· Ее конкретные представители (экземпляры) могут быть уникально идентифицированы.

· Она содержит логическую группировку атрибутов, представляющих информацию, интересную с точки зрения корпорации

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

Сущность необходимо именовать существительным в единственном лице и записывать заглавными буквами.

Сущность в IDEF1X описывает собой совокупность или набор экземпляров похожих по свойствам, но однозначно отличаемых друг от друга по одному или нескольким признакам. Каждый экземпляр является реализацией сущности. Таким образом, сущность в IDEF1X описывает конкретный набор экземпляров реального мира. Примером сущности IDEF1X может быть сущность «СОТРУДНИК», которая представляет собой всех сотрудников предприятия, а один из них, скажем, Иванов Петр Сергеевич, является конкретной реализацией этой сущности.

И зависимые, и независимые сущности можно разделить на следующие типы:

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

· Коды/ссылки/классификаторы – эти сущности содержат строки, определяющие набор значений или область определения для атрибута.

· Ассоциативные сущности – эти сущности используются для разрешения отношений многие-ко-многим.

· Характеристические сущности – эти сущности бывают двух типов: исключающие и включающие.

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

Стержневые сущности могут быть как независимыми, так и зависимыми. Например, для корпорации, торгующей телевизорами, сущность ТЕЛЕВИЗОР представляет базовый продукт корпорации. Сущность МАГАЗИН является примером канала сбыта или посредника при продаже товара. Хотя пример может показаться несколько прямолинейным, он иллюстрирует всю мощь концепции, лежащей в основе моделирования стержневых сущностей.

Понимание необходимости моделировать стержневые сущности в виде масштабируемых и расширяемых контейнеров требует от разработчика модели взгляда на сущности как на абстрактные концепции и моделирования информации независимо от текущего способа ее использования. В этом примере модель сущности ТЕЛЕВИЗОР полностью вне контекста сущности МАГАЗИН и наоборот. Так что если в корпорации решат продавать ТЕЛЕВИЗОР через новый канал сбыта, такой как Интернет или доставка на дом, новый канал сбыта может быть добавлен без изменений в других сущностях.

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

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

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

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

Отношения многие-ко-многим не могут быть реализованы в базе данных на физическом уровне. ERwin автоматически создает ассоциативные сущности для разрешения отношений многие-ко-многим при переходе от логической модели к физической.

Именующая сущность — это частный случай ассоциативной сущности, не имеющей собственных атрибутов (только атрибуты родительских сущностей, мигрировавших в качестве внешнего ключа).

Характеристические сущности всегда являются зависимыми. Вы должны использовать характеристические сущности там, где для экземпляров сущностей имеет смысл хранить различные наборы атрибутов. Финклештейн называет характеристические сущности вторичными сущностями. Характеристические сущности всегда имеют одну или более «равноправных» сущностей. Равноправные характеристические сущности связаны с родительской сущностью особым типом отношений, которые могут быть исключающими или включающими.

Равноправные характеристические сущности, которые находятся в исключающем отношении к родительской сущности, указывают на то, что только одна из равноправных сущностей содержит экземпляр для любого из экземпляров родительской сущности. Исключающая характеристическая сущность представляет отношение "является" (is a).

Например, в страховой фирме работают служащие, работающие в офисе полный рабочий день (администраторы) и агенты, у которых график работы и оплаты организуются более гибко. Из их общих свойств можно сформировать обобщенную сущность (родовой предок) Сотрудник, чтобы представить информацию, общую для всех типов служащих. Специфическая для каждого типа информация может быть расположена в категориальных сущностях (потомках) «Постоянный сотрудник» и «Агент».

Обратите внимание, что экземпляр СОТРУДНИК должен быть АДМИНИСТРАТОРОМ или АГЕНТОМ. СОТРУДНИК не может быть одновременно и АДМИНИСТРАТОРОМ и АГЕНТОМ. Это исключающие характеристические сущности.

Заметьте, что исключающие характеристические сущности не позволят одному экземпляру СОТРУДНИК содержать факты, общие для АДМИНИСТРАТОРА и АГЕНТА. Это может противоречить реальной практике. АДМИНИСТРАТОР тоже может выступать в качестве АГЕНТА. Это пример включающих характеристических сущностей.

Разновидность характеристической сущности – это категориальная сущность. Категориальная сущность – это дочерняя сущность в иерархии наследования характеристической сущности. Иерархия наследования (или иерархия категорий) представляет собой особый тип объединения сущностей, которые разделяют общие характеристики.

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

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

Рис. П1. Иерархия наследования: полная категория

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

Рис. П2. Иерархия наследования: неполная категория

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

Для создания категориальной связи следует:

· установить курсор на кнопке «Категория» в палитре инструментов и нажать левую кнопку мыши;

· щелкнуть сначала по родовому предку, а затем по потомку;

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

Для редактирования категорий нужно щелкнуть правой кнопкой мыши по символу категории и выбрать в контекстном меню пункт Subtype Relationship Editor. В диалоге Subtype Relationship можно указать атрибут-дискриминатор категории (список Discriminator Attribute Choice) и тип категории – полная/неполная (радио-кнопки Complete/Incomplete).

Структурная сущность. Иногда экземпляры одной и той же сущности связаны. В К. Финклештейн своей книге «Strategic Systems Development» предложил использовать структурные сущности для представления отношений между экземплярами одной и той же сущности. Связи между экземплярами одной и той же сущности называются рекурсивными отношениями. Рекурсивные отношения будут рассмотрены в статье «Понятие отношения». Рекурсивные отношения – это логическая концепция, а концепции не легко воспринимаются пользователями.

На рис. П3 показана дополнительная структурная сущность, описывающая отношение между экземплярами сущности СОТРУДНИК.

Диаграмма моделирует отношения субординации между сотрудниками любой сложности. Поскольку отношение субординации связывает всегда двух людей, от сущности Сотрудник к сущности отношения субординации установлены две идентифицирующие связи с именами ролей «Руководитель» и «Подчиненный». Каждый сотрудник может быть в отношениях «руководит/подчиняется» с любым другим сотрудником, но одну и ту же пару сотрудников может связывать один тип отношений субординации. Сущность Отношение субординации представляет отношение между экземплярами сущности СОТРУДНИК.

Рис. П3. Структурная сущность.