Расширение реляционной модели для лучшего отражения семантики

Классификация сущностей и ассоциаций


Сущности и их типы могут классифицироваться следующим образом:

  1. сущности и типы, выполняющие вспомогательную роль в описании сущностей некоторого другого типа; такие сущности и их типы называются характеристическими (characteristic);;
  2. сущности и типы, выполняющие вспомогательную роль в обеспечении взаимосвязей сущностей других типов; такие сущности и их типы называются ассоциативными (associative);
  3. сущности и типы, не выполняющие никакой из указанных выше ролей; такие сущности и их типы называются стержневыми (kernel).

Сущности и их типы могут связываться друг с другом по иным критериям, чем упомянутые выше описание и ассоциация. Говорят, что тип сущностей e1 есть подтип типа сущностей e2, если все сущности типа e1 являются по необходимости сущностями типа e2. Например, в базе данных, имеющей дело со служащими вообще и с торговыми агентами в частности, тип сущностей торговых агентов был бы подтипом типа сущностей служащих. У любого типа сущностей (характеристический, стержневой или ассоциативный) может иметься один или несколько подтипов, к которых, в свою очередь, также могут иметься подтипы. Подтип характеристического типа сущностей также является характеристическим; подтип стержневого типа сущностей также является стержневым, а подтип ассоциативного типа сущностей – ассоциативным.

Стержневые типы сущностей, которые не являются подтипами какого-либо другого типа сущностей, называются внутренними стержневыми (inner kernel). Каждый внутренний стержневой тип сущностей определяется независимо от всех других типов сущностей. За исключением каких-либо ограничений целостности, которые являются специализированными для конкретной базы данных (в отличие от ограничений целостности, присущих самой модели данных и являющихся ее фундаментальной частью), существование внутренней стержневой сущности не зависит от наличия какой-либо другой сущности какого-либо типа.

Объекты, которые служат для обеспечения взаимосвязей сущностей, но сами не имеют статуса сущностей, будем называть несущностными ассоциациями (nonentity association).


Главное различие между ассоциативными сущностями и несущностными ассоциациями заключается в следующем. Для ассоциативных сущностей, как и для стержневых, допускается наличие характеристических сущностей, а также непосредственных свойств. В то же время для несущностных ассоциаций допускается наличие только непосредственных свойства. Это и другие различия, обсуждаемые ниже, происходят от трудностей специфицирования перекрестной ссылки на конкретную ассоциацию, когда она не имеет суррогата, уникально ее идентифицирующего. Несущностные ассоциации включены в RM/T, главным образом, для того, чтобы продемонстрировать, насколько слабыми являются эти ассоциации по сравнению с ассоциативными сущностями.



Рис. 1. Классификация типов сущностей

На рис. 1 в упрощенном виде представлена классификация типов сущностей (не показано, что характеристические типы сущностей могут сами иметь подтипы). Заметим, что термин внутренний ассоциативный тип сущностей (inner associative entity type) относится к ассоциативному типу сущностей, который не является подтипом какого-либо иного типа сущностей.

Такая классификационная схема в некоторой степени подобна, но, несомненно, не идентична классификациям, введенным в [32, 42]. Шмид (Schmid) и Свенсон (Swenson) включили в свою схему несущностные ассоциации, но не ассоциативные сущности – в RM/T первые являются необязательными, в то время как вторые – необходимыми.


Содержание раздела