Skip to content

Flu-iid/blankDB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

blankDB: A Modular Database with Extensible Architecture

Academic Project | Focused on Separation of Concerns and Plugin Architecture

Introduction

blankDB is a research-focused SQL database with Plug-in Architecture (micro-kernel Architecture) and its core innovation is a rigorously modular design with clean component separation and non hot-swappable plugins, providing an ideal platform for database systems experimentation.

This project is written in plain python. More details in Structure.

Structure

graph LR
    U[User] --> |Request|H[IHandler]
    H -->|Query| P[IParser]
    A --> |Rules|H
    P -->|Execution List| E[IEngine]
    E -->|Raw Data| V[IView]
    V -->|Formatted Result| H
    H --> |Response|U

    subgraph Parser
        A[Analyzer]
        P --> |raw list|T[Tokenizer]
        T --> |tokenized list|PP
        PP[Precedence Parser] --> |Precedence List| P
    end

    subgraph Engine
        E <--> |I/O|T1[Table File]
    end

    subgraph View
        V
    end

    subgraph Handler
        H
    end
Loading

As it can be seen in this simple life cycle, the main components are:

  • Handler which handles user requests.
  • Parser which turns query into execution list (list with execution orders).
  • Engine which writes and reads data onto storage.
  • View that takes raw data and turn it into representable output.

these are the core components of the program.

Each of the modular parts get accessed through their corresponding component in the Core.

graph LR
    CH[Core Handler] --> CP
    CP[Core Parer] --> CE
    CE[Core Engine] --> CV
    CV[Core View] --> CH

    IH[Handler Module] <--> CH
    IP[Parser Module] <--> CP
    IE[Engine Module] <--> CE
    IV[View Module] <--> CV


subgraph ML[Modular Layer]
    IH
    IP
    IE
    IV
    subgraph CL[Core Layer]
    CH
    CP
    CE
    CV
end

end
Loading

Handler

Handler is the part that is responsible for receiving, processing, and responding to user requests. and presenting responses and results accoring to structures of view module.

Parser

parser.md

Engine

View

About

experimental DBMS for academic purposes

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages