2011-02-03 6 views
1

Мне интересно, почему ORM настолько популярен, и все используют реализации ORM спецификаций JDO и JDA, вместо использования объектных баз данных, которые также реализуют эти спецификации. Производительность намного лучше с использованием базы данных объектов.Можно ли рассматривать реляционную БД ORM + как систему управления объектно-реляционными базами данных?

objectdb (СДО, JPA) db4o (СДО)

я прав, если я скажу, что это потому, что разработчики должны использовать как объектную модель и реляционная модель в своих приложениях?

Как насчет ORDBM? Есть ли какой-нибудь ORDBM (который стоит попробовать) или может привязывать реляционное сопоставление объектов вместе с реляционной базой данных ORDBM?

+1

, потому что никто не был уволен за покупку Oracle;) – Gugussee

+0

Также обратите внимание, что большинство «программ OO» на самом деле не делают OO вообще. Посмотрите на это следующим образом: * equals * и * hashCode *, как они сделаны на Java, принципиально несовместимы с OO (это хорошо объясняется в «Эффективной Java» * Джошуа Блох, а также в отличном Bill Venners/Martin Odersky интервью на Artima и т. Д.) [Это ** факт ** btw, нет необходимости спорить: невозможно встретить контракт equals/hashCode в классе без конечных элементов, а также проблемы с интерфейсами]. И все же вряд ли у кого есть проблемы с Java с * equals * и * hashCode *. Зачем? Потому что большинство программ Java не являются программами OO. – Gugussee

ответ

3

Основная причина, по которой люди используют СУБД с OR Mapper, а не базу данных объектов, состоит в том, что РСУБД глубоко укоренились, хорошо поняты и хорошо поддерживаются всеми. Если вы используете базу данных объекта, который вы будете иметь проблемы

  • найти людей, чтобы поддержать его
  • с помощью существующих инструментов для создания отчетов, резервное копирование и т.д.
  • , имеющие другие приложения доступа к данным

Вероятно, есть еще много сомнений (независимо от того, оправдано или нет, я не могу сказать) могут ли базы данных объектов действительно обеспечивать одинаковое или лучшую производительность и безопасность в реальном текстовом сценарии.

+0

Будучи периферийным в ситуации объяснения исполнительной команды, что наш «контракт на поддержку» «хорошо, есть этот чувак в нидерландах, который обычно публикует хорошие ответы на форуме, когда мы сталкиваемся с ошибкой ...», а затем дается 3 месяца, чтобы перейти на решение IBM ... да, покупательная поддержка от известного поставщика и знакомство с существующим ИТ-персоналом - это большая проблема. – Affe

1

По моему опыту, использование базы данных объектов привело к значительно меньшему количеству кода и значительно более чистому проекту.

Он сделал разницу между 6-недельной кривой обучения для RDBMS + ORM (LINQ-to-Entities) и 1-недельной кривой обучения для баз данных объектов (для db4o).

0

Обычно используемые СУБД, с которыми вы можете ознакомиться (например, Oracle, SQL Server, DB2, MySQL, PostGreSQL), не являются реляционными. Они основаны на модели SQL, которая является чем-то совершенно другим, хотя в некотором роде она похожа на реляционную модель.

объектно-реляционного СУБД означает то же самое, что Реляционных СУБД. Это еще один способ сказать, что РСУБД в принципе будет поддерживать любой неограниченный набор типов данных и реляционных операций над ними. Программное обеспечение O/R Mapping действительно относится только к тому, что SQL-СУБД не делают этого очень хорошо.