SQLServerCentral Editorial

Dataphor

,

Over the years, there have been several attempts to turn conventional RDBMSs into object relational databases, by inserting an intermediate layer. The driving force behind this was the generally-held assumption that the relational model could not handle complex data types.

Until the success of Hibernate 2.1, the object-relational mapping (ORM) library for Java, it had never rally worked. However, since then the race has been on to build the dominant "virtual database system". LINQ/Entity Framework is the latest in a number of attempts and SQL Server Data Services just goes to the next logical step in this process.

The problem has always been in providing a table-to-object mapper that manages to coerce data and relationships in both directions. It is a difficult trick and usually involves elaborate layers of abstraction in an effort to keep the two sides loosely coupled. Even if you get it right, you destroy the whole advantage of the relational idea: applying predicate logic to querying data, and bringing the power of formal reasoning to the task of data analysis.

The 'Third Manifesto' Relational purists, led by Christopher J Date and Hugh Darwen, have taken a different approach, always arguing that, in fact, the relational model can handle complex data types but that SQL was inadequate to the task, since it violates several relational principles.

In their third manifesto they describe what they think a relational database query language should really look like ­ a set of rules encapsulated in a "theoretical language" called D.  The primary implementation language for D is called D4 (there are others such as Rel, Duro, Muldis D, and Python Dee). It is like SQL but with closer ties to relational algebra, and is the language used by Dataphor.

Dataphor is one of the more ingenious attempts to put a front-end on any of the leading commercial databases to provide a means of developing applications faster using a mixture of D4 and a Pascal-like imperative syntax. Although it started life as a commercial product, it is now open-source. It is advanced enough in its development to run several production applications.

All these 'Third Manifesto' initiatives are interesting, though less advanced than Entity Framework.  In both cases, the real driver is to make the whole process of creating commercial applications more rapid and effective. The assumption is that if you eliminate the 'impedence mismatch' of the interface between application and database, then application development will be unconstrained.

Sound familiar? It's a grand vision though I can't help but be reminded of Phil Factor's tales of selling a programming language called, optimistically, 'The Last One'. Of course, it wasn't the last one and nor were many more that followed. Sadly, reality keeps spoiling the illusion.

Cheers,

Tony Davis

Rate

4 (1)

You rated this post out of 5. Change rating

Share

Share

Rate

4 (1)

You rated this post out of 5. Change rating