Самая большая проблема, которую я видел, - это отсутствие стандартизации. В мире РСУБД вы можете получить довольно далеко от любой случайной базы данных, если знаете SQL. В основном они реализуют его с небольшими вариациями. Я не знаю ни одной существующей РСУБД, которая не выполняет SQL: вы почти можете использовать «RDBMS» и «SQL» взаимозаменяемо.
Ближайшей вещью для OODBMS является, возможно, OQL, что было полным провалом.
Ни одна база данных никогда не применяла ее. Я использовал довольно красивые коммерческие OODBMS пару лет назад, но (по состоянию на 2007 год или около того, и он был на основной версии 8 или 9), он даже не поддерживал запрос объекта по его названию. В руководстве было сказано, что эта часть OQL, с которой они еще не добрались, пока не дошла. (Я не уверен, но вы, возможно, смогли отказаться от обычного вызова, чтобы сделать это.)
Большинство баз данных объектов, которые я видел недавно, имеют интерфейсы на родном языке, а не язык запросов, такой как OQL. Система, которую я использовал, например, поддерживала (только!) Perl и VB, IIRC. Ограничение аудитории только несколькими языками (или принуждение их писать обертки, как мы это делали) - это не способ завоевать друзей.
Из-за этого конкуренции нет, поэтому нет простого плана резервного копирования. Если вы поместите свои данные в MS-SQL и Microsoft перестанет его поддерживать, вы можете, возможно, сбросить свои данные в Postgres и перенести свои запросы без особых проблем. (Это может быть много работы, если у вас много запросов, но я не сомневаюсь, что вы это сделаете. Это боль, но не техническая сложность.) Или Oracle, или MySQL, или многие другие, как коммерческие и бесплатно.
Нет такой вещи с OODBMS: если тот, который вы используете, взлетает вверх, или они берут его в направлении, которое вам не полезно, или вам не хватает ключевой функции, которая вам нужна, вы можете 'просто сбрасывайте свои данные в конкурирующие OODBMS и отправляйте свои запросы. Вместо этого вы говорите об изменении основной библиотеки и изменении массивной архитектуры. Настолько реалистично, что вы ограничены коммерческой OODBMS, которой вы действительно доверяете (можете назвать хотя бы один?), Или OODBMS с открытым исходным кодом, которым вы доверяете своей команде, чтобы поддерживать, когда все идет плохо.
Если это звучит как FUD, извините, я этого не хотел. Но я был там, и с точки зрения управления проектами я бы не стал возвращаться, хотя среда программирования может быть замечательной. Еще один способ подумать: посмотрите, как популярное функциональное программирование сегодня, несмотря на то, что это хорошая идея. OODBMS - это так, но хуже, потому что это не просто ваш код, а ваш код и ваши данные. Сегодня я бы с радостью начал крупный проект в Эрланге, но я все равно не стал бы использовать OODBMS.
Поставщики OODBMS: чтобы изменить это, вам необходимо make it easy to leave you for your competitors. Вы можете выкопать OQL и фактически реализовать это, или сделать это на уровне API, таком как ODBC, или что-то еще. Даже стандартный формат дампа (с использованием JSON?) И инструменты для импорта/экспорта в/из того, что для нескольких OODBMSs, станет отличным началом.
«Если это не сломано, не меняйте его», это настолько глупо ... почему делает что-то лучше или быстрее развивает программное обеспечение. Мой последний компьютер не сломался, когда я его изменил, это было просто МЕДЛЕННО !!!!Стремление к лучшему, более эффективные решения - моя цель как разработчик. – billy