Skip to content

CodeClaper/simpledb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

An object-oriented database engine --SimpleDb

Introduction

SimpleDb (can also be called simpledb as well) is a light, statble and effecive object-oriented relational server-side database engine. SimpleDb is intended to design and store more intuitive data model. When you use object-oriented language to build program like java, python etc, the object data structure in the code and the table structure in the SimpleDb database have direct one-to-one mapping relationship. By SimpleDb, you can easily save the data in memory to disk without unnecessary data structure conversion as well as reading data from disk.

Requirements

Linux OS

SimpleDb is a server-side database engine and only support Linux environment for now.

Lex & Yacc

SimpleDb uses Lex & Yacc to realize sql lexical analyzer and parser. If you want to compile the sql file, you must have theses tools or substitutes.

Debian or Ubuntu

sudo apt-get install flex bison

Centos

yum install flex bison

GNU Readline

SimpleDb cli bases the GNU Readline as command helper, so if you want use cli, you must install GNU Readline firstly.

Debian or Ubuntu

sudo apt install libreadline-dev

Centos

yum install readline-devel

Compile

Compile all Makefile:

make

If you want debug:

make DEBUG=1

RoadMap

  • B-Tree data page store
  • Based Lex&Yacc implement sql parser
  • Create a table using sql
  • Query data using sql
  • Insert data using sql
  • Update data using sql
  • Delete data using sql
  • Query special column data using sql
  • Query data under conditions using sql
  • Query data with aggregate function sum, avg, max, min, count
  • Multiple data type, bool, char, int, float, double, varchar string(dynamic scalable string), date, timestamp and reference
  • Data type valid check
  • Implement MVCC, support transaction and support the four types of transaction isolation levels
  • ACID
  • Refer function for manipulating Reference Data.
  • Subquery
  • Join query
  • Support index, B+Tree index store
  • Support view
  • Bin Log
  • Distributed

About

Simpledb is a simple, light object relation datbase.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published