Design and Manage Apache Derby Databases Visually with DbSchema

DbSchema lets you design, manage, and document Apache Derby databases. Create ER diagrams, define tables and columns, and generate SQL scripts - with or without a live database connection.

Use Git to share the design, compare it with the Apache Derby database, and deploy changes. DbSchema also includes a data editor, query builder, and HTML5 documentation - everything you need in one tool.

DbSchema Database Designer

Download DbSchema Download Apache Derby JDBC Driver

Apache Derby is a lightweight Java database distributed with the JDK as JavaDB, and it remains common in Java EE application servers, test containers, and standalone Java applications that need an embedded relational store. Derby databases are self-contained file directories, making them portable but lacking any built-in graphical tooling. DbSchema connects to Derby in both embedded and network server modes, providing ER diagrams, a table editor, and SQL tooling for developers who need to understand or evolve a Derby schema.

Design Derby Schemas in Embedded and Network Mode

Derby's embedded mode requires no server process — DbSchema opens the database files directly. When Derby runs as a network server inside a Java EE container, DbSchema connects over the network and renders the same visual schema. Both modes produce the same diagram canvas with tables, columns, and foreign key relationships visible at a glance.

DbSchema designing an Apache Derby schema in embedded mode

Modify Table Definitions Visually

Derby's SQL dialect is strict about types and constraints, and ALTER TABLE operations have specific limitations compared to other databases. DbSchema's table editor generates Derby- compatible DDL for each change and previews it before applying, reducing the risk of runtime errors when modifying a live Derby instance.

Table editor modifying an Apache Derby table definition

Populate Derby Databases with Test Data

Derby is often used in Java test pipelines that require representative data to exercise application logic. DbSchema's data generator produces rows that satisfy Derby's type constraints and foreign key relationships, seeding test databases with realistic content without requiring hand-written INSERT scripts for every test scenario.

Data generator filling an Apache Derby test database with synthetic rows

Connecting to Apache Derby

For embedded mode, use the JDBC URL jdbc:derby:/path/to/db;create=true — the create=true parameter creates the database if it does not already exist. For Derby Network Server, use jdbc:derby://host:1527/dbname after starting the server with java -jar derbyrun.jar server start. DbSchema includes the Derby JDBC driver for both modes. Note that Derby enforces single-JVM access in embedded mode — stop the owning application before opening an embedded Derby database in DbSchema to avoid lock conflicts.

Why Use DbSchema with Apache Derby

  • Open Derby embedded databases without starting the host Java application
  • Generate ER diagrams for Derby schemas that have never been formally documented
  • Edit table structures with Derby-compatible DDL validation built in
  • Seed test databases with constraint-aware synthetic data for integration tests
  • Generate schema documentation for Java EE application audits and handovers