- Notifications
You must be signed in to change notification settings - Fork12
A relational database engine using B+ tree indexing
License
msdeep14/DeepDataBase
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
initial development :MiniDataBase
References from -https://github.com/Bug-Assassins/DFC_query_builder
- SHOW Tables
- CREATE Table
- INSERT INTO Table
- DISPLAY Table contents
- SEARCH INTO Table
- DROP Table
The Database System is designed using C++ programming language.It stores the data on physical disk using files.
Features of system include:
The data is stored in blocks.
Benefits of block storage:here
All the separate row data of a particular table is stored in different file creating blocks of data. System reads as well as writes data back to files in blocks.
A separate multilevel B+ tree is created for each table. Each node contains maximum of 50 entries. Right now data storage is based only on primary key, primary key can be INTEGER or VARCHAR. By default, first column is choosen as primary key.
Meta Data of the tables are stored separately which provides quick access to several information like current number of records, table name, etc.
For searching a record in file for particular table, B+ tree indexed search is implemented. B+ indexed search is based on primary key
For searching records without providing primary key from table, brute force search algorithm is implemented. You can display selected number of columns and limit results based on where clause(see section In Development below).
Advantages of B+ Tree Indexinghere
System also calculates the time taken by the search algorithm.
The whole project is initially done on eclipse platform(C/C++ perspective)-> in repoMiniDataBase
Further modifications are done on Ubuntu System,Atom editor. Recent project is compiled on MacOS X.
For execution: Open directory DeepDatabase(branch:master) and on terminal
Typemake clean to clean all binary files.
Typemake, it will compile the project.
Type./deepdb -u user -p for running project. Password is
pass
For displaying the table contents, you have to select option 5 from menu and the queries supported by it are, do care about syntax, since complete parser is not implemented.
select * from table_name;
select id,name from table_name;
select id,name from table_name where id = 1;
You can contribute in following modules:
1. parser implementation2. AES encryption of data, in branch dev-aes3. Suggestion for more efficient implementation
About
A relational database engine using B+ tree indexing