What is it?
Apache Derby is a Java relational database management system that can be embedded in Java programs and used for online transaction processing. IBM no longer supports the Cloudscape database it acquired along with Informix. But in its open-sourced form, Apache Derby, it is a key component of technology platforms such as the WebSphere Application Server Community Edition and the forthcoming Rational Team Concert software development delivery and lifecycle management suite. IBM's former Cloudscape people are still major contributors to the Apache Derby project.
Derby is also distributed and supported by Sun as Java DB, with various support packages, ranging from basic services to a full 24x7 package. It is included with the Java SE Development Kit, and with Java Enterprise System as the Application Server's developer database. It is supported by the NetBeans IDE, Java Studio and Glassfish, among other Sun products.
Derby is an open source database implemented entirely in Java. It has a very small footprint - about 2Mbytes - for the base engine and embedded JDBC driver, making it suitable for devices that use Java Micro Edition. It can be embedded in Java applications, where it is hidden from the user, requiring no further maintenance until the application itself changes. But it is also an SQL- and JDBC-compliant relational database that can be used in client-server applications.
Like Oracle's Berkeley DB, it does not require a DBA.
Where did it originate?
IBM handed Cloudscape over to the Apache Software Foundation in 2004. Sun began shipping Java DB in 2006.
What's it for?
Sun makes a great deal of Java DB's portability: applications can be developed and tested on a laptop, for deployment on any scale of machine with a JVM, from a smartphone to a mainframe. It can be used in Web 2.0 applications, embedded in a web client to provide local, off-line persistence. It scales to hundreds of users, and embedded applications can be redeployed as client/server.
What makes it special?
Unlike Oracle's Berkeley DB, which does not support SQL at all, Java DB applications have the potential to be migrated to fuller-function SQL databases, including PostgreSQL and Oracle. IBM offers a migration path to DB2.
How difficult is it to master?
Once they have downloaded the Derby jar file, experienced Java developers should be able to work with it straight away, with support from Netbeans or Eclipse-based IDEs. There is a Derby 10 core plug-in for Eclipse.
Where is it used?
By independent software suppliers and other developers of all sizes, from those able to deploy top-of-the-range environments to start-ups dependent on community editions of IBM and Sun's development platforms.
What systems does it run on?
AIX, Linux, Solaris, Windows, z/OS. Apache's "working with Derby" page also explains how Derby can be accessed using Perl, Python, PHP and other non-Java languages and products.
What's coming up?
Sun says its acquisition of MySQL will not diminish its support for Java DB, although there is clearly an awkward overlap with the competing SQL capabilities: "Java DB is for embedded Java applications, multi-tier deployment, measured in terms of gigabytes. MySQL is for client-server applications, where clustering is needed and the database is measured in terabytes."
Rates of pay
Java developers with database and SQL skills can earn about £30,000 to £40,000.
IBM's developerWorks is still a good source of material on Derby/Cloudscape. Another good place to start is Sun's developer site. The Apache Derby site is less friendly to those not already involved, but lists products that use or work with Derby, such as Red Hat application server, Tomcat, JBoss, Struts, and Ajax development environments.