Final Exam Project
Design/Implement a NoSQL DB
CS609 - Fall 2016


Due Date: Tuesday, Dec. 6 @ 3:30 pm
Groups of 3 

This is a second draft of this document - It may change shortly

Update:  You must make your NoSQL DB accessible to the rest of the class by 12/6 so they can use it and evaluate it during the final exam time period.


For this assignment you are to design and implement a document store, column store or graph store NoSQL DB.  Your design should include:

  1. Method to store data

  2. Grammar for a query language which must include DML operations that will select rows based on specified characteristics, select specified fields and also include aggregate functions- this means your DB cannot be a simple key-value store.

  3. A strategy to log any updates to the database

  4. Indexes - e.g. based on B+ trees or some other appropriate data structure


You should allow users to:

  1.  insert data into the DB

  2. delete data from the DB

  3. Query the DB

  4. Create an index  provide some way to display the index

  5. Commit changes to DB, Insert a checkpoint, Rollback to checkpoint

Other aspects - security, concurrency?


Turn in to me:  A document describing your implementation, your grammar and query language, and a manual for using your NoSQL DB.