Why do we need another database system if MySql is already an excellent open-source database ? The answer lies in using the right tool for the right job. Despite MySql been a popular database that is easy to install and use, it strength lies in been a server database and is not developed to be embeddable in nature. Although it is possible to run MySql as native Windows service or another process just to let another application access the database, it is simply overkill in term of resource, overhead and memory. Moreover, one need to deploy MySql in the client system alongside the application.
So if a desktop application require considerable storage and powerful searching of information, embedded database will be the right choice to use. Embedded database is designed to have smaller memory and size footprint, less administrative need, to be easily programmed as a library, and easier to deploy.
Is embeddable database a new concept ? In fact, the history of embeddable database has a long history as the server database. In those old day, the mainframe is been used as database server to use to collect, process and retrieve information to the client terminal. And some form of database system is already used in early desktop application like Hypercard software running in Apple environment. The popularity of mainstream PC client database system such as dBase used to produce useful database application (etc inventory, tracking, warehouse system, accounting system) along with rise of 4GL RAD (Rapid Application Development) language (etc Visual Basic , Delphi) help to further fuel the interest of embeddable database. Microsoft developed Access and its database library become the core technology to access information from a standalone desktop application. High-level language like ‘C++’ and Java that become mainstream also encourage the growth of embeddable database library (etc Sqlite) as those language is powerful and flexible enough to create any application (etc CAD application like AutoCAD, email system like Outlook)
There are a lot of embeddable database for Java. Most provides powerful function in form of library to allow a programmer to program the database to retrieve, process and store data. Generally, the database system comes in two implementations. One is to use pure Java implementation where the entire database system is written in Java and therefore is portable across major OS (etc windows, linux, MacOX). Another way is to develop database in another language but use a Java library to access the database. The advantage of having the pure Java implementation is that it is easier to deploy and usually contains a single/few JAR library files, with consistency in its function call (API). The latter usually involved more files (etc DLL library, JAR files) and involving setup, however, it usually run faster since it is written in efficient language like C/C++.
H2, the pure Java embeddable database, is among the best of Java embeddable database. For one, its author, Thomas Culler, is a highly successful database specialist who also create the popular HSQL database. Secondly, Thomas built H2 learning from the experience of his previous work and focus on creating a usable SQLdatabase that not only flexible and powerful , but one that supported by his own dedicated website (www.h2database.com) and tools. Thomas Culler’s passion and commitment to develop H2 as the best embeddable database and his enthusiasm to answer any query about his database is the key reason for H2′s growing popularity.