Каковы за и против объектных баз данных?

Существует большая информация там об объектно-реляционных картопостроителях и как лучше всего избежать несоответствия импеданса, все из которых, кажется, спорные вопросы, если нужно было использовать объектную базу данных. Мой вопрос состоит в том, почему это не используется более часто? Это из-за причин производительности или потому что объектные базы данных заставляют Ваши данные становиться собственными к Вашему приложению, или действительно ли это происходит из-за чего-то еще?

10
задан Sören Kuklau 14 September 2008 в 18:08
поделиться

7 ответов

  • Знакомство. Администраторы баз данных знают реляционные понятия; объектные, не так.
  • Производительность. Реляционные базы данных, как доказывали, масштабировались намного лучше.
  • Зрелость. SQL является мощным, долго разработанным языком.
  • Поддержка поставщика. Можно выбрать между намного большей первой стороной (SQL-серверы) и третьим лицом (интерфейсы администрирования, отображения и другие виды интеграции) инструменты, чем имеет место с OODBMSs.

Естественно, объектно-ориентированная модель более знакома разработчику, и, как Вы указываете, сэкономил бы один из ORM. Но к настоящему времени, реляционная модель, оказалось, была более осуществимой опцией.

См. также недавний вопрос, Объект, Ориентируемый по сравнению с Реляционными базами данных.

12
ответ дан 3 December 2019 в 15:54
поделиться

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

Ted Neward объясняет это и намного больше о OODBMSs намного лучше, чем это.

2
ответ дан 3 December 2019 в 15:54
поделиться

Я использовал db4o, который является OODB, и он решает большинство перечисленных недостатков:

  • Знакомство - Программисты знают свой язык лучше затем SQL (см. Собственные запросы),
  • Производительность - этот очень субъективен, но можно смотреть на PolePosition
  • Поддержка поставщика и зрелость - могут изменяться со временем
  • Не может использоваться программами, которые также не используют ту же платформу - существуют стандарты OODB, и можно использовать различные платформы
  • Управление версиями является, вероятно, немного сукой - Управление версиями на самом деле легче!

Профессионалы, которыми я интересуюсь:

  • Собственные запросы - Db4o позволяет Вам записать запросы на своем статическом типизированном языке, таким образом, Вы не должны волноваться о вводе с опечатками строки и нахождении данных, отсутствующих во времени выполнения,
  • Простота использования - Определяющий buissiness логика в доменном слое, слой персистентности (отображение) и наконец база данных SQL является, конечно, нарушением DRY. С OODB Вы определяете свой домен, где он принадлежит.

Я соглашаюсь - OODB имеют длинный путь для движения, но они идут. И существуют доменные проблемы там, которые лучше решены OODB,

10
ответ дан 3 December 2019 в 15:54
поделиться

Sören

Все причины, которые Вы заявили, допустимы, но я вижу, что проблемой с OODBMS является логическая модель данных. Объектная модель (или скорее сетевая модель 70-х) не является столь же простой как реляционный и является поэтому нижней.

0
ответ дан 3 December 2019 в 15:54
поделиться

Недостатки:

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

  • Меньше ресурсов, доступных онлайн для не основанная на SQL база данных

  • Никакая совместимость через типы БД (не может подкачать другому поставщику дб, не изменяя весь код),

  • Управление версиями является, вероятно, немного сукой. Я предположил бы добавление, что новое свойство к объекту не вполне так же легко как добавление нового столбца к таблице.

1
ответ дан 3 December 2019 в 15:54
поделиться

jodonnel, я' не вижу, как использование объектных баз данных связывает код приложения с данными. Можно все еще абстрагировать приложение от OODB до использования шаблона Репозитория, и замена ORM поддержала базу данных SQL при разработке вещей правильно.

Для приложения OO база данных OO обеспечит более естественное пригодное для сохранения объектов.

То, что, вероятно, верно, - то, что Вы связываете свои данные с Вашей моделью предметной области, но затем это - затруднение!

Разве не было бы хорошо иметь единственный способ посмотреть и на данные, бизнес-правила и на процессы с помощью доменного центрального представления?

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

Недостатки, просто общее отсутствие зрелости и принятия я считаю...

0
ответ дан 3 December 2019 в 15:54
поделиться

Это не имеет ничего общего с производительностью. То есть практически все приложения будут лучше работать с OODB. Но это также избавит многих администраторов баз данных от необходимости изучать новую технологию. Еще больше людей остались бы без работы, исправляя ошибки в данных. Это вряд ли сделает OODB популярными среди известных компаний. Гэвин, кажется, совершенно невежественен, лучшая ссылка была бы Кирк

2
ответ дан 3 December 2019 в 15:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: