The database directory

A Derby database is stored in files that live in a directory of the same name as the database. Database directories typically live in system directories.

Note: An in-memory database does not use the file system, but the size limits listed in the table later in this topic still apply. For some limits, the maximum value is determined by the available main memory instead of the available disk space and file system limitations.

A database directory contains the following, as shown in the following figure.

Read-only database directories can be archived (and compressed, if desired) into jar or zip files. For more information, see Accessing a read-only database in a zip/jar file.

The following figure shows the files and directories in the Derby database directories that are used by the Derby software.

Figure 1. An example of a Derby database directory and file structure
This figure shows the files and directories that might be found in the main directory of a Derby database called Sales: the file, and the log, seg0, tmp, and jar directories.

Derby imposes relatively few limitations on the number and size of databases and database objects. The following table shows some size limitations of Derby databases and database objects.

Table 1. Size limits for Derby database objects
Type of Object Limit
Tables in each database java.lang.Long.MAX_VALUE

Some operating systems impose a limit to the number of files allowed in a single directory.

Indexes in each table 32,767 or storage
Columns in each table 1,012
Number of columns on an index key 16
Rows in each table No limit.
Size of table No limit. Some operating systems impose a limit on the size of a single file.
Size of row No limit. Rows can span pages. Rows cannot span tables so some operating systems impose a limit on the size of a single file, which results in limiting the size of a table and size of a row in that table.

For a complete list of restrictions on Derby databases and database objects, see the Derby Reference Manual.

Related concepts
Database-wide properties
Derby database limitations
Double-booting system behavior