All Projects → msdeep14 → Deepdatabase

msdeep14 / Deepdatabase

Licence: gpl-3.0
A relational database engine using B+ tree indexing

Programming Languages

cpp
1120 projects

Projects that are alternatives of or similar to Deepdatabase

Pygm
🐍 Python library implementing sorted containers with state-of-the-art query performance and compressed memory usage
Stars: ✭ 156 (+387.5%)
Mutual labels:  algorithms, database
Takeoff
A rapid development environment using docker for convenience.
Stars: ✭ 271 (+746.88%)
Mutual labels:  database, development
Algorithm
The repository algorithms implemented on the Go
Stars: ✭ 163 (+409.38%)
Mutual labels:  algorithms, search-algorithm
Algorithms
A collection of algorithms and data structures
Stars: ✭ 11,553 (+36003.13%)
Mutual labels:  algorithms, search-algorithm
Algorithms
Collection of algorithms in multiple programming languages.
Stars: ✭ 395 (+1134.38%)
Mutual labels:  algorithms, search-algorithm
Interviews
A list of fancy questions I've been asked during the interviews I had. Some of them I ask when interviewing people.
Stars: ✭ 140 (+337.5%)
Mutual labels:  algorithms, database
indexer4j
Simple full text indexing and searching library for Java
Stars: ✭ 47 (+46.88%)
Mutual labels:  indexing, search-algorithm
Algorithm Notes
Comprehensive algorithms solution to help engineers prepare their interviews and future study
Stars: ✭ 44 (+37.5%)
Mutual labels:  algorithms, search-algorithm
Js Worker Search
JavaScript client-side search API with web-worker support
Stars: ✭ 345 (+978.13%)
Mutual labels:  indexing, database
Algods
Implementation of Algorithms and Data Structures, Problems and Solutions
Stars: ✭ 3,295 (+10196.88%)
Mutual labels:  algorithms, search-algorithm
Cs Books
超过1000本的计算机经典书籍、个人笔记资料以及本人在各平台发表文章中所涉及的资源等。书籍资源包括C/C++、Java、Python、Go语言、数据结构与算法、操作系统、后端架构、计算机系统知识、数据库、计算机网络、设计模式、前端、汇编以及校招社招各种面经~
Stars: ✭ 1,215 (+3696.88%)
Mutual labels:  algorithms, database
Filemasta
A search application to explore, discover and share online files
Stars: ✭ 571 (+1684.38%)
Mutual labels:  indexing, database
Awesome Ebooks
收录开源的经典技术书籍 PDF 文件及相关网站,持续更新中...
Stars: ✭ 51 (+59.38%)
Mutual labels:  algorithms, database
Ultimate Java Resources
Java programming. All in one Java Resource for learning. Updated every day and up to date. All Algorithms and DS along with Development in Java. Beginner to Advanced. Join the Discord link.
Stars: ✭ 143 (+346.88%)
Mutual labels:  algorithms, search-algorithm
Ready For Tech Interview
💻 신입 개발자로서 준비를 하기 위해 지식을 정리하는 공간 👨‍💻
Stars: ✭ 1,035 (+3134.38%)
Mutual labels:  algorithms, development
How To Prepare For Google Interview Swe Sre
This repository includes resources which are more than sufficient to prepare for google interview if you are applying for a software engineer position or a site reliability engineer position
Stars: ✭ 251 (+684.38%)
Mutual labels:  algorithms, database
Pumpkindb
Immutable Ordered Key-Value Database Engine
Stars: ✭ 1,219 (+3709.38%)
Mutual labels:  indexing, database
Js Search
JS Search is an efficient, client-side search library for JavaScript and JSON objects
Stars: ✭ 1,920 (+5900%)
Mutual labels:  indexing, database
Psycopg3
New generation PostgreSQL database adapter for the Python programming language
Stars: ✭ 278 (+768.75%)
Mutual labels:  database, development
Pgm Index
🏅State-of-the-art learned data structure that enables fast lookup, predecessor, range searches and updates in arrays of billions of items using orders of magnitude less space than traditional indexes
Stars: ✭ 499 (+1459.38%)
Mutual labels:  indexing, database

DeepDataBase

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

License: GPL v3

initial development : MiniDataBase

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
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].