In this last part of the assignment you will complete the query language you have been building in programs 3 and 4. In this assignment you should build on the code you have been completing. In the routine evaluate_query you should set up a mechanism to output the result of each type of query.
Queries come in four basic forms:
You should complete the code you worked on in program 4. The basic pieces for the queries are already attached to the code. You will likely want to add evaluation routines to the nodes corresponding to PROJECT, SELECT and JOIN queries.
NOTE NOTE:In order to make this project easier and because it is coming at the end of the semester, you will only be responsible for implementing each operation indenpendently. You do not need to implement operators such that they can be composed. For example, you will need to implement code to work on queries like this:
PROJECT (S.sid, S.sname) ([Sailors S]); SELECT (S.sid == 5) ([Sailors S]); JOIN (S.sid == R.sid) ([Sailors S]) ([Reserves R]);
but not for a query like this:
PROJECT (S.sname) (SELECT (S.sid == 5) ([Sailors S]));
You are only responsible for implementing queries that have one PROJECT, SELECT or JOIN operation.
There are no special implementation requirements. You may implement any access method you like for resolving project and select queries and any join mechanism.
This program will include a number of opportunities for extra credit. You may complete any of the following (note that extra credit points will not be considered when assigning grade breakpoints, but will be used in final grade assignment).
Print out your versions of all the code you add. You should test your code by showing examples of the various query commands. Note that you should test your code extensively considering many possible combinations of commands. You should hand in copies of all of your tests. Next, write up a team report of how your code is implemented. This report should give an overview of how you completed the various sections of this project. It should also discuss the algorithms you used to solve the problem. This report should be at least two pages long but no longer than four pages. Each team member should also write up an individual report (at least half a page but no more than a page) discussing their contributions to the coding process and how the overall team interaction went.
You must also submit your code electronically (but only once for each team). To do this go to the link https://webapps.d.umn.edu/service/webdrop/rmaclin/cs4611-1-s2004/uploa d.cgi and follow the directions for uploading a file.
To make your code easier to check and grade please use the following procedure for collecting the code before uploading it:
rmaclin/prog05Note that the suffix of all C++ code files (not .h files) should be ".C". Only code files (only rules files, .c, .C, and .h files) should be stored in this directory.
tar cf prog05.tar login/prog05