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 Postgres 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.
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.
External links
- The Third Manifesto
- Tutorial D , (Chapter 11 of Database Explorations with some minor revisions)
- Tutorial D grammar in alphabetical order of BNF terms
- ALGEBRA, an abstract relational algebra, A, referenced in the definition of Tutorial D.
- Alphora
- Rel - An Implementation of Date and Darwen's database languageTutorial D.
- Duro - a relational database management system
- Dee - makes Python relational
- 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.
- Alf - Relational Algebra at your Fingertips, a Ruby implementation of relational algebra inspired by Tutorial D, that you can try online.
- relational.js, a logic-programming package that implements A and provides a Horn-clause theorem-proving system.