Axion is an OpenSource RelationalDatabase engine written in and primarily for the JavaLanguage.
One nice thing about it is that it can be used for UnitTesting as a MockDatabase or TestDatabase by dynamically creating a transient (exists only in memory and the contents are never persisted) database and tables in your testcase's setUp and then shutting it down in your tearDown method. (It also supports a "persistent" mode, of course.)
Like several other databases, it uses SnapshotIsolation rather than locking to support (serializable strength) transactions. The use of SnapshotIsolation model has strengths and weaknesses. See SnapshotIsolation for more discussion.
Axion has a simple Table Interface. The Table Interface lets programmer quickly add custom table types. The custom table types can be used to expose the existing data files as RDBMS tables to the Axion engine. The user can take advantage of the rich set of features. Natively Axion supports delimited, fixed width, Tagged EBCDIC flat files as External tables. Axion also has limited support for federated database thru ExternalDatabaseTable? that leverages JDBC API.
Syntax for External table:
CREATE EXTERNAL TABLE tablename (col-definition, col-definition, ...) ORGANIZARION(loadtype={delimited | fixedwidth | taggedebcdic | remote} , property-definition, property-definition ...)
Note: For remote load type, you can use "CREATE DATABASE LINK connection-spec" command to create a link first before creating remote database table
Notable features that makes Axion different from other OpenSourceJavaDatabases :
Axion's current weaknesses
See OpenSourceJavaDatabases for other OpenSource database engines implemented in Java.