Introduction

March 15, 2012

Example right-aligned image

FastFileDB is an open source database built with Java. It is a file-based database with SQL supported. One of the advantages is it reduces the initial loading/start time as it loads data into the memory only when necessary. The starting time is maintained regardless the size of database. It is suitable for Java application with embedded database required. It can also be applied in simple and fast transaction like adding or removing. It is optimized for certain types of application. This latest version 1.5 has been greatly improved. It works for most common used SQL commands like CREATE/DROP, INSERT/UPDATE/DELETE, and SELECT.

The Vision of FastFileDB is to provide fast data management service with the minumum use of computer resources.

The Mission of FastFileDB is to maintain/optimize the balance between speed and size. It aims to keep itself simple and small to provide fast data handling services regardless of the data size.

Objectives:

  1. To code with minimum classes, use only core class to reduce unnecessary object initiation.
  2. To keep it's size not more than 1Kb, use core Java library classes only. (It is developed with JDK1.3, it can be executed on JDK1.2.2)
  3. To simplify complicated transaction process and to optimize performance constantly.

 

Limitation of FastFileDB.

This database engine core library files has been nearly finalized. The database itself has been improved. However, there are limitations until current development progress, as listed below:

  1. Primary Key: Non-combination key only. Suggested to set one column as primary key. If more than one column are set, each column must has unique row. Non-combination index checking only.
  2. Join: INNER JOIN is supported only. All other JOINs will be treated as INNER JOIN. No algorithm applied for key matching. If Table A contains 100 rows and Table B contains 50 rows, a total of 100 X 50, which is 500 matching will be performed.
  3. GROUP BY...HAVING: Function matching not supported. E.g. SELECT ITEMNAME, MAX(COST) FROM ITEM WHERE MAX(COST) > 1000 (not supported)
  4. Transaction mode is not 2-phase commit. Only one session is supported. Either COMMIT or ROLLBACK.
  5. The only mode is AUTOCOMMIT = false. At the end of query execution, remember to execute COMMIT or COMMIT TABLE [table name] to save data, or DATA WILL BE LOST after program closing.

The above issues will be fixed and improved in future verison.

Features of FastFileDB

Features: