About Apache Derby (also known as JavaDB and IBM Cloudscape)

Apache Derby is a DB subproject of Apache Software Foundation. It’s one of its commercial-quality, open-source database solutions licensed for distribution at no charge to the public.

Derby roots are in JDBMS database developed by Cloudscape back in 1997. Renamed to Cloudscape, then acquired by Informix, which was in turn acquired by IBM in 2001. IBM, contributed the database code to Apache in 2004.

Derby is based on Java, SQL and JDBC standards. It includes embedded JDBC driver, so it can be included in any Java-based application. Derby is extremely small – complete database engine and its embedded driver consume just 2.6MB of space. It can even be used in a client/server mode, not only as an embedded solution.

It’s very easy for Java applications to use Derby as its data store. However, it’s not really a good client/server solution. With rather low performance and locking issues, you may want to reconsider your database choice unless all you need is an embedded database (also, a well-known embedded alternative is SQLite). Users report Derby to be a rock-solid embedded database. Keep in mind its modest performance. Complex queries have significant hit on Derby performance, as well. In H2 database’s comparison of H2, HSQLDB and Derby, Derby turned out to be the slowest of the Java embedded databases.

Sun Corporation packaged Derby as JavaDB in JDK 6 and today Oracle (who acquired Sun) continues that practice. IBM packages Derby as Cloudscape.

All our applications are .NET applications. We opted to support Java-based Derby by migrating it to .NET platform using IKVM.NET, which automatically migrates Java bytecode to .NET bytecode. Therefore, we have native support for Derby and can read, write and query Derby.