Java DB

Apache Derby

Java Db / Derby

Derby Getting Started
Derby Reference Manual
Derby Developer's Guide
Derby Performance Tuning
Derby Server and Admin Guide
Derby Tools and Utilities
Derby Getting Started
-Introduction to Derby
-Installing and configuring Derby
-Self-study tutorial for users new to Derby
-Quick start guide for experienced JDBC users
-Documentation conventions
-Derby libraries and scripts: complete reference

Derby is a full-featured, open source relational database management system (RDBMS) that is based on Java and SQL. Derby is shipped under the name “Java DB” with the JDK.

Derby is written and implemented completely in the Java programming language. Derby provides users with a small-footprint standards-based database engine that can be tightly embedded into any Java based solution. Derby ensures data integrity and provides sophisticated transaction support. In the default configuration there is no separate database server to be installed or maintained by the end user. For more information on Derby, visit the Derby Web site at

Derby / Java DB Extensions - Full Text Search Index

Derby does not have an out of the box full text search index capability. There is a desire to implement it using Apache Lucene, however it is not done yet. We have implemented a simple solution using relational tables, table functions and triggers. Whenever a row is inserted or updated, a trigger invokes a table function that indexes the words into a separate relational table which can be used in a join to have desired results.

Derby full text search indexer can be downloaded here.

Feel free to send your extension suggestions to

Searchable Documentation for Derby / Java DB

Originally, Derby documentation was organized in PDF or HTML files. This made it inconvenient to search the documentation. To make it easier, we have created this web site where we have indexed the all of the books  and made them searchable.


Getting Started with Derby / Java DB

Before you install Derby, you should understand the deployment options and system requirements.

  • Deployment options
    The Derby software distribution provides two basic deployment options (also referred to as frameworks), the simple embedded option and the Derby Network Server option.
  • System requirements
    Derby is a database engine written completely in Java. The database will run in any certified Java Virtual Machine (JVM).
  • Product documentation for Java DB
    The Java DB product documentation consists of the Java DB manuals and the API reference.

Derby / Java DB - SQL language reference

Derby implements an SQL-92 core subset, as well as some SQL-99 features.

This section provides an overview of the current SQL language by describing the statements, built-in functions, data types, expressions, and special characters it contains.

Derby /  Java DB Developer’s Guide

This section describes the core Derby functionality. In addition, it details the most basic Derby deployment, Derby embedded in a Java application.

Derby / Java DB Performance Tuning

This chapter lists tips for improving the performance of your Derby application. For a more in-depth discussion of performance, see Tuning databases and applications.

Derby / Java DB Server and Administration Guide

Derby Server Guide

This part of the guide explains the Derby Network Server and other server frameworks.

Derby Administration Guide

This section of the guide is divided into several administrative tasks.

  • Checking database consistency
    If you experience hardware or operating system failure, you can use the SYSCS_UTIL.SYSCS_CHECK_TABLE function to verify that the database is still consistent.
  • Backing up and restoring databases
    Derby provides a way to back up a database while it is online. You can also restore a full backup from a specified location.
  • Replicating databases
    Replication is an important feature of a robust database management system. In Derby, you start database replication by using connection URL attributes.
  • Logging on a separate device
    You can improve the performance of update-intensive, large databases by putting a database's log on a separate device, which reduces I/O contention.
  • Obtaining locking information
  • Reclaiming unused space
    A Derby table or index (sometimes called a conglomerate) can contain unused space after large amounts of data have been deleted or updated.

Derby / Java DB Tools and Utilities

The Derby tools and utilities are a set of routines supplied with Derby that are typically used to setup and update a Derby database.

For more complete information on developing a system using Derby, see the Derby Developer's Guide.

  • Overview
    Derby is a database management system (DBMS), accessed by applications through the JDBC API.
  • About Derby databases
  • JDBC connection basics
    Most of the Derby tools are JDBC applications. A JDBC application is one that uses the classes in the java.sql package to interact with a DBMS.
  • Tools and localization
    The Derby tools provide support for common localization features such as localized message files and GUI, locale-appropriate formatting of data, codesets, unicode identifiers and data, and database territories.

other links