Skip to main content

Apache Derby

Apache Derby is a Relational Database Management System (RDBMS) (database) written in Java that provides an embedded and client-server Structured Query Language (SQL) database engine under the Apache Software Foundation license.

  • Relational database engine with transactional SQL support (database)
  • Embedded in Java applications via a small-footprint, in-process database engine (embedded database)
  • Client-server operation through the Derby Network Server using the JDBC and SQL standards (database connectivity)
  • Full Java implementation for cross-platform deployment within any Java Virtual Machine (VM) (JVM) (application platform)
  • Open-source project under the Apache License v2.0, maintained by the Apache Software Foundation (open-source governance)

More About Apache Derby

Apache Derby is a RDBMS (database) implemented entirely in Java and distributed as an open-source project by the Apache Software Foundation. It provides a transactional SQL database engine that can run embedded in applications or as a separate network server, targeting use cases where a lightweight, standards-based relational store is required inside Java-based systems.

The core capability of Apache Derby is its embedded relational engine (embedded database), which runs in the same Java VM (JVM) as the application. The database is accessed through standard JDBC (database connectivity), and applications can create, connect to, and manage databases using JDBC URLs and SQL statements. Because the engine is implemented in Java, Derby operates across platforms that support a JVM, and database files are stored on the local file system, enabling inclusion in desktop, server, or application-distributed environments.

Apache Derby also includes the Derby Network Server (database connectivity), which exposes the database engine over a network protocol so that remote clients can connect using JDBC and the Java Database Connectivity Application Programming Interface (API). This client-server mode allows multiple applications or services to share a Derby database instance while preserving SQL transactional semantics. Enterprises can therefore deploy Derby either as an embedded store within a single application or as a small-footprint networked database service in multi-tier architectures.

The project supports standard SQL features (database) as documented in its reference manuals, including data definition, data manipulation, and transaction control. Derby uses a transactional storage engine with logging and recovery (data management), and it enforces ACID properties for database updates. The system supports schemas, tables, indexes, views, triggers, and constraints as part of typical relational modeling requirements. Standard JDBC drivers (database connectivity) are provided in embedded and client variants, enabling integration with Java application servers, standalone Java applications, and tools that operate through JDBC.

From an enterprise usage perspective, Apache Derby is suited for scenarios such as embedded databases within packaged Java applications, application-level data stores in middleware, test and development environments, and small- to medium-scale production workloads where a Java-based, in-process database aligns with deployment constraints. The project documentation outlines configuration options, security features such as authentication and authorization (database security), and administration tools for database creation, backup, and monitoring.

Within a technical taxonomy, Apache Derby fits in the relational Database Management Systems (DBMS) category (database), with sub-categorization as an embedded Java RDBMS and lightweight networked SQL server. Its Java-only implementation and adherence to JDBC and SQL standards facilitate interoperability with Java frameworks, build tools, and application servers that expect JDBC-compliant data sources, enabling straightforward incorporation into enterprise Java stacks.