Настал момент разобраться в терминологии. К.Дейт [] определяет три основные класса сущностей: стержневые, ассоциативные и характеристические, а также подкласс ассоциативных сущностей обозначения.
Стержневая сущность (стержень) это независимая сущность (несколько подробнее она будет определена ниже).
В рассмотренных ранее примерах стержни это Студент, Квартира, Мужчины, Врач, Брак (из ) и другие, названия которых помещены в прямоугольники.
Ассоциативная сущность (ассоциация) это связь вида многие-ко-многим (-ко-многим и т.д.) между двумя или более сущностями или экземплярами сущности (как в ). Ассоциации рассматриваются как полноправные сущности:
они могут участвовать в других ассоциациях и обозначениях точно так же, как стержневые сущности;
могут обладать свойствами, т.е. иметь не только набор ключевых атрибутов, необходимых для указания связей, но и любое число других атрибутов, характеризующих связь. Например, ассоциации Брак из примеров и содержат ключевые атрибуты Код_М, Код_Ж и Табельный номер мужа, Табельный номер жены, а также уточняющие атрибуты Номер свидетельства, Дата регистрации, Место_регистрации, Номер записи в книгу ЗАГС и т.д.
Характеристическая сущность (характеристика) это связь вида многие-к-одной или одна-к-одной между двумя сущностями (частный случай ассоциации). Единственная цель характеристики в рамках рассматриваемой предметной области состоит в описании или уточнении некоторой другой сущности.
Необходимость в них возникает в связи с тем, что сущности реального мира имеют иногда многозначные свойства. Муж может иметь несколько жен (пример 2.3), книга несколько характеристик переиздания (исправленное, дополненное, переработанное, ...) и т.д.
Существование характеристики полностью зависит от характеризуемой сущности: женщины лишаются статуса жен, если умирает их муж.
Для описания характеристики используется новое предложение ЯИМ, имеющее в общем случае вид:
ХАРАКТЕРИСТИКА (атрибут 1, атрибут 2, ...) {СПИСОК ХАРАКТЕРИЗУЕМЫХ СУЩНОСТЕЙ}. Расширим также язык ER-диаграмм, введя для изображения характеристики трапецию (рис.
2.2).
Подчеркнем также, что все экземпляры характеристики должны быть обязательно связаны с каким-либо экземпляром характеризуемой сущности. Однако допускается, чтобы некоторые экземпляры характеризуемой сущности не имели связей.
Правда, если это касается браков, то сущность Мужья должна быть заменена на сущность Мужчины (нет мужа без жены).
Переопределим теперь стержневую сущность как сущность, которая не является ни ассоциацией, ни обозначением, ни характеристикой. Такие сущности имеют независимое существование, хотя они и могут обозначать другие сущности, как, например, сотрудники обозначают отделы.
В заключение рассмотрим пример построения инфологической модели базы данных Питание, где должна храниться информация о блюдах (рис. 2.3), их ежедневном потреблении, продуктах, из которых приготавливаются эти блюда, и поставщиках этих продуктов.
Информация будет использоваться поваром и руководителем небольшого предприятия общественного питания, а также его посетителями.
Рис. 2.3. Пример кулинарного рецепта
С помощью указанных пользователей выделены следующие объекты и характеристики проектируемой базы:
Анализ объектов позволяет выделить:
Поставки (связывает Поставщиков с Продуктами);
ER-диаграмма модели показана на рис. 2.4. а модель на языке ЯИМ имеет следующий вид:
Блюда (БЛ, Блюдо, Вид) Продукты (ПР, Продукт, Калорийность) Поставщики (ПОС, Город, Поставщик) [Город] Состав [Блюда M, Продукты N] (БЛ, ПР, Вес (г)) Поставки [Поставщики M, Продукты N] (ПОС, ПР, Дата_П, Цена, Вес (кг)) Города (Город, Страна) Рецепты (БЛ, Рецепт) {Блюда} Расход (БЛ, Дата_Р, Порций) {Блюда} В этих моделях Блюдо, Продукт и Поставщик наименования, а БЛ, ПР и ПОС цифровые коды блюд, продуктов и организаций, поставляющих эти продукты.