Каковы плюсы и минусы объектных баз данных? - PullRequest
10 голосов
/ 14 сентября 2008

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

Ответы [ 7 ]

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

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

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

10 голосов
/ 05 октября 2008

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

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

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

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

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

2 голосов
/ 26 сентября 2009

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

2 голосов
/ 14 сентября 2008

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

Тед Ньюард объясняет это и многое другое об OODBMS намного лучше, чем это.

1 голос
/ 14 сентября 2008

Минусы:

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

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

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

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

0 голосов
/ 06 октября 2008

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

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

Что, вероятно, правда, так это то, что вы привязываете свои данные к своей доменной модели, но в этом суть!

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

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

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

0 голосов
/ 04 октября 2008

Сёрен

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

...