Project History

Project History

  1. RAQUEL was first used in 1991 as a teaching language at the predecessor to the current Northumbria University School of Computing, Engineering, and Information Sciences. It was used to teach relational database principles, particularly as expressed in the different editions of C. J. Date's textbook "An Introduction to Database Systems".
  2. As a result of strong and positive student feedback, its use was broadened and deepened. In 1998 it was decided to support this teaching by the development, via student projects, of a software Teaching Tool that would demonstrate the use of relational algebra.
    The Teaching Tool was to consist of a GUI, specifically designed to teach RAQUEL, that front-ended a product called "db++" (recommended by Newcastle University) which would form the "database engine" that executed the RAQUEL statements. A sophisticated GUI was developed (written in Tcl/Tk) that in addition to an editor, included an animator and menus to select operators and assignments.
  3. After the publication of The Third Manifesto, it was decided in 2002 to form the Open Database Project Group for the purpose of developing a prototype Open Source DBMS that demonstrated The Third Manifesto specification using RAQUEL. The existing GUI was refined and re-used, but "db++" was abandoned, to be replaced by the prototype of a 'proper' DBMS. Development again proceeded via student projects.
    The precise grammatical rules and and algorithms to tokenise and parse RAQUEL statements were developed. The traditional Lex and Yacc tools were not used. Firstly, as all RAQUEL statements are simple algebraic expressions, their sophisticated functionality is an overkill. Secondly, explicitly designing the tokeniser and parser, using standard tokenising and parsing techniques, enabled full appreciation and control over the language to be maintained.
  4. In September 2008, funds were received from NStar to accelerate developments to date and build on what had already been achieved. By August 2009, a simple Proof of Concept prototype of a RAQUEL Database System had been completed. Its salient characteristic is the provision of a complete range of Join operators : all possible Natural and Generalised Joins in inner, outer and semi forms are provided. The prototype was published in September 2009. It is freely available to download from SourceForge.
    The prototype has 2 parts, a RAQUEL DBMS and a RAQUEL Teaching Tool. The latter is a refined version of the GUI already developed, but omitting the animator. The Teaching Tool enables RAQUEL statements to be created and passed over an interface to the DBMS for execution; the DBMS returns the execution results over the interface to the Teaching Tool for display. The interface allows the DBMS to be unconstrained by the Teaching Tool and vice versa. The DBMS is the raison d'etre of the project. The Teaching Tool is an example of an application using the DBMS. Any kind of application using the interface can be created. However the GUI and functionality of the Teaching Tool do build on and fulfill all the earlier work carried out to provide good teaching support.
  5. During 2010, a new web site was created (linked to the RAQUEL project on SourceForge) to support the evolution of the prototype into a worthwhile product via the Open Source route. The formation of an "Open Database Company" to provide support for an eventual product was also considered.
  6. The development of the "Proof of Concept" prototype showed the need for a comprehensive and detailed set of documentation that provides a vision, a specification and a design of the RAQUEL notation and the RAQUEL DBMS. The period from January 2011 to June 2015 was spent producing this documentation, which is now published on this website. At the language level, it includes mathematical specifications of the semantics of the operators and assignments that form the relational algebra, the design of the DB architecture, and the principles of conceptual integrity which unite the relational algebra with the scalar algebra and DB schema algebra provided by RAQUEL. At the DBMS level, the architectural principles underpinning its design are spelled out.
  7. In preparation for the development of the "Proof of Concept" prototype into a properly functioning DBMS, during the summer & autumn of 2015 its Physical Architecture - i.e. the philosophy and design approach of the program code constituting the DBMS modules - was reviewed and developed. As a result, the coding style was harmonised with that of the RAQUEL notation as far as possible; also the principles of the paper "Out of the Tar Pit" were applied to simplify code, clearly distinguish between "Essence" and "Accident" in program code, and provide a sound rationale for developing code that provides either a function, an assignment, a data type (via classes) or an environment.
  8. Several tasks were carried out in 2016. The GNU Autotools system, used to compile and install the RAQUEL software, was debugged and revised to use the latest version of Autotools. The RAQUEL DBMS now compiles on 64-bit as well as 32-bit Linux systems. The Raquel Teaching Tool now reflects all the relational operators and assignments with mathematical specifications.
  9. In 2017, RAQUEL DBMS functionality is to be extended by providing assignments to add & remove relvars, with relvars being created by the assignment of either attributes or keys; also to implement the Meta operator. As far as is practical in the process, the RAQUEL DBMS program code will be incrementally re-factored to achieve the revised Physical Architecture.
  10. In June 2017 a long-term background investigation on view-updating, based on C. J. Date's work, was completed. The result is a proposal for 'underpinning' assignments - to relvars in a view's definition - that are executed when the view is updated. It enables different view-updating strategies to be used and could be implemented in RAQUEL.