Rosetta::SeeAlso - External resources that you really ought to look at
This document is a central location within the Rosetta distribution where any important recommendations of or links to external resources go. This includes both resources that helped me when I made Rosetta, as well as Resources that are or could be related to Rosetta.
During my work on this project, I found the following resources to be particularly useful:
This is the Hugh Darwen's and Christopher J. Date's home on the web for "The Third Manifesto" (TTM), their formal proposal for a solid foundation for data and database management systems (DBMSs); like Edgar F. Codd's original papers, TTM can be seen as an abstract blueprint for the design of a DBMS and the language interface to such a DBMS. Rosetta has officially incorporated this blueprint into its own design, and implements its rules without compromise. The TTM web site contains various useful documents and links on the subject, some being specified further below.
Christopher J. Date - "Database in Depth: Relational Theory for Practitioners, 1st edition, Oreilly, 2005 (ISBN: 0-596-10012-4)"; see http://www.oreilly.com/catalog/databaseid/.
This is the first printed book that I read fully, which is related to The Third Manifesto, and it was my main introduction. It explains in an easy to follow matter just what the relational data model really is, a solid and provable logical system, and partially contrasts with SQL's distorted view of it. While being easy to follow, the book is written towards people that are already database professionals, and doesn't go into the basics that we should already know.
Christopher J. Date, Hugh Darwen - "Databases, Types, and The Relational Model: The Third Manifesto, 3rd edition, Addison-Wesley, 2006 (ISBN: 0-321-39942-0)"; see http://www.aw-bc.com/catalog/academic/product/0,1144,0321399420,00.html.
This is the thicker, college level textbook about The Third Manifesto, and it is the most central of the authors' publications, able to stand alone and present nearly everything important. It includes an informal overview of both the relational model and a theory of types, a reference section with the Manifesto proper and a grammar for a teaching language based on its principles called Tutorial D, a larger section which explains and rationalizes the parts of the Manifesto, and sections that do likewise for type inheritence what the earlier sections do with the Manifesto proper.
Note that the web site for The Third Manifesto, mentioned above, has reproduced several chapters and appendicies from this book. Chapter 4 (http://web.onetel.com/~hughdarwen/TheThirdManifesto/CHAP04.pdf) is the 15-page heart of the book and has the actual TTM definition, upon which the rest of the book expands on, rationalizes, and gives examples of. Chapter 5 (http://web.onetel.com/~hughdarwen/TheThirdManifesto/CHAP05.pdf) gives the the complete grammar of "Tutorial D", which is a computationally complete programming language with fully integrated database functionality, whose principal purpose is to serve as a teaching vehicle.
Edgar F. Codd - "A Relational Model of Data for Large Shared Data Banks"
Reprinted from Communications of the ACM, Vol. 13, No. 6, June 1970, pp. 377-387. Copyright © 1970, Association for Computing Machinery, Inc.
This is the second famous 1969/1970 publication that first presented a relational model of data to the world, which is the basis for the modern database industry.
This web page of Whitemarsh Information Systems Corporation, run by one of the people on the SQL standard drafting community, has copies of the official SQL:2003 and SQL:1999 specification documents, and other related helpful documents about SQL, in PDF format. For example, "an almost indistinguishable delta on the actual SQL 2003 database standard" is at http://www.wiscorp.com/sql/sql_2003_standard.zip (warning, large file).
Unicode Standard official documentation.
The Wikipedia article on the relational data model, and related topics.
Also, the vendor documentation for various relational and/or SQL databases such as MySQL and SQLite were regularly consulted, and various other sites.
Besides the Rosetta DBMS framework, other projects exist which attempt to implement The Third Manifesto fully and without compromise (that lack anti-TTM features), though their current implementations may be incomplete and/or in development. None of these use 'SQL' as their native language.
These software projects are released under a free and open source license, as Rosetta is, so you have the freedom to examine the project source code, change it, and redistribute it:
Rel is a relational database server, written by Dave Voorhis (firstname.lastname@example.org), that implements Date and Darwen's "Tutorial D" language mainly "by the book". It is written in Java (version 1.5) and is operating-system independent. It is licensed under the GNU GPL.
Duro is a relational database library, written by René Hartmann (email@example.com). It is written in C (with a Tcl interface), is implemented on top of the Berkeley DB database library, and runs on all POSIX/Unix-like and 32-bit Windows operating systems. It is licensed under the GNU GPL.
These software projects are released without access to the project source code or permission to change them, though some are available at zero cost:
Opus is a command-line relational database development system, written by David Cauz (firstname.lastname@example.org) and Paul Church, that implements its own "Opus" language (that has the syntactic style of C). It is written in C and only runs on Windows.
These project designs were made for academic purposes and don't include implementations:
This is a final year project by UMIST student Peter Nicol.
Some DBMS exist which desire to support TTM principles but still justify themselves to provide features that are anti-TTM. They may or may not use a SQL dialect as their command language.
Genezzo is a micro kernel style enterprise-strength SQL database server, written mainly by Jeffrey Cohen (email@example.com), currently under construction. It is written in a hybrid of C and Perl 5, and runs on any operating system. It is licensed under the GNU GPL.
Note: Genezzo sans its SQL interface is currently a front-line candidate for implementing a production / industrial strength Rosetta Engine.
Dataphor is a TTM-inspired commercial database application development tool set, owned by Alphora (a division of Softwise, Inc.), that implements its own "D4" language. While TTM conformant in many other respects, Alphora found it necessary to support SQL-style nulls. It is written to the .Net platform and only runs on Windows. It is implemented using a federated server that employs various other database engines for storage.
Teradata is a commercial DBMS that, as far as the developers know, is the only SQL-DBMS that supports and/or defaults to set semantics. They also support, but don't encourage the use of, a mode that supports bag semantics. Bindings for many programming languages exist, including for Perl 5.
Many DBMS exist which do not expressly support TTM principles and/or actively embrace anti-TTM features. Many of those use a SQL dialect as their primary or only interface; a relative few are listed here.
SQLite is a small library that implements a fully transactional file-based SQL database engine, written mainly by D. Richard Hipp (Hwaci - Applied Software Research). It is written in C (with creator-bundled Tcl bindings) and runs on any operating system, being particularly suited for embedded devices. It is committed to the public domain and can be used in any other license of program. Bindings for many programming languages exist, including for Perl 5.
PostgreSQL is a powerful SQL database server, owned by the PostgreSQL Global Development Group. It is written in C and runs on any operating system. It is licensed under a BSD-like license, specifically the license of the University of California. Bindings for many programming languages exist, including for Perl 5.
MySQL is a multi-engine SQL database server, owned by MySQL AB. It is written in C and runs on any operating system. It is dual-licensed under the GNU GPL (at no cost) and under a proprietary license (for a fee). Bindings for many programming languages exist, including for Perl 5.
Firebird is a mature SQL database server, forked from the open sources of InterBase by Inprise/Borland; portions are owned by Inprise/Borland and members of the Firbird Foundation. It is written in C++ (newer version) and runs on any operating system. Portions are licensed under various Mozilla-Public-like licenses, specifically the Interbase Public License and the Initial Developer's Public License. Bindings for many programming languages exist, including for Perl 5.
Many DBMS exist that are neither TTM/D-based nor primarily SQL based; a relative few are listed here.
This documentation is pending.
This documentation is pending.
This documentation is pending.
These other Perl 5 packages also work in the problem domain of managing data or data definitions or connections to databases:
DBI, Tangram, DBIx::Class, HDB, Class::DBI, Pixie, Alzabo, DBIx::SQLEngine, SPOPS, DBIx::SearchBuilder, DBIx::RecordSet, DBIx::Abstract, DBIx::AnyDBD, DBIx::Browse, DBIx::DBH, MKDoc::SQL, Data::Transactional, DBIx::ModelUpdate, DBIx::ProcedureCall, DB::Ent, DBIx::DBSchema, DBIx::Namespace, TripleStore, Data::Table, ORM, OOPS, SQL::Statement, SQL::Parser, SQL::Translator, SQL::YASP, SQL::Generator, SQL::Schema, SQL::Abstract, SQL::Snippet, SQL::Catalog.
This file is part of the Rosetta DBMS framework.
Rosetta is Copyright (c) 2002-2006, Darren R. Duncan.
See the LICENCE AND COPYRIGHT of Rosetta for details.
The ACKNOWLEDGEMENTS in Rosetta apply to this file too.