Databases, Types, and the Relational Model: The Third Manifesto [pdf]
This purely about database language semantics, not other aspects of database systems. In other words, it&#x27;s a manifesto about languages for databases, and a criticism of SQL in particular.<p>The challenges of a database language are different than those of a general purpose language. Queries live a long time, spread over all kinds of applications (and different versions) and reports and scripts. And the data is always growing and changing. Constraints and declarative queries help bridge the concerns of the readers and writers of the data.<p>I read quite a few books by Date &amp; Darwen, in particular, <i>Temporal Databases and the Relational Model</i>. Out of that came my work on Exclusion Constraints and Range Types for PostgreSQL, which allow you to deal with ranges of time (with beginning and end) much more effectively. So I believe the authors have good insights.<p>But they are definitely in an ivory tower. They make strong claims about superiority of one approach over another without connecting with practice. You can feel their frustration that their ideas aren&#x27;t put into practice, but they underestimate the difficulty of doing so. And I suspect that to bridge that gap enough to see a net benefit over SQL would require some revisions and amendments to their theories.<p>I believe haskell has some really nice answers to problems in database languages, and that database queries would be a great application area for a haskell-like language. It&#x27;s too bad traditional PL theory people and DB people don&#x27;t mix a little more.