Relational Databases are Dead, Long Live Relational Databases

Google’s BigTable — GQL Reference:

A GQL query cannot perform a SQL-like “join” query.

A Google employee (second post by “ryan”):

We’ve had good results when we take a step back and think about our data models from a different angle. Most app developers are accustomed to designing SQL data models in a certain way, with a normalized schema, foreign keys, fixed column types, etc. With Google App Engine, you can often get good results by loosening the normalization and other restrictions, and often by doing more work in writes instead of queries.

Joins in CouchDB

If you’d be using an SQL database, you’d obviously have two tables with foreign keys and you’d be using joins. But what would the “obvious” approach in CouchDB look like?

CouchDB first impressions:

Joins, of course, are simply not possible… but in the right situations you wouldn’t need ‘em.

Amazon SimpleDB — A different perspective (in the comments):

You are right as far as I can see, that there is no join syntax in SimpleDB.

Normalization and table joins are so 2007.

Update: for more discussion see the reddit comments.