Какова лучшая ценность объектной базы данных Java? - PullRequest
7 голосов
/ 29 декабря 2010

Какая база данных объектов Java с лучшим значением имеет:

  • Простота использования: одна строка кода для хранить любой объект.
  • Эффективное использование памяти: только загружает то, что нужно, не весь объект каждый раз (т.е. «Прозрачная активация»).
  • Автоматически изменять объекты при манипулировать (т.е. "Прозрачный Постоянство ").
  • Собственные запросы (нет необходимости в SQL, JDOQL и т. Д.)
  • Free

, где кто-либо имеет опыт со следующими:

  • db4o
  • JODB
  • joafip
  • MyOODB

Ответы [ 3 ]

4 голосов
/ 24 января 2011

Я могу ответить только за db4o. У меня недостаточно опыта работы с другими базами данных, которые вы назвали.

  • Простота использования: я думаю, что db4o очень прост во многих сценариях. Вы добавляете банку db4o в свой проект, открываете базу данных и начинаете хранить и запрашивать объекты .
  • Эффективное использование памяти: да, db4o может это сделать. Поддерживается прозрачная активация . В этом режиме db4o загружает только те объекты, которые вы фактически используете.
  • Автоматическое изменение объектов при манипуляциях: также поддерживается .
  • Собственные запросы: Да db4o поддерживает , что. Нативные запросы отличные и мощные. Однако на практике сложные собственные запросы часто не могут быть оптимизированы и выполняются медленно. В таких случаях вам придется прибегнуть к менее элегантным запросам SODA.
  • Это бесплатно по лицензии GPL.

Еще одно преимущество db4o, в котором есть сообщество, которое может помочь и поделиться знаниями.

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

1 голос
/ 02 января 2013

Я недавно использовал HyperGraphDB , который удовлетворяет всем вашим требованиям.Я впечатлен этим: «HyperGraphDB - это универсальный механизм хранения данных с открытым исходным кодом, основанный на мощном формализме управления знаниями, называемом направленными гиперграфами. Хотя модель постоянной памяти разработана главным образом для управления знаниями, искусственного интеллекта и семантических веб-проектов, онаможет также использоваться как встроенная объектно-ориентированная база данных для проектов Java любого размера. Или графическая база данных. Или (не SQL) реляционная база данных. "

0 голосов
/ 29 декабря 2010

Взгляните на Redis:

http://redis.io/clients

У него есть клиенты Java, и, исходя из личного опыта, объекты Java лучше сопоставляются с базами данных на основе Key-Value, чем с реляционными базами данных, но с YMMV в зависимости от моделей использования и типов данных.

Примечание: Возможно, оно не удовлетворяет всем вышеперечисленным требованиям, но вы, вероятно, можете добавить такие функции самостоятельно.

Обновление: https://github.com/xetorthio/johm

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