В чем разница между объектно-ролевым моделированием и объектно-реляционным сопоставлением?

Я узнал о моделировании ролей объектов, но не об объектно-реляционном сопоставлении, и я хочу знать, являются ли они двумя способами делать одно и то же и каковы их плюсы и минусы? Для меня моделирование роли объекта имеет гораздо больше смысла. Не могли бы вы сделать краткое, но легкое для понимания сравнение, если их можно сравнить. Ваше здоровье


person Cool Hand Luke    schedule 05.10.2009    source источник


Ответы (3)


Моделирование ролей объектов: нотация моделирования программного обеспечения, специально предназначенная для определения моделей предметной области. Этот язык можно рассматривать как альтернативу использованию диаграмм классов UML для разработки вашей базы данных. Подробнее здесь: http://www.orm.net/

Объектно-реляционное отображение: набор стратегий для преодоления разрыва между объектно-ориентированными программами и реляционными базами данных. Он направлен на обеспечение постоянного хранения объектов в структуре реляционной базы данных.

person Jordi Cabot    schedule 08.10.2009

Моделирование ролей объектов было изобретено командой Control Data примерно в 1973 году и названо Фалькенбергом. Этот метод моделирования основан на лингвистическом анализе и был формализован Терри Халпином как логика первого порядка, см. http://orm.net. . Таким образом, ORM является первоначальным пользователем аббревиатуры. ORM и родственные языки моделирования отличаются тем, что не содержат атрибутов. Эти языки содержат только объекты и типы объектов (виды вещей), факты и типы фактов (отношения между отдельными вещами) и ограничения (правила о том, какие вещи и отношения могут существовать). Никакие отношения не имеют характеристику ведущий-ведомый, как сущность-атрибут — это понятие возникает только во время физического сопоставления, поскольку оно не имеет отношения к базовой семантике предметной области.

Объектно-реляционное отображение (которое я всегда называю O/RM) — это название метода или семейства инструментов, которые помогают переводить данные между реляционной формой и объектно-ориентированной формой. Обе эти формы используют агрегированные или составные вещи на основе атрибутов (сущность/атрибут или объект/атрибут), но принципы агрегирования различаются между двумя подходами, поэтому одна и та же базовая семантика приводит к разным структурам данных; отсюда и потребность в инструментах, помогающих автоматизировать перевод. Кроме того, в ER или OO-анализе необходимость принимать ранние решения о том, какие вещи являются объектами/сущностями, а какие атрибутами, является вынужденной, и это приводит к целому классу ошибок моделирования, которые просто не возникают с ORM.

Конечно, как реляционная, так и о-о модель могут быть автоматически получены из модели ORM, и отображение между производными формами также происходит автоматически и безболезненно. Я полагаю, что это не делается чаще, потому что это сделало бы жизнь слишком легкой.

person cliffordheath    schedule 20.03.2014

Вы сравниваете яблоки с апельсинами. Объектно-реляционное сопоставление — это попытка преодолеть несоответствие импеданса между миром объектов и реляционными базами данных.

Activerecord, например, представляет собой ORM, который упаковывает строку в базу данных. Hibernate — еще одна популярная ORM.

Просто google for ORM wikipedia объясняет это намного лучше

http://en.wikipedia.org/wiki/Object-relational_impedance_mismatch

person Edwards    schedule 05.10.2009
comment
Каким должно быть объектно-реальное моделирование? - person Pete Kirkham; 05.10.2009
comment
ОП уже понимает моделирование ролей объектов и, следовательно, нет смысла объяснять это. Я объяснил, что такое реляционное сопоставление объектов и где он может найти больше ответов. Я не понимаю, почему за меня проголосовали. - person Edwards; 05.10.2009
comment
Я сожалею, что это действительно не имеет никакого смысла. Я никогда не упоминал «объектно-реальное моделирование», я сказал объектно-реляционное сопоставление и моделирование ролей объектов, как я могу понять, о чем вы говорите. Я гуглил их, но я хочу знать разницу от людей, которые используют методы. - person Cool Hand Luke; 05.10.2009
comment
За вас проголосовали, потому что до того, как вы отредактировали, в вашем посте было так много опечаток, что это даже не имело смысла. - person Pete Kirkham; 05.10.2009