В этой статье есть несколько проблем. Помогите улучшить ее или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти сообщения )
|
Разработчик(и) | Актийский |
---|---|
Стабильный релиз | 8.0 |
Написано в | C# , Java |
Операционная система | Кроссплатформенный |
Тип | База данных объектов |
Лицензия | GNU General Public License (GPL) db4o Opensource Compatibility License (dOCL) Проприетарная лицензия |
db4o (база данных для объектов) была встраиваемой объектной базой данных с открытым исходным кодом для разработчиков Java и .NET . Она была разработана, лицензирована и поддерживалась Actian . В октябре 2014 года Actian отказалась от дальнейшего активного продвижения и продвижения коммерческого продукта db4o для новых клиентов. [1]
Термин объектно-ориентированная система баз данных появился около 1985 года, хотя первые исследовательские разработки в этой области начались в середине 1970-х годов. Первые коммерческие системы управления объектными базами данных были созданы в начале 1990-х годов; они добавили концепцию нативной базы данных, управляемой персистентностью, в область объектно-ориентированной разработки.
Вторая волна роста наблюдалась в первом десятилетии XXI века, когда на рынке появились объектно-ориентированные базы данных, написанные полностью на объектно-ориентированном языке . db4o — один из примеров таких систем, написанных полностью на Java и C#.
Проект db4o был начат в 2000 году главным архитектором Карлом Розенбергером и запущен в 2001 году. Он использовался в корпоративных и академических приложениях до его коммерческого анонса в 2004 году недавно созданной частной компанией Db4objects Inc.
В 2008 году db4o была куплена корпорацией Versant , которая позиционировала ее как программное обеспечение с открытым исходным кодом, имеющее два вида лицензий: коммерческую и GNU General Public License (GPL).
db4o представляет собой объектно-ориентированную модель базы данных . Одной из ее основных целей является предоставление простого и нативного интерфейса для сохранения для объектно-ориентированных языков программирования . Разработка с использованием базы данных db4o не требует создания отдельной модели данных , модель классов приложения определяет структуру данных. db4o пытается избежать несоответствия объектно-реляционного импеданса , исключая реляционный уровень из программного проекта. db4o написан на Java и .NET и предоставляет соответствующие API. Он может работать в любой операционной системе, поддерживающей Java или .NET. Он предлагается по лицензиям, включая GPL, db4o Opensource Compatibility License (dOCL) и коммерческую лицензию для использования в проприетарном программном обеспечении.
Разработчики, использующие реляционные базы данных, могут рассматривать db4o как дополнительный инструмент. Обмен данными db4o-RDBMS может быть реализован с использованием db4o Replication System (dRS). dRS также может использоваться для миграции между объектными (db4o) и реляционными ( RDBMS ) технологиями.
Как встроенная база данных db4o может быть запущена в процессе приложения. Она распространяется как библиотека (jar/dll).
db4o содержит функцию для хранения любого объекта:
objectContainer.store ( new SomeClass () ) ;
SomeClass здесь не требует никаких реализаций интерфейса, аннотаций или добавленных атрибутов. Это может быть любой класс приложения, включая сторонние классы, содержащиеся в указанных библиотеках.
Все объекты полей (включая коллекции) сохраняются автоматически. Особые случаи могут быть обработаны путем написания пользовательских обработчиков типов. [2]
db4o разработан для встраивания в клиенты или другие программные компоненты, невидимые для конечного пользователя. Таким образом, db4o не нуждается в отдельном механизме установки, а поставляется как один файл библиотеки с размером около 670 КБ в версии .NET и около 1 МБ в версии Java.
Клиент-серверная версия позволяет db4o взаимодействовать между клиентскими и серверными приложениями. Она использует TCP/IP для клиент-серверной связи и позволяет настраивать номер порта. Связь осуществляется посредством обмена сообщениями.
Благодаря функции, называемой "Generic Reflection", db4o может работать без реализации постоянных классов на сервере. Однако этот режим имеет ограничения. [3]
db4o поддерживает автоматическую эволюцию схемы объектов для основных изменений модели класса (удаление/добавление имени поля). Более сложные модификации модели класса, такие как изменение имени поля, изменение типа поля, перемещение иерархии, не автоматизированы из коробки, но могут быть автоматизированы путем написания небольшой программы обновления утилиты (см. документацию).
Эту функцию можно рассматривать как преимущество по сравнению с реляционной моделью, где любое изменение схемы приводит в основном к ручному просмотру кода и обновлению для соответствия изменениям схемы.
Вместо использования API на основе строк (таких как SQL , OQL , JDOQL, EJB QL и SODA), Native Queries (NQ) позволяют разработчикам просто использовать сам язык программирования (например, Java, C# или VB.NET) для доступа к базе данных и, таким образом, избегать постоянного, снижающего производительность переключения контекста между языком программирования и API доступа к данным. Native Queries также обеспечивают безопасность типов , а также устраняют необходимость очистки от внедрения кода (см. SQL Injection ).
Поддержка LINQ полностью интегрирована в db4o для .NET версии 3.5. LINQ позволяет создавать объектно-ориентированные запросы любой сложности с преимуществами проверки во время компиляции, интеграции IDE Intellisense и автоматизированного рефакторинга.
Благодаря интеграции с некоторыми библиотеками с открытым исходным кодом db4o также позволяет оптимизировать запросы LINQ на Compact Framework.
LINQ может использоваться как для реляционного, так и для объектного хранения данных, обеспечивая тем самым мост между ними. Он также может использоваться как уровень абстракции, позволяя легко переключать базовую технологию базы данных.
Недостатки и трудности, с которыми сталкиваются другие объектные базы данных, применимы и к Db4o:
К недостаткам, характерным для Db4o, можно отнести:
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 и наоборот. [3] Универсальный рефлектор также помогает преобразовывать проект между средами, поскольку базу данных преобразовывать не нужно.
db4o предоставляет источники документации: учебник, [5] справочную документацию, [6] документацию API, [7] онлайн-трансляции [8] и блоги. [9] Информацию также можно получить с форумов [10] и из дополнений сообщества [11] (статьи, переведенные источники документации, примеры проектов и т. д.).
Для коммерческих пользователей db4o предлагает подписку dDN (сеть разработчиков db4o) с гарантированной круглосуточной поддержкой и сеансами живого сопряжения с клиентом – Xtreme Connect. [12]
Object Management Enterprise (OME) — это инструмент просмотра баз данных db4o, который доступен как плагин для Eclipse и MS Visual Studio 2005/2008. OME позволяет просматривать классы и объекты в базе данных, подключаться к серверу базы данных, строить запросы с помощью перетаскивания и использовать статистику базы данных.
OME предоставляет некоторые административные функции, такие как индексирование, дефрагментация и резервное копирование. OME изначально предлагался клиентам как коммерческий продукт, доступный только для подписчиков dDN. Начиная с версии db4o 7.8 OME был включен в стандартный дистрибутив db4o, а исходный код был доступен общественности в репозитории db4o svn. [13]
db4o выпускает сборки для разработки, производства и стабильные сборки. Версия для разработки предоставляет новейшие функции и выпускается для тестирования, получения отзывов сообщества и оценки. Производственная версия предназначена для использования в производственной среде и включает функции, которые уже были оценены и проверены временем. Стабильная версия предназначена для использования в окончательной поставке продукта.
db4o также запускает непрерывную сборку, которая запускается любым новым изменением, зафиксированным в репозитории кода SVN. Эта сборка открыта для сообщества и может использоваться для оценки последних изменений и получения новейших функций.
Формат имени сборки db4o призван предоставить всю необходимую информацию о версии, времени сборки и поддерживаемой платформе:
Например: db4o-7.2.30.9165-java.zip
db4o – название продукта, т.е. движок базы данных db4o
7.2 – номер релиза
30 – номер итерации, т.е. порядковый номер, идентифицирующий неделю разработки
9165 – номер ревизии SVN, соответствующий последнему коммиту, запустившему сборку
java – версия db4o для Java. Версия .NET идентифицируется как «net» для версий .NET 2.0 или «net35» для версии .NET 3.5. Версия .NET включает соответствующую версию Compact Framework.
Разработчикам также доступен публичный SVN-репозиторий db4o, позволяющий получить исходный код и создавать версии локально с пользовательскими изменениями или без них.
Ниже приведен краткий обзор основных особенностей стабильной, производственной и разрабатываемой сборок:
Версия | Функции |
---|---|
Стабильный (db4o-7.4) [14] | Выпуск Sharpen (конвертер Java в C#) |
Производство (db4o-7.4) [14] | Выпуск Sharpen (конвертер Java в C#) |
Разработка (db4o-7.10) [15] |
|
Последний релиз Versant (db4o-8.0) [1] Ноябрь 2012 г. | Java, .NET 3.5, .NET 4.0 |
{{cite web}}
: CS1 maint: архивная копия как заголовок ( ссылка ){{cite web}}
: CS1 maint: архивная копия как заголовок ( ссылка ){{cite web}}
: CS1 maint: архивная копия как заголовок ( ссылка )