Объектное моделирование ролей было изобретено командой из Control Data в 1973 году и названо Фалькенбергом. Это метод моделирования, основанный на лингвистическом анализе, и был формализован как логика первого порядка Терри Хэлпином, см. http://orm.net. ORM, таким образом, оригинальный пользователь аббревиатуры. ORM и родственные языки моделирования отличаются тем, что не содержит атрибутов . Эти языки содержат только объекты и типы объектов (виды вещей), факты и типы фактов (отношения между отдельными вещами) и ограничения (правила о том, какие вещи и отношения могут существовать). Никакие отношения не имеют характеристики «ведущий-ведомый», как сущность-атрибут - это понятие, которое возникает только во время физического отображения, поскольку оно не имеет отношения к базовой семантике домена.
Object Relational Mapping (которую я всегда пишу O / RM) - это название метода или семейства инструментов, которые помогают переводить данные между реляционной формой и объектно-ориентированной формой. Обе эти формы используют агрегированные или составные вещи, основанные на атрибутах (сущность / атрибут или объект / атрибут), но принципы агрегирования различаются между двумя подходами, поэтому одна и та же базовая семантика приводит к различным структурам данных; отсюда необходимость в инструментах, помогающих автоматизировать перевод. Кроме того, в анализе ER или O-O необходимость принятия заблаговременных решений о том, какие объекты являются объектами / объектами, а какие - атрибутами, является вынужденной, и это приводит к целому классу ошибок моделирования, которые просто не возникают в ORM.
Конечно, как реляционные модели, так и модели o-o могут быть автоматически получены из модели ORM, и отображение между производными формами также происходит автоматически и безболезненно. Я полагаю, это не так часто, потому что это сделало бы жизнь слишком легкой.