Menu

Home

David Livingstone

Project Members:

The website which supports the development of the Raquel Database System is in 2 linked parts. The part supporting the development of the implementation is here on Sourceforge. The part supporting its academic development (its vision, and the design and specification of RAQUEL both as a language, and as a DBMS) is on the Northumbria University website.
The '[Rationale]' explains what underlies the separation into 2 parts.

[PoCDBMSDocumentation] gives an overview of the Proof of Concept (= PoC) DBMS which was the first prototype of the Raquel Database System. It provides a summary of the prototype, as well as references to a number of documents describing specific aspects and sections of the prototype's program code.

Because a fully-fledged Raquel DBMS will be a large and complex piece of software, the strategy for developing it is to incrementally develop the PoC prototype DBMS. The first milestone aimed for is a single-user DBMS with a reasonable degree of relational functionality applicable to data of the main basic types. Further milestones will lead to an ever more functional DBMS.

The first increment in functionality towards the first milestone is the ability to manage relational variables (= relvars) in an existing DB. 'Manage' means create, remove, and find out about the relvars in a DB. [IncrementOne] describes this increment.

In preparation for implementing 'Increment One', the PoC code was reviewed. It consists entirely of OO classes. The modularisation of many classes is inappropriate, and some classes have too much coupling of their various contents. In due course, significant re-factoring will be necessary in order for the DBMS to be developed. [Re-factoring] describes the essential re-factoring necessary in the long run. Further re-factoring may turn out to be necessary.

Nevertheless the initial strategy to implement 'Increment One' was to incorporate it into the OO PoC code. In the process, more would be learnt about the code. This would provide a sounder understanding of it and a better basis for the re-factoring required to facilitate the next increment of development. [BackgroundIncrementOne] describes the work planned to be done to implement 'Increment One'.

However after considerable work carrying out the strategy, significant problems were found, additional to those inherent in the work described in [BackgroundIncrementOne]. They are described in [ProblemsOrigStrategy]. The document [RelevanceOfOO] summarises the problems and opportunities of using OO in a Raquel DBMS, and concludes that the initial strategy was a mistake and should be abandoned. (N.B. Where implementation aspects of the PoC code improve on the original design, they will be retained).

Consequently a new strategy has been decided on, which carries out re-factoring of the PoC code prior to implementing the 'Increment One' functionality.

The essence of the new strategy is the following :
1. Carry out the first re-factoring task given in [Re-factoring], i.e. Separate Out the Implementations of Relational Assignments & Operators.
2. Create a new RAQUEL Token class that only contains and provides what is necessary for all RAQUEL Tokens. Objects of this class will be the tokens forming the nodes of the Parse Tree. They omit algorithms to implement operators/assignments.
3. Ensure the 3 modules of the Input Stack (the 'top' sub-stack of the stack of sub-stacks that constitutes the Raquel DBMS) correspond to mathematical functions, in accordance with the architectural design of the DBMS, in an environment provided by the Input Stack.
4. Implement the Meta Stack, which comprises the 2 modules Meta Operator and Data Definition. They carry out the expression re-writing required to implement the Meta operator, and to implement the <==Attribute, <==Key, and <--Remove assignments, respectively.
5. Revise appropriately the Raquel DBMS object class (which would provide the remainder of the DBMS stack) to execute operators/assignments, using the factored-out implementation algorithms.

[NewStrategy] describes the new strategy in more detail. [ImplementNewStrategy] documents how this is being carried out.

[Testing] describes the principles of testing used in the Raquel project.

[Standards] describes the programming standards and guidelines to be used in the Raquel project.

[Installation] is about how users install the Raquel DBMS and the Raquel Teaching Tool (a 'Driver' application available for users to feed the DBMS with statements to execute, and receive the DBMS's responses to their execution).


Related

Wiki: BackgroundIncrementOne
Wiki: ImplementNewStrategy
Wiki: IncrementOne
Wiki: Installation
Wiki: NewStrategy
Wiki: PoCDBMSDocumentation
Wiki: ProblemsOrigStrategy
Wiki: Rationale
Wiki: Re-factoring
Wiki: RelevanceOfOO
Wiki: Standards
Wiki: Testing