James K. Lowden’s Parlor on the Web

portrait of the artist


I've worked with C++ and SQL since the the late 1980s. That work intersects naturally with other languages and technologies including Perl and NetBSD.

Relational scales just fine, thanks. There is an onslaught of “Big Data” these days, and there are applications that a bog-standard SQL DBMS can't handle. Not nearly as many as the current fascination with “NoSQL” would have you believe, though. If your database is measured in hundreds of gigabytes, a significant part of it — maybe all of it — can be in RAM. Such a server sounds expensive only until compared to salaries.

Free DBMSs

We must, indeed, all hang together, or most assuredly we shall all hang separately.
Benjamin Franklin

We have met the enemy and he is us.

A great deal of laudable effort is going into open-source “relational” DBMSs. Unfortunately for us all, that effort is not technically unified and most of it merely mimics what is already available from the famous proprietary vendors. Very little is grounded in relational theory or has a goal of a true Relational DBMS.

Unfortunately, the free SQL DBMS projects share no code. They have independent parsers, storage engines, wire protocols, and clients. They have distinct SQL grammars. There is no conference, not even a mailing list or usenet group, where they share information.

Relational: Free at Last discusses the state of free DBMS projects and what has to change if we are ever to move beyond SQL.

Free DBMS Projects

SQL Projects

The above are “practical” projects; the implement SQL and are chasing the proprietary DBMSs. The most mature by far is Ingres, with Postgres and Firebird probably tied for second. SQLite gets honorable mention for ease of use as a public domain, library-only implementation.

By the way, complete SQL grammars in BNF form were prepared by one Jonathan Leffler. The world owes him applause.

Tutorial D Projects

The above projects implement Tutorial D, a relational query language defined by C.J. Date and Hugh Darwen. Unlike SQL, it adheres strictly to relational algebra.

Restricted DBMS Projects

Relational Algebra DBMS project

I include sira_prise because of what we can learn from it in terms of its query language and theory. Unfortunately the restrictions make it impossible to build on or use in any significant way.

Suggested Reading

It is surprisingly difficult to find complete, authoritative information on the web for technologies and ideas that predate it. College course notes and blog entries abound, but thorough treatments are scarce and offline sources nearly always better.

If you, dear reader, have found a better online source that one of the books mentioned below, please tell me.

The Relational Model

Fabian Pascal suggests several books. It would be hard to go wrong with any of them. A couple are singled out below.
SQL and Relational Theory, 2011, C.J. Date
Relates (as it were) SQL to its theoretical origins. If you use SQL and haven't read anything about the relational model — as opposed to about SQL or your particular DBMS — I can't recommend this book highly enough. Your SQL will never be the same.
An Introduction to Database Systems (8th Edition), 2003, C.J. Date
If you want to start from scratch, start here, on an 800-page road trod by 800,000 others before you.
The relational model for database management, 1990, E.F. Codd
Twenty years on, perhaps 10% of this book is out of date. Reading Codd in the original can be difficult because he is rooted in his technological era. Yet his observations and motivations illustrate how little has changed: most of the problems and misunderstandings he mentions as faced by application programmers and end-users remain problems today. Available to members in the digital library of the ACM.
An Introduction to Relational Database Theory [pdf], 2010, Hugh Darwen
Textbook used by Hugh Darwen in his classes.