Derby (Apache)
Apache Derby is an open-source, pure-Java relational database management system that can be embedded directly inside an application or run as a network server, historically bundled with the Java Development Kit as Java DB.
Definition
Apache Derby is an open-source, pure-Java relational database management system that can be embedded directly inside an application or run as a network server, historically bundled with the Java Development Kit as Java DB.
Overview
Derby is a fully SQL-compliant, transactional database engine implemented entirely in Java, which lets it run inside the same process as an application with no native binaries or external installation. It was donated to the Apache Software Foundation by IBM and later shipped by Sun/Oracle under the name Java DB as part of certain JDK distributions, giving it a long history inside the Java ecosystem. Like other embeddable databases, Derby supports both an embedded driver, where the database lives inside the application's JVM, and a network server mode, where it accepts JDBC connections over the network from multiple clients. It provides standard relational features including transactions, referential integrity, stored procedures, and triggers, making it capable of serving as a lightweight production database for small applications, not just a testing tool. In practice, Derby has been largely overshadowed by alternatives such as H2 Database and SQLite, which are perceived as faster and simpler for many development workflows, but Derby remains in use in legacy Java applications and in some Apache projects that adopted it as a default embedded store.
Key Features
- Pure-Java implementation with no native dependencies
- Embedded and client-server (network) operating modes
- Full ACID transaction support
- Standard JDBC driver for application connectivity
- Small footprint suitable for bundling with applications
- Support for stored procedures, triggers, and views