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