Skip to content

omarsamir27/aquaDB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

168 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AQUAdb

Single-User Relational Database Management System

Authors

Abstract

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

How to Use

The following instructions assume that you have cargo and rustc installed on your machine.

Running the server for the first time:

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 -- init

This will initialize the catalogue and AQUA folder in your home directory.

Running the Server:

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 

Running the Client:

Use the following command

cargo run --package aquaDB --bin aqua-client

Create a new database:

This 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 to an existing database:

connect db aqua

Create a new table

create 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.

Project Progress

  • 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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages