This is the project repo for our senior project requirement for a Bachelor's degree in computer and communications engineering at the Faculty of Engineering , Alexandria University.
This project is an oppurtunity to experiement with database design , develop complex systems software and get our hands dirty with Rust
The following instructions assume that you have cargo and rustc installed on your machine.
When running the server for the first time on your machine, it needs to initialize its directories and catalogues. This is done using the following command.
cargo run --package aquaDB --bin aquaDB -- initThis will initialize the catalogue and AQUA folder in your home directory.
If you previously ran the server on your machine, you don't need the -- init command in when running. So, the command will be as follows.
cargo run --package aquaDB --bin aquaDB Use the following command
cargo run --package aquaDB --bin aqua-clientThis project is based on SQL but here is a guide for some basic functionalities.
use create db aqua replace aqua with any name.
This creates a new database.
connect db aquacreate table student (id int, firstname varchar, lastname varchar , create index btree s_id on (id))This creates a new table with name student that has the fields: id, firstname, lastname and has a BTREE index on id.
-
Storage Engine
-
Buffer Manager
-
Block Manager
-
Heap Pages
-
Tuple Format
-
-
Indexing
-
Hash Index
-
B+Tree
-
-
Query Execution
-
Table Creation
-
Table Scan
-
Table Sorting
-
Minimal WHERE clauses
-
Record Insertion
-
Record Deletion
-
Joins
-
-
Parser
-
Planner
-
Query Plan Optimizer
-
Client side interface