.NET Tips and Tricks

Blog archive

Two Questions with db4Objects' German Viscuso

German Viscuso is director of community management at Versant, which makes the db4o local database that we recently reviewed. Since db4o is a free, object-oriented databases that integrates easily with .NET applications, it made sense to ask German "Why an OO database?"

Peter Vogel: Why object instead of relational?

German Viscuso: Faster development and evolution of the code base, because no mapping between runtime objects and persistent storage is required. Faster runtime execution, because the relational Primary Key-Foreign Key (PK-FK) relationships are natively stored by [the] object database, which means they are resolved at runtime without CPU intensive JOIN operation. Storing the PK-FK relationship directly in the database is akin to creating the complex index overlays required in a relational database to speed JOINs. Object Databases (ODBs) are just a substantially more efficient way to store and retrieve data.

Object databases are good at dealing with complex, domain specific models. The JOIN operations of a relational database become unavoidable when the model gets complicated. If the model is sufficiently complex, there's no way to create performance-oriented single table mappings between objects and tables. You often end up with tertiary tables and even more JOINs -- this not only kills performance, it makes development difficult. Object databases allow you to avoid this completely by using pure object identity indexing from inside of database, transparent to the application developer.

PV: Is there still a place for relational databases?

GV: Yes, and there always will be. The relational database (RDB) is great technology for basic business data management and supporting ad-hoc queries in small to medium sized data environments. It's only when data gets complex and is domain driven that object databases show an advantage. When it comes to ad-hoc queries, the RDB is still the best solution -- until you pass some medium-sized data levels and move into terabyte-plus ranges. In that case, newer data warehouse solutions are clearly a better choice.

Still, if you're doing data analysis against large amounts of data using existing domain realationships, then ODBs show a significant advantage. That's why ODBs are used heavily in large scale modeling and simulation type applications like weather forecasting, defense analytics, financial risk management, online gaming, etc.

Then, of course, you have the truly massive, non-transactional, "mostly-read" space where Google FS and like technologies provide the only feasible solutions (given today's hardware). However, these application areas are outside that of the traditional database application space.

Posted by Peter Vogel on 08/03/2010 at 1:16 PM

comments powered by Disqus


  • Microsoft's Tools to Fight Solorigate Attack Are Now Open Source

    Microsoft open sourced homegrown tools it used to check its systems for code related to the recent massive breach of supply chains that the company has named Solorigate.

  • Microsoft's Lander on Blazor Desktop: 'I Don't See a Grand Unified App Model in the Future'

    For all of the talk of unifying the disparate ecosystem of Microsoft-centric developer tooling -- using one framework for apps of all types on all platforms -- Blazor Desktop is not the answer. There isn't one.

  • Firm Automates Legacy Web Forms-to-ASP.NET Core Conversions

    Migration technology uses the Angular web framework and Progress Kendo UI user interface elements to convert ASP.NET Web Forms client code to HTML and CSS, with application business logic converted automatically to ASP.NET Core.

  • New TypeScript 4.2 Tweaks Include Project Explainer

    Microsoft shipped TypeScript 4.2 -- the regular quarterly update to the open source programming language that improves JavaScript with static types -- with a host of tweaks including a way to explain why files are included in a project.

Upcoming Events