D (data language specification)

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

D is a set of prescriptions for what Christopher J. Date and Hugh Darwen believe a relational database management system ought to be like. It is proposed in their paper The Third Manifesto, first published in 1994 and elaborated on in several books since then.


D by itself is an abstract language specification. It does not specify language syntax. Instead, it specifies desirable and undesirable language characteristics in terms of prescriptions and proscriptions. Thus, D is not a language but a family of both implemented and future languages. A "valid D" must have a certain set of features, and exclude a different set of features which Date and Darwen consider unwise and contrary to the relational model proposed by E. F. Codd in 1970. A valid D may have additional features which are outside the scope of relational databases.

Tutorial D[edit]

Tutorial D is a specific D which is defined and used for illustration in The Third Manifesto. Implementations of D need not have the same syntax as Tutorial D. The purpose of Tutorial D is both educational and to show what a D might be like. Rel is an implementation of Tutorial D.


There are numerous implementations of D, with varying degrees of maturity and compliance.

  • D's first implementation is D4, written in C#. D4 is the flagship language of Alphora's Dataphor.
  • Rel is the most complete implementation of Tutorial D (including the Inheritance Model), and is heavily used in teaching.
  • Andl is an relational programming language with SQLite or PostgreSQL backend and Thrift interfaces.
  • Alf - Relational Algebra at your Fingertips, a Ruby implementation of relational algebra inspired by Tutorial D, that you can try online.
  • Dee makes Python relational.
  • Duro - a relational database management system
  • SIRA_PRISE stands for Straightforward Implementation of a Relational Algebra - Prototype of a Relational Information Storage Engine.
  • TclRal - Tcl Relational Algebra Library, TclRal is an implementation of relational algebra, based on concepts in The Third Manifesto, as an extension of the Tcl language.


External links[edit]