SimpleDBM - A Database Manager

Introduction

The goal of SimpleDBM project is to build a Relational Database Manager in Java. It is primarily an educational project. The aim is to implement a number of key features of a Relational Database, such as:

  1. Transactions
  2. Write Ahead Log
  3. Multiple Isolation Levels
  4. BTree Indexes
  5. Entry Level SQL-92
  6. System Catalogs

One of the design goals is to build the DBMS in a modular fashion where each Module can be used on its own. In practice, this is difficult because there are bound to be dependencies amongst Modules. A conscious effort is being made to to restrict the dependencies to a small set of well specified interfaces.

There will be two major sub-systems in the dbms backend. The Data Manager subsystem will be responsible for implementing transactions, locking, tuple management, and index management.

The second major sub-system will be called SQL Manager. Its job will be to parse SQL statements, produce optimum execution plans, and execute the SQL statements.

SimpleDBM is being built in Java 5.0 and will use new features such as java.util.concurrent package and Generics available in this version of Java. SimpleDBM will not be compatible with previous versions of Java.

Further Topics


Copyright © 2005 by Dibyendu Majumdar