Coder Social home page Coder Social logo

msdeep14 / deepdatabase Goto Github PK

View Code? Open in Web Editor NEW
41.0 4.0 11.0 7.12 MB

A relational database engine using B+ tree indexing

Home Page: https://msdeep14.github.io/projects/deepdatabase.html

License: GNU General Public License v3.0

Makefile 1.89% C++ 84.46% C 4.03% Python 1.31% Shell 0.55% JavaScript 1.86% HTML 0.69% CSS 0.07% Yacc 4.29% Lex 0.86%
database btree-indexes relational-databases bplustree data-storage search-algorithm b-plus-tree indexing cpp algorithms development bplus-tree mysql-database

deepdatabase's Introduction

DeepDataBase

A Relational database model, data storage based on B+ tree indexing

License: GPL v3

initial development : MiniDataBase

References from - https://github.com/Bug-Assassins/DFC_query_builder

QUERIES SUPPORTED BY SYSTEM

  1. SHOW Tables
  2. CREATE Table
  3. INSERT INTO Table
  4. DISPLAY Table contents
  5. SEARCH INTO Table
  6. DROP Table

SYSTEM DESIGN

The Database System is designed using C++ programming language. It stores the data on physical disk using files.

Features of system include:

1. Custom Blocks for each table:

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.

2. B+ Tree Indexing:

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.

3. Storing Meta Data of Tables:

Meta Data of the tables are stored separately which provides quick access to several information like current number of records, table name, etc.

4. Search:

1. B+ Indexed Search

For searching a record in file for particular table, B+ tree indexed search is implemented. B+ indexed search is based on primary key

2. Brute Force Search

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 Indexing here

System also calculates the time taken by the search algorithm.

DEVELOPMENT:

The whole project is initially done on eclipse platform(C/C++ perspective)-> in repo MiniDataBase

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

  1. Type make clean to clean all binary files.

  2. Type make, it will compile the project.

  3. Type ./deepdb -u user -p for running project. Password is pass

IN DEVELOPMENT:

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;

CONTRIBUTE:

You can contribute in following modules:

1. parser implementation
2. AES encryption of data, in branch dev-aes
3. Suggestion for more efficient implementation

deepdatabase's People

Contributors

msdeep14 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

deepdatabase's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.