Сравнение семантической объектной модели и модели «сущность—связь»
Раздел: Моделирование данныхМодель «сущность—связь» и семантическая объектная модель имеют как сходства, так и различия. Они похожи тем, что обе являются инструментами для уяснения и документирования структуры пользовательских данных. Обе они имеют своей целью моделирование структуры вещей в мире пользователей и связей между ними.
Принципиальное различие между двумя моделями заключается в ориентации. Модель «сущность—связь» в качестве базовой концепции рассматривает концепцию сущности. Сущности и их связи выступают, если хотите, как атомы модели данных. Эти атомы могут быть организованы в структуры, которые модель «сущность—связь» называет пользовательскими представлениями (user views). Пользовательские представления — это комбинации сущностей, строение которых напоминает строение семантических объектов.
Базовое понятие семантической объектной модели — семантический объект. Набор семантических объектов в модели данных — это карта структуры вещей, которые пользователи считают существенными. Эти объекты являются атомами мира пользователей и представляют собой наименьшие различимые единицы, которыми пользователи желают оперировать. Они могут разбиваться на более мелкие части внутри СУБД (или в приложении), но эти более мелкие части не представляют интереса для пользователей.
С точки зрения семантической объектной модели, сущности, в том виде как они определены в модели «сущность—связь», не существуют. Они являются лишь фрагментами, кусками реальных сущностей. Фактически, единственные сущности, которые имеют смысл для пользователей, — это семантические объекты. По-другому можно выразить это, сказав, что семантические объекты являются семантически самодостаточными, или семантически завершенными.
В то же время, когда пользователь (возможно, даже тот же самый) попросит: «Покажите мне покупателя № 12345», он будет иметь в виду, что следует показать все данные, которые на рис. 4.34 относятся к покупателю, включая имя клиента, все составляющие адреса и все заказы этого покупателя. Сущность КЛИЕНТ на рис. 4.35 имеет только атрибуты ИмяКлиента, Улица, Город, Штат и Индекс. Если бы пользователю, который попросил: «Покажите мне покупателя ABC», предоставили только эти данные, он был бы снова разочарован: «Нет, это только часть того, что мне нужно».
С точки зрения семантической объектной модели, в сущностях, как они представлены в модели «сущность—связь», нет необходимости. Семантические объекты можно сразу преобразовывать в структуру базы данных, никак не рассматривая ER-сущности. Они являют собой, так сказать, недостроенные дома, воздвигнутые в процессе ухода от парадигмы компьютерных структур данных к парадигме пользователей.