sample database system

In this project, you are asked to design and implement a sample database system. Here are
general requirements.

The system should support a data model, which can be relation (as in MySQL) or
JSON (as in Firebase and MongoDB), or any other model of your choice. Users of the
system will structure their data using the model provided by the system.
• The system should have its own query language which should be different from
existing query languages, including SQL, and queries provided by Firebase and
MongoDB. It is ok that the language is like natural language, e.g., “find employees
who are at least 25 years old”.
• The query language should support projection (selecting a subset of rows), filtering
(selecting rows), join (e.g., combining multiple data tables), grouping, aggregation,
and ordering.
• The system should also provide commands for inserting, deleting, and updating the
data. These commands can be like that in existing database systems.
• You are free to decide how you store the data in a data model (e.g., you may store a
table in a file), and how you implement the data modification commands above.
• Your system should not load the entire database into the memory and process
queries and data modifications on the entire database. Instead, you should assume
that the database may potentially handle a large amount of data that might not fit in
the main memory.
• You should implement an interactive command line interface (similar to MySQL,
MongoDB, sftp clients, etc.) for users to interact with the systems, issue commands,
and get results. As an example, suppose your database is called MyDB, your
interface may look like:

o MyDB > create table person(a int);
o MyDB>Tablecreated.
o MyDB > insert into …
o MyDB > find employees who are at least 25 years old o MyDB>…
o MyDB > exit
• You should show how to create a database using your system to store multiple realworld
data

sets, and how the queries and data modifications work on the data sets.
• Your dataset should be some existing real-world dataset available on the Web. For
example,
Kaggle, google, etc. are good places to find such datasets。

Leave a Reply

Your email address will not be published. Required fields are marked *