OpenOffice Base is the database component of the Apache OpenOffice suite: an open-source, visual database front end for building tables, queries, forms, and reports on the desktop. It is often described as a free alternative to Microsoft Access.

What Is OpenOffice Base?

Base is the database counterpart to Writer, Calc, and Impress in the same suite. It lets you design tables without writing SQL, enter data through forms, filter records with queries, and produce printable reports. Out of the box it can keep your data in a single file, or it can act as a front end that connects to an external database server.

There is an important distinction: Base is not, on its own, a large-scale database engine. In the default setup it uses an embedded engine, and for heavier needs it sits as an interface on top of server-based systems such as MySQL or PostgreSQL.

A Short History: From StarOffice to Apache

The project traces back to StarOffice, made by the German company StarDivision. After Sun Microsystems acquired it, the source was opened and shared with the community under the OpenOffice.org name. Following Oracle's takeover of Sun, the project was donated to the Apache Software Foundation in 2011 and became Apache OpenOffice.

In 2010 part of the community forked the codebase and launched LibreOffice under The Document Foundation. As a result, two sibling products share the same family tree today: Apache OpenOffice and LibreOffice. Each one includes a 'Base' component.

The .odb File and the Embedded Engine

A database you build with Base is stored in a file with the .odb extension, in the OpenDocument Database format. That file is really a ZIP container holding form and report definitions, queries, and, in the default setup, the data itself.

By default, Base uses the Java-based HSQLDB (HyperSQL) engine in embedded mode. This gives you a relational database that runs from a single file, with no separate server to install. That is convenient for small, single-user scenarios, but because all the data lives in one file, you need to be careful about concurrent multi-user writes and the risk of file corruption.

The Four Core Parts of Base

The Base interface is organized into four main work areas. Knowing this structure is the most practical way to understand how the tool thinks.

  • Tables: Where data is stored. Using a wizard or design view, you define fields, data types, and a primary key.
  • Queries: Used to filter, join, and calculate data. You can build them in a visual design view or by writing SQL directly.
  • Forms: User-friendly screens for entering and editing data. Forms are actually Writer documents with form controls placed on them.
  • Reports: Printable, formatted output. With the Report Builder component you can add grouping and summary fields.

Connecting to External Databases

Base's greatest strength is that it is not limited to the embedded engine. Through JDBC, ODBC, or built-in drivers, it can connect to different database systems and run tables, queries, and forms against them. That way the data itself lives on a robust server while you use Base as a practical interface for day-to-day work.

Connection methodTypical use
Embedded HSQLDBSingle-file, single-user small databases (default)
JDBCConnecting to servers such as MySQL, PostgreSQL, or Oracle via a Java driver
ODBCReaching various databases through the operating system's ODBC layer
Built-in MySQL/PostgreSQL driverDirect connection options for those engines
Address book / text fileBinding a system address book or CSV-like sources as read-only

SQL Support and Example Queries

Base lets you build queries in a visual design view, but you can also write SQL directly. The exact SQL syntax available depends largely on the engine you connect to. If you use the embedded HSQLDB, the syntax that HyperSQL supports applies.

sql
-- Creating a simple table (in the embedded HSQLDB context)
CREATE TABLE customers (
  id         INTEGER PRIMARY KEY,
  name       VARCHAR(100),
  city       VARCHAR(60),
  joined     DATE
);

-- Inserting a record
INSERT INTO customers (id, name, city, joined)
VALUES (1, 'Alex Turner', 'London', DATE '2026-01-15');

Standard SELECT statements are used to filter and group data:

sql
-- Number of customers per city
SELECT city, COUNT(*) AS total
FROM customers
GROUP BY city
ORDER BY total DESC;

Java Dependency and the Report Builder

Some Base features require a Java Runtime Environment (JRE). In particular, the embedded HSQLDB engine is Java-based, and some wizards and report generation may also rely on Java. If you plan to use Base with the embedded database, you need a compatible JRE on your system.

For formatted, grouped, and summarized reports, the Report Builder component is used. It covers classic reporting needs such as field layout, grouping, and calculated fields.

Getting Base and Your First Database

Apache OpenOffice is free to download and install; Base is not a separate program but a component of the suite. When you create a new database, a wizard appears and asks for a basic choice: will you set up a new embedded database, or connect to an existing one?

  • Create a new database: Starts a single-file .odb with embedded HSQLDB; ideal for a quick start.
  • Connect to an existing database: Opens an external server or source via JDBC, ODBC, or built-in drivers.
  • Open an existing file: Reopens an .odb file you saved earlier.

After saving your first .odb file, you can move on to designing tables, then adding forms and reports. The recommended order is usually: tables and relationships first, then queries, and finally forms and reports.

Data Types and Relationships Between Tables

Good database design starts with the right data types and relationships between tables. In design view, Base asks you to choose a data type for each field. The available types depend partly on the engine you connect to, but common ones are as follows.

CategoryExample typesUse
TextVARCHAR, CHARTextual fields such as name, address, description
NumberINTEGER, DECIMAL, DOUBLENumeric values such as id, quantity, amount
Date/TimeDATE, TIME, TIMESTAMPRecord date, transaction time
LogicalBOOLEANYes/no, active/inactive states
BinaryBLOB / similarStoring small images or files

To link tables together, you use the concepts of primary key and foreign key. For example, an 'orders' table points to a record in the 'customers' table through a foreign key. Well-built relationships reduce data duplication and keep information consistent.

Macros and Automation

To automate repetitive tasks, Base uses the suite-wide macro infrastructure. With OpenOffice Basic (StarBasic) you can attach button actions to forms, validate data, or script batch operations. In advanced scenarios, programming through the UNO API in other languages is also possible.

This turns Base from a plain data-storage tool into a rapid development environment for small desktop applications such as inventory tracking, membership records, or simple stock management. Thanks to buttons and macros added to forms, even non-technical users can work through a ready-made interface.

Common Problems and Tips

Most of the issues you hit while working with Base come down to a few recurring themes. Knowing them in advance saves time.

  • Java not found: The embedded HSQLDB needs a compatible JRE; select the correct version in settings.
  • File corruption: Unexpected shutdowns are risky in a single-file embedded setup; back up regularly.
  • Concurrent access: Having several people write to the same .odb file over a network is not recommended; switch to a server engine in that case.
  • Driver mismatch: For external connections, make sure the correct JDBC/ODBC driver is installed and configured.

When Is Base the Right Choice?

Like any tool, Base has areas where it shines and areas where it struggles. Scale, number of users, and budget drive the decision.

Good fitPoor fit
Single-user small databasesHigh concurrent multi-user load
Quick form/report prototypesCritical systems needing high availability
A free front end over an external serverVery large data volumes and heavy transaction loads
Teaching and learning SQLAn always-on application backend served 24/7

As needs grow, the sensible path is to move the data to a server engine and keep Base only as the interface. For lightweight file-based scenarios, you can also consider embedded alternatives such as SQLite.

A related, frequent question: why keep my data in Base rather than in Calc (a spreadsheet)? For small lists, a spreadsheet is enough; but as data grows and you need multiple related tables, data validation, and repeated form entry, a database gives you a more solid foundation.

In short: if you keep a single list, Calc is practical. If you have several related entities (customer, order, product) and rule-based data entry, Base is a better fit. If your need sits between the two worlds, you can also import data collected in Calc into Base.

OpenOffice Base vs LibreOffice Base vs Access

One of the most common questions is how Base differs from Microsoft Access. The table below summarizes the three options in broad strokes.

FeatureOpenOffice BaseLibreOffice BaseMicrosoft Access
LicenseOpen source (Apache License)Open source (MPL/LGPL)Commercial, paid
Default engineEmbedded HSQLDBEmbedded Firebird/HSQLDBJet/ACE engine
File format.odb (ODF).odb (ODF).accdb / .mdb
PlatformWindows, macOS, LinuxWindows, macOS, LinuxMainly Windows
External server connectionJDBC/ODBCJDBC/ODBCODBC and linked tables

Do not expect feature-for-feature parity with Access; still, in terms of the basic table-query-form-report flow, Base offers a familiar logic for users coming from Access. For a comparison with Access's ecosystem and some advanced features, see our Microsoft Access article.

Summary

Apache OpenOffice is distributed under the Apache License 2.0, which means it can be downloaded and used free of charge. It runs on Windows, macOS, and Linux. That is a meaningful advantage for small teams and individuals who want to meet desktop database needs without licensing costs.

OpenOffice Base is a free, cross-platform desktop solution for small-scale databases, and at the same time a practical interface in front of powerful server engines. You can start quickly with embedded HSQLDB and, as needs grow, move the data to a server such as PostgreSQL while keeping Base as the front end. Used at the right scale, it is an easy-to-learn, flexible, and cost-free tool.