# D (data language specification)

**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.

## Overview

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

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.

## Implementations

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.
- Project:M36 - a mathematically-coherent relational algebra database management system written in Haskell.
- 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.

## References

- C. J. Date and Hugh Darwen (2007, Addison-Wesley)
*Databases, Types, and the Relational Model: The Third Manifesto*, a third edition superseding first and second editions that are the two books listed below. ISBN 0-321-39942-0 - Date, C. J.; Darwen, Hugh (1998).
*Foundation for object/relational databases: The Third Manifesto: a detailed study of the impact of objects and type theory on the relational model of data including a comprehensive proposal for type inheritance*(1st ed.). Reading, MA: Addison-Wesley. xxi, 496. ISBN 0-201-30978-5. LCCN 98010364. OCLC 38431501. LCC QA76.9.D3 D15994 1998. - Date, C. J.; Darwen, Hugh (2000).
*Foundation for Future Database Systems: The Third Manifesto: a detailed study of the impact of type theory on the relational model of data, including a comprehensive model of type inheritance*(2nd ed.). Reading, MA: Addison-Wesley Professional. xxiii, 547. ISBN 0-201-70928-7. LCCN 00035527. OCLC 43662285. LCC QA76.9.D3 D3683 2000.