HOME

TheInfoList



OR:

db4o (database for objects) was an embeddable
open-source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
object database for
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's List ...
and .NET developers. It was developed, commercially licensed and supported by
Actian Actian is a computer software company headquartered in Sunnyvale, California that provides data management software. In July 2018, Actian was acquired by HCL Technologies and Sumeru Equity Partners for $330 million. On December 31, 2021, HCL Tech ...
. In October 2014, Actian declined to continue to actively pursue and promote the commercial db4o product offering for new customers.


History

The term object-oriented database system dates back to around 1985, though the first research developments in this area started during the mid-1970s. The first commercial object database management systems were created in the early 1990s; these added the concept of native database driven persistence into the field of object-oriented development. The second wave of growth was observed in the first decade of the 21st century, when object-oriented databases written completely in an
object-oriented language Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of pro ...
appeared on the market. db4o is one of the examples of such systems written completely in Java and C#. The db4o project was started in 2000 by chief architect Carl Rosenberger, shipping in 2001. It was used in enterprise and academic applications prior to its commercial announcement in 2004 by newly created private company Db4objects Inc. In 2008 db4o was purchased by
Versant corporation Versant Object Database (VOD) is an object database software product developed by Versant Corporation. The Versant Object Database enables developers using object oriented languages to transactionally store their information by allowing the re ...
, which marketed it as open-source bi-licensed software: commercial and the
GNU General Public License The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the Four Freedoms (Free software), four freedoms to run, study, share, and modify the software. The license was th ...
(GPL).


Overview

db4o represents an object-oriented database model. One of its main goals is to provide an easy and native interface to persistence for
object oriented programming Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of pro ...
languages. Development with db4o database does not require a separate
data model A data model is an abstract model that organizes elements of data and standardizes how they relate to one another and to the properties of real-world entities. For instance, a data model may specify that the data element representing a car be co ...
creation, the application's class model defines the structure of the data. db4o attempts to avoid the object/relational impedance mismatch by eliminating the relational layer from a software project. db4o is written in
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's List ...
and .NET and provides the respective APIs. It can run on any operating system that supports Java or .NET. It is offered under licenses including GPL, the db4o Opensource Compatibility License (dOCL), and a commercial license for use in proprietary software. Developers using
relational database A relational database is a (most commonly digital) database based on the relational model of data, as proposed by E. F. Codd in 1970. A system used to maintain relational databases is a relational database management system (RDBMS). Many relatio ...
s can view db40 as a complementary tool. The db4o-RDBMS data exchange can be implemented using db4o Replication System (dRS). dRS can also be used for migration between object (db4o) and relational (
RDBMS A relational database is a (most commonly digital) database based on the relational model of data, as proposed by E. F. Codd in 1970. A system used to maintain relational databases is a relational database management system (RDBMS). Many relation ...
) technologies. As an
embedded database An embedded database system is a database management system (DBMS) which is tightly integrated with an application software; it is embedded in the application. It is a broad technology category that includes: * database systems with differing ap ...
db4o can be run in application process. It is distributed as a library (jar/dll).


Features


One-line-of-code database

db4o contains a function to store any object: objectContainer.store(new SomeClass()); SomeClass here does not require any interface implementations, annotations or attributes added. It can be any application class including third-party classes contained in referenced libraries. All field objects (including collections) are saved automatically. Special cases can be handled through writing custom type handlers.


Embeddable

db4o is designed to be embedded in clients or other software components invisible to the end user. Thus, db4o needs no separate installation mechanism, but comes as a single library file with a footprint of around 670kB in the .NET version and around 1MB in the Java version.


Client-server mode

Client/server version allows db4o to communicate between client and server-side applications. It uses TCP/IP for client-server communication and allows to configure port number. Communication is implemented through messaging. Due to a feature referred to as "Generic Reflection", db4o can work without implementing persistent classes on the server. However, this mode has limitations.


Dynamic schema evolution

db4o supports automatic object schema evolution for the basic class model changes (field name deletion/addition). More complex class model modifications, like field name change, field type change, hierarchy move are not automated out-of-the box, but can be automated by writing small utility update program (see
documentation Documentation is any communicable material that is used to describe, explain or instruct regarding some attributes of an object, system or procedure, such as its parts, assembly, installation, maintenance and use. As a form of knowledge manageme ...
). This feature can be viewed as an advantage over relational model, where any change in the schema results in mostly manual code review and upgrade to match the schema changes.


Native queries

Rather than using string-based APIs (such as SQL,
OQL Object Query Language (OQL) is a query language standard for object-oriented databases modeled after SQL and developed by the Object Data Management Group (ODMG). Because of its overall complexity the complete OQL standard has not yet been fully ...
, JDOQL,
EJB QL EJB QL or EJB-QL is a portable database query language for Enterprise Java Beans. It was used in Java EE applications. Compared to SQL, however, it is less complex but less powerful as well. History The language has been inspired, especially EJB3 ...
, and SODA), Native Queries (NQ) allow developers to simply use the programming language itself (e.g., Java, C#, or VB.NET) to access the database and thus avoid a constant, productivity-reducing context switch between programming language and data access API. Native Queries also provide
type safety In computer science, type safety and type soundness are the extent to which a programming language discourages or prevents type errors. Type safety is sometimes alternatively considered to be a property of facilities of a computer language; that is ...
, as well as remove the need to sanitize against
code injection Code injection is the exploitation of a computer bug that is caused by processing invalid data. The injection is used by an attacker to introduce (or "inject") code into a vulnerable computer program and change the course of execution. The res ...
(see
SQL Injection In computing, SQL injection is a code injection technique used to attack data-driven applications, in which malicious SQL statements are inserted into an entry field for execution (e.g. to dump the database contents to the attacker). SQL inj ...
).


LINQ

LINQ Language Integrated Query (LINQ, pronounced "link") is a Microsoft .NET Framework component that adds native data querying capabilities to .NET languages, originally released as a major part of .NET Framework 3.5 in 2007. LINQ extends the langua ...
support is fully integrated in db4o for .NET version 3.5. LINQ allows the creation of object-oriented queries of any complexity with the benefit of compile-time checking, IDE Intellisense integration and automated refactoring. Due to integration with some open-source libraries db4o also allows optimized LINQ queries on Compact Framework. LINQ can be used both against relational and object data storage, thus providing a bridge between them. It can also be used as an abstraction layer, allowing to easily switch the underlying database technology.


Disadvantages

The drawbacks and difficulties faced by other Object Databases also apply to Db4o: :Other things that work against ODBMS seem to be the lack of interoperability with a great number of tools/features that are taken for granted concerning SQL, including but not limited to industry standard connectivity, reporting tools,
OLAP Online analytical processing, or OLAP (), is an approach to answer multi-dimensional analytical (MDA) queries swiftly in computing. OLAP is part of the broader category of business intelligence, which also encompasses relational databases, repor ...
tools, and
backup In information technology, a backup, or data backup is a copy of computer data taken and stored elsewhere so that it may be used to restore the original after a data loss event. The verb form, referring to the process of doing so, is "back up", w ...
and recovery standards. Object databases also lack a formal mathematical foundation, unlike the
relational model The relational model (RM) is an approach to managing data using a Structure (mathematical logic), structure and language consistent with first-order logic, first-order predicate logic, first described in 1969 by English computer scientist Edgar F. ...
, and this in turn leads to weaknesses in their query support. However, some ODBMSs fully support SQL in addition to navigational access, e.g. Objectivity/SQL++,
Matisse Henri Émile Benoît Matisse (; 31 December 1869 – 3 November 1954) was a French visual artist, known for both his use of colour and his fluid and original draughtsmanship. He was a draughtsman, printmaker, and sculptor, but is known prima ...
, and
InterSystems InterSystems Corporation is a privately held vendor of software systems and technology for high-performance database management, rapid application development, integration, and healthcare information systems. The vendor's products includInterSy ...
CACHÉ. Effective use may require compromises to keep both paradigms in sync. Disadvantages specific to Db4o may include: * Lack of full-text indexing, poor performance on
full-text search In text retrieval, full-text search refers to techniques for searching a single computer-stored document or a collection in a full-text database. Full-text search is distinguished from searches based on metadata or on parts of the original texts ...
* Lack of Indexing for string types, meaning text based searches can potentially be very slow * "There is no general query language like SQL which can be used for data analyzing or by other applications. This does not allow db4o to be very flexible in a heterogeneous environment" * Replication cannot be done administratively—i.e. one needs to program an application to achieve replication. "This is contrary to most RDBMS, where administrators manage servers and replication between them." * Deleted fields are not immediately removed, just hidden until the next
Defrag ''DeFRaG'' (also capitalised as ''defrag'', abbreviated as df, and its name comes from « Défis Fragdome ») is a free software modification for id Software's first-person shooter computer game ''Quake III Arena'' (''Q3A''). The mod is dedicate ...
* No built-in support to import/export data to/from text,
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. T ...
or
JSON JSON (JavaScript Object Notation, pronounced ; also ) is an open standard file format and data interchange format that uses human-readable text to store and transmit data objects consisting of attribute–value pairs and arrays (or other ser ...
files


Portability and cross-platform deployment

db4o supported Java's JDK 1.1.x through 6.0 and runs on
Java EE Jakarta EE, formerly Java Platform, Enterprise Edition (Java EE) and Java 2 Platform, Enterprise Edition (J2EE), is a set of specifications, extending Java SE with specifications for enterprise features such as distributed computing and web serv ...
and
Java SE Java Platform, Standard Edition (Java SE) is a computing platform for development and deployment of portable code for desktop and server environments. Java SE was formerly known as Java 2 Platform, Standard Edition (J2SE). The platform uses Ja ...
. db4o also runs with
Java ME Java Platform, Micro Edition or Java ME is a computing platform for development and deployment of portable code for embedded and mobile devices (micro-controllers, sensors, gateways, mobile phones, personal digital assistants, TV set-top ...
dialects that support reflection, such as
CDC The Centers for Disease Control and Prevention (CDC) is the national public health agency of the United States. It is a United States federal agency, under the Department of Health and Human Services, and is headquartered in Atlanta, Georgi ...
,
Personal Profile Personal may refer to: Aspects of persons' respective individualities * Privacy * Personality * Personal, personal advertisement, variety of classified advertisement used to find romance or friendship Companies * Personal, Inc., a Washington, ...
,
Symbian OS Symbian is a discontinued mobile operating system (OS) and computing platform designed for smartphones. It was originally developed as a proprietary software OS for personal digital assistants in 1998 by the Symbian Ltd. consortium. Symbian ...
, SavaJe and
Zaurus The Sharp Zaurus is the name of a series of personal digital assistants (PDAs) made by Sharp Corporation. The Zaurus was the most popular PDA during the 1990s in Japan and was based on a proprietary operating system. The first Sharp PDA to use ...
. Depending on customer demand, db4o will also run on dialects without reflection, such as
CLDC The Connected Limited Device Configuration (CLDC) is a specification of a framework for Java ME applications describing the basic set of libraries and virtual-machine features that must be present in an implementation. The CLDC is combined with one ...
,
MIDP Mobile Information Device Profile (MIDP) is a specification published for the use of Java on embedded devices such as mobile phones and PDAs. MIDP is part of the Java Platform, Micro Edition (Java ME) framework and sits on top of Connected Limit ...
,
BlackBerry The blackberry is an edible fruit produced by many species in the genus ''Rubus'' in the family Rosaceae, hybrids among these species within the subgenus ''Rubus'', and hybrids between the subgenera ''Rubus'' and ''Idaeobatus''. The taxonomy of ...
and
Palm OS Palm OS (also known as Garnet OS) was a mobile operating system initially developed by Palm, Inc., for personal digital assistants (PDAs) in 1996. Palm OS was designed for ease of use with a touchscreen-based graphical user interface. It is provi ...
. db4o was successfully tested on
JavaFX JavaFX is a software platform for creating and delivering desktop applications, as well as rich web applications that can run across a wide variety of devices. JavaFX has support for desktop computers and web browsers on Microsoft Windows, Linu ...
and
Silverlight Microsoft Silverlight is a discontinued application framework designed for writing and running rich web applications, similar to Adobe Inc., Adobe's Run time environment, runtime, Adobe Flash. A plugin for Silverlight is still available for a v ...
. db4o ran on Android. db4o uses a custom feature called "generic reflector" to represent class information, when class definitions are not available, which allows to use it in a mixed Java-.NET environment, for example Java client - .NET server and vice versa. Generic reflector also aids the conversion of the project between environments, as the database does not have to be converted.


Documentation and support

db4o provides sources of documentation: tutorial, reference documentation, API documentation, online paircasts and blogs. Information can also be retrieved from forums and community additions (articles, translated documentation sources, sample projects etc.). For commercial users db4o suggests dDN (db4o developer network) subscription with guaranteed 24-hour support and live pairing sessions with the client – Xtreme Connect.


Object Manager

Object Management Enterprise (OME) is a db4o database browsing tool, which is available as a plugin to Eclipse and MS Visual Studio 2005/2008. OME allows the browsing of classes and objects in the database, connection to a database server, building queries using drag&drop and using database statistics. OME provide some administrative functions as indexing, de-fragmentation and backup. OME was initially suggested to customers as a commercial product only available to dDN subscribers. From the db4o version 7.8 OME was included into standard db4o distribution and the source was made available to the public in db4o svn repository.


Versions

db4o releases development, production and stable builds. Development version provides the newest features and is released for testing, community feedback and evaluation. Production version is meant to be used in production environment and includes features that have been already evaluated and proven by time. Stable version is meant to be used in final product shipment. db4o also runs a continuous build, which is triggered by any new change committed to the SVN code repository. This build is open to community and can be used to evaluate the latest changes and acquire the newest features. db4o build name format is meant to provide all the necessary information about the version, time of build and supported platform: For example: db4o-7.2.30.9165-java.zip db4o – name of the product, i.e. db4o database engine 7.2 – the release number 30 – iteration number, i.e. a sequential number identifying a development week 9165 – SVN revision number, corresponding to the last commit that triggered the build java – Java version of db4o. .NET version is identified by “net” for .NET 2.0 releases or “net35” for .NET 3.5 version. .NET version includes the corresponding Compact Framework release. db4o public SVN repository is also available for the developers to get the source code and build versions locally with or without custom modifications. Below is a short summary of the main features of the stable, production and development builds:


References


Further reading

* Stefan Edlich, Jim Paterson, Henrik Hörning, Reidar Hörning, ''The definitive guide to db4o'',
Apress Springer Nature or the Springer Nature Group is a German-British academic publishing company created by the May 2015 merger of Springer Science+Business Media and Holtzbrinck Publishing Group's Nature Publishing Group, Palgrave Macmillan, and Macm ...
, 2006, * Ted Neward,
The busy Java developer's guide to db4o
', (7-article series),
IBM DeveloperWorks IBM Developer is a global community of coders, developer advocates, and digital resources that help developers learn, build, and connect. The IBM Developer website (previously known as IBM developerWorks) hosts a wide range of resources, tools, a ...


External links


Article_about_RETSCAN,_a_retina
_scanning_system_using_db4o.html" ;"title="retina">Article about RETSCAN, a retina
scanning system using db4o">retina">Article about RETSCAN, a retina
scanning system using db4o Drdobbs.com. {{DEFAULTSORT:Db4o (Object Database) Object-oriented database management systems Free database management systems NoSQL Free software programmed in C Sharp Free software programmed in Java (programming language)