Db4o - Db4o

Db4o
Db4o-logo.gif
Разработчики) Actian
Стабильный выпуск
8.0
Написано в C # , Java
Операционная система Кроссплатформенность
Тип База данных объектов
Лицензия Стандартная общественная лицензия GNU (GPL) Лицензия
db4o Opensource Compatibility License (dOCL)
Собственная лицензия
Интернет сайт www .db4o .com  Отредактируйте это в Викиданных

db4o (база данных для объектов) была встраиваемой объектной базой данных с открытым исходным кодом для разработчиков Java и .NET . Он был разработан, лицензирован и поддерживается Actian . В октябре 2014 года Actian отказался продолжать активно продвигать и продвигать коммерческий продукт db4o для новых клиентов.

История

Термин « объектно-ориентированная система баз данных» появился примерно в 1985 году, хотя первые исследования в этой области начались в середине 1970-х годов. Первые коммерческие системы управления объектными базами данных были созданы в начале 1990-х годов; они добавили концепцию персистентности, управляемой собственными базами данных, в область объектно-ориентированной разработки.

Вторая волна роста наблюдалась в первом десятилетии 21 века, когда на рынке появились объектно-ориентированные базы данных, полностью написанные на объектно-ориентированном языке . db4o - один из примеров таких систем, полностью написанных на Java и C #.

Проект db4o был начат в 2000 году главным архитектором Карлом Розенбергером, поставка началась в 2001 году. Он использовался в корпоративных и академических приложениях до его коммерческого объявления в 2004 году недавно созданной частной компанией Db4objects Inc.

В 2008 году db4o была куплена корпорацией Versant , которая продавала его как программное обеспечение с двумя лицензиями с открытым исходным кодом: коммерческое и Стандартную общественную лицензию GNU (GPL).

Обзор

db4o представляет собой объектно-ориентированную модель базы данных . Одна из его основных целей - предоставить простой и собственный интерфейс для сохранения для объектно-ориентированных языков программирования . Разработка с использованием базы данных db4o не требует создания отдельной модели данных, модель классов приложения определяет структуру данных. db4o пытается избежать несоответствия между объектным и реляционным импедансом , удаляя реляционный уровень из программного проекта. db4o написан на Java и .NET и предоставляет соответствующие API. Он может работать в любой операционной системе, поддерживающей Java или .NET. Он предлагается по лицензиям, включая GPL, db4o Opensource Compatibility License (dOCL) и коммерческую лицензию для использования в проприетарном программном обеспечении.

Разработчики, использующие реляционные базы данных, могут рассматривать db40 как дополнительный инструмент. Обмен данными db4o-RDBMS может быть реализован с помощью db4o Replication System (dRS). dRS также можно использовать для миграции между объектными (db4o) и реляционными ( RDBMS ) технологиями.

В качестве встроенной базы данных db4o может запускаться в процессе приложения. Распространяется в виде библиотеки (jar / dll).

Функции

База данных с одной строкой кода

db4o содержит функцию для хранения любого объекта:

objectContainer.store(new SomeClass());

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

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

Встраиваемый

db4o предназначен для встраивания в клиенты или другие программные компоненты, невидимые для конечного пользователя. Таким образом, db4o не нуждается в отдельном механизме установки, а поставляется в виде единого файла библиотеки с объемом памяти около 670 КБ в версии .NET и около 1 МБ в версии Java.

Клиент-серверный режим

Версия клиент / сервер позволяет db4o обмениваться данными между клиентскими и серверными приложениями. Он использует TCP / IP для связи клиент-сервер и позволяет настроить номер порта. Связь осуществляется посредством обмена сообщениями.

Благодаря функции, называемой «Generic Reflection», db4o может работать без реализации постоянных классов на сервере. Однако у этого режима есть ограничения.

Динамическая эволюция схемы

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

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

Собственные запросы

Вместо использования строковых API-интерфейсов (таких как SQL , OQL , JDOQL, EJB QL и SODA), собственные запросы (NQ) позволяют разработчикам просто использовать сам язык программирования (например, Java, C # или VB.NET) для получить доступ к базе данных и, таким образом, избежать постоянного, снижающего производительность переключения контекста между языком программирования и API доступа к данным. Собственные запросы также обеспечивают безопасность типов , а также устраняют необходимость в дезинфекции против внедрения кода (см. Внедрение SQL ).

LINQ

Поддержка LINQ полностью интегрирована в db4o для .NET версии 3.5. LINQ позволяет создавать объектно-ориентированные запросы любой сложности с преимуществом проверки во время компиляции, интеграции IDE Intellisense и автоматического рефакторинга.

Благодаря интеграции с некоторыми библиотеками с открытым исходным кодом db4o также позволяет оптимизировать запросы LINQ на Compact Framework.

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

Недостатки

Эти недостатки и трудности , с которыми сталкиваются другие объектных баз данных также применяются к db4o:

Другие вещи , которые работают против ОСУБД , кажется, отсутствие взаимодействия с большим количеством инструментов / функций, которые принимаются как данность в отношении SQL, в том числе , но не ограничиваясь промышленным стандартом связи, инструменты отчетности , OLAP инструментов, а также резервного копирования стандартов и восстановления. В объектных базах данных также отсутствует формальная математическая основа, в отличие от реляционной модели , что, в свою очередь, приводит к недостаткам в поддержке запросов . Однако некоторые ODBMS полностью поддерживают SQL в дополнение к навигационному доступу, например Objectivity / SQL ++, Matisse и InterSystems CACHÉ. Эффективное использование может потребовать компромиссов, чтобы синхронизировать обе парадигмы.

Недостатки, характерные для Db4o, могут включать:

  • Отсутствие полнотекстового индексирования , низкая производительность при полнотекстовом поиске
  • Отсутствие индексации для строковых типов , что означает, что поиск на основе текста потенциально может быть очень медленным.
  • «Не существует общего языка запросов, такого как SQL, который можно было бы использовать для анализа данных или другими приложениями. Это не позволяет db4o быть очень гибким в гетерогенной среде»
  • Репликация не может быть выполнена административно, т. Е. Необходимо запрограммировать приложение для достижения репликации. «Это противоречит большинству СУБД, где администраторы управляют серверами и репликацией между ними».
  • Удаленные поля не удаляются сразу, а просто скрываются до следующей дефрагментации.
  • Нет встроенной поддержки для импорта / экспорта данных в / из текстовых файлов, файлов XML или JSON.

Переносимость и кросс-платформенное развертывание

db4o поддерживает версии Java JDK с 1.1.x по 6.0 и работает на Java EE и Java SE . db4o также работает с диалектами Java ME , поддерживающими отражение, такими как CDC , Personal Profile , Symbian OS , SavaJe и Zaurus . В зависимости от потребностей клиентов db4o также будет работать на диалектах без отражения, таких как CLDC , MIDP , BlackBerry и Palm OS .

db4o был успешно протестирован на JavaFX и Silverlight . db4o работал на Android .

db4o использует настраиваемую функцию, называемую «общий отражатель», для представления информации о классе, когда определения классов недоступны, что позволяет использовать ее в смешанной среде Java-.NET, например, клиент Java - сервер .NET и наоборот. Универсальный отражатель также помогает преобразовывать проект между средами, так как база данных не требует преобразования.

Документация и поддержка

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

Для коммерческих пользователей db4o предлагает подписку dDN (сеть разработчиков db4o) с гарантированной круглосуточной поддержкой и сеансами сопряжения в реальном времени с клиентом - Xtreme Connect.

Диспетчер объектов

Object Management Enterprise (OME) - это инструмент для просмотра базы данных db4o, доступный в виде подключаемого модуля к Eclipse и MS Visual Studio 2005/2008. OME позволяет просматривать классы и объекты в базе данных, подключаться к серверу базы данных, создавать запросы с помощью перетаскивания и использовать статистику базы данных.

OME предоставляет некоторые административные функции, такие как индексация, дефрагментация и резервное копирование. Первоначально OME предлагался клиентам как коммерческий продукт, доступный только подписчикам dDN. Из db4o версии 7.8 OME был включен в стандартный дистрибутив db4o, а исходный код стал общедоступным в репозитории db4o svn.

Сообщество

Сообщество зарегистрированных участников db4o выросло до более чем 60 000 участников. Важные проекты, связанные с db4o, такие как автономный диспетчер объектов, поддержка шифрования, поддержка Mono и т. Д., Полностью управляются членами сообщества. Программа Code Commander от db4o определила условия разработки проекта сообщества.

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

Версии

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

db4o также выполняет непрерывную сборку, которая запускается любым новым изменением, зафиксированным в репозитории кода SVN. Эта сборка открыта для сообщества и может использоваться для оценки последних изменений и приобретения новейших функций.

Формат имени сборки db4o предназначен для предоставления всей необходимой информации о версии, времени сборки и поддерживаемой платформе:

Например: db4o-7.2.30.9165-java.zip

db4o - название продукта, т.е. движок базы данных db4o

7.2 - номер выпуска

30 - номер итерации, т.е. порядковый номер, обозначающий неделю разработки

9165 - номер ревизии SVN, соответствующий последней фиксации, запустившей сборку

java - Java-версия db4o. Версия .NET обозначается как «net» для версий .NET 2.0 или «net35» для версии .NET 3.5. Версия .NET включает соответствующий выпуск Compact Framework.

Публичный репозиторий SVN db4o также доступен разработчикам для получения исходного кода и сборки версий локально с пользовательскими модификациями или без них.

Ниже приводится краткое изложение основных характеристик стабильной, производственной и разрабатываемой сборок:

Версия Функции
Стабильный (db4o-7.4) Выпуск Sharpen (конвертер java в c #)
Производство (db4o-7.4) Выпуск Sharpen (конвертер java в c #)
Разработка (db4o-7.10)
  • Автоматическое включение прозрачной сохраняемости db4o для Java через Eclipse
  • Прозрачное сохранение для коллекций Java
Последний выпуск Versant (db4o-8.0),
ноябрь 2012 г.
Java , .NET 3.5 , .NET 4.0

Рекомендации

дальнейшее чтение

внешняя ссылка