First Look: DB4Objects Database
As a freelancer, I've had to work with databases quite often. In my earlier years, I worked with Microsoft Access, creating Visual Basic for Applications forms to interact with my data tables and queries. As my needs matured, I moved on and embraced MySQL and the various front ends for it due to the increased versatility offered by such solutions. (For instance, MySQL supports cross-platform Web applications powered by PHP or similar languages.)
With this background, I was interested in trying out DB4Objects (DB4O) from db4objects Inc., as yet another step in my database education.
For those who are used to the server-side MySQL way of doing things, it is important to know that the dichotomy of client side and server side does not exist in object-oriented databases. The front end contains the database. Unlike MySQL, the database is part of the program itself instead of merely being an external resource for the program to link to. Entries in an object-oriented database are directly presented as assets that are available for the rest of the program to use in any way the programmer intends. In this way, object-oriented database solutions are meant to be extensions to Visual Basic .NET, C#, Python, C++ and similar languages.
DB4O is available in Java and .NET, and Mono (an open source project similar to the .NET API). I opted to test the .NET version because it was a smaller download and offered a faster setup on the Windows platform. Several minutes later, DB4O was downloaded and set up. Since the installed package basically amounts to a runtime environment and tutorial, there is no user interface or any out-of-the-box way to interact with the database. Such things are left to the programmer to implement.
Knowing absolutely nothing about how to interact with the API, I appreciated the inclusion of a comprehensive tutorial with the software package. The tutorial itself is very nice. It offers a "getting started" section with essential topics, such as how to connect to the database, how to store and retrieve objects, and how to perform simple queries. Useful code snippets are provided, making it easy for developers to integrate DB4O into their projects. Code and documentation for more advanced functions is also readily available.
DB4O 7.0 has a few new features. A Transparent Activation feature makes the retrieval of data objects easier than ever before, since such actions now require only one line of code. There's also improved handling of complex object graphs. This version automatically detects the depth of object graphs, ensuring that only the minimum required data is loaded from disk, which improves overall performance.
DB4O is available for free under the GNU General Public License, provided that any project that uses DB4O is also released under the GPL. Usage of DB4O in closed source software requires a separate commercial license. The commercial license offers premium services and support not available to free GPL users.
db4objects plans to release a beta .NET version of DB4O 7.0 in December. Product release depends on developer input, but it is expected to occur in the first quarter of 2008, according to an announcement issued by the company.
Registered users can download DB4O here.