Apache Derby Introduction

What is Apache Derby?

Apache Derby is an open-source fully transactional relational database system. Derby is developed and written in Java. It provides a small-footprint standards-based database engine that can be embedded directly into Java applications. Derby provides data integrity and sophisticated transaction support. In its default configuration, there is no separate database server is required to be installed and maintained by users.

Apache Derby History

Let us see a year by year evaluation of Apache Derby.

1996: Apache Derby was originated by Nat Wyatt and Howard Torf as a start-up at Cloudscape Inc, an Oakland, California.

1997: The first release of the database engine was called JBMS 1.0.

1999: Cloudscape was Acquired by Informix Software.

2001: The database was acquired by IBM from the Informix Software.

2003: IBM Cloudscape 5.1, 5.1FP1 & FP2.

2004: IBM provided the code called Derby to Apache.

2005: Apache incubator graduate Derby.

2006: Sun joined the Derby project and started packaging Derby in the JDK branded as Java DB.

2007: IBM announced that they would withdraw marketing and support for the Cloudscape product but continue to contribute to the Apache Derby project.

Apache Derby Features

The following are some of the major features of Apache Derby.

1. ANSI/ISO standard SQL

Apache Derby supports row-level locking, Subselects, views, relational constraints, Triggers, stored procedures, and user-defined functions.

2. Security

Apache Derby provides authentication using LDAP, custom, built-in, and Database encryption.

3. Performance

Apache Derby can handle 200 transactions per second on an untuned system and 20-30 concurrent users with connection pooling.

4. Ease of use

Apache Derby does not require administration effort. It provides an SQL interface for a common task like a backup.

5. Small footprint

Apache Derby provides an Engine jar file that is around 2Mb.

6. Complete Relational Engine

Apache Derby is a complete relational database engine that supports multi-user, multi-threaded, transactions, row locking, isolation levels, lock deadlock detections, crash recovery, backup & restore.

7. Embedded Database

Apache Derby database is only accessible from a single JVM(Java/ JDBC only) and not from network connectivity. It provides a single application per JVM (but could be multiple).

Apache Derby Advantage

Some key advantages of Apache Derby are mentioned below.

  • Apache Derby provides an embedded JDBC driver and about 3.5 MB for the base engine.
  • Apache Derby is based on the standards of Java, JDBC, and SQL.
  • Apache Derby can be embedded in any Java-based solution using JDBC embedded driver.
  • Apache Derby supports client/server mode with the Derby Network Client JDBC driver and Derby Network Server.
  • Apache Derby is very easy to install, deploy and use.

Apache Derby Limitations

Apache Derby has these limitations.

  • Apache Derby does not support Indexes for columns defined on CLOB, BLOB, and LONG VARCHAR data types. It is not recommended to create indexes on long columns. It is recommended to create indexes on small columns that provide a quick look-up to larger, heavy data in the row.
  • Apache Derby databases get shut down if the disk is full. In this condition, an error message “LogFull" or IOException will be stored in the derby.log file.