Introduction

<< | Firebird Internals | Database structure >>

Introduction

The purpose of this document is to try and explain what goes on inside a Firebird Database. Much of the information in this manual has been extracted from the Firebird source code - mainly on the ODS related code and headers - and from some (partially out of date) documents on the Research part of the IBPhoenix web site (https://www.ibphoenix.com/). Other questions and queries that I had were very patiently answered on the Firebird Support forums where the developers hang out.

Much hex dumping of database files was undertaken in the creation of this document, but no Firebird databases were harmed during this process.

All databases mentioned or described within this document are those with an ODS of 11.1 - in other words, Firebird 2.1, and a page size of 4,096 bytes. There may be differences between this ODS version and previous ones and wherever possible, this has been documented.

Unless otherwise noted, the test database used for this document is empty of all user tables, indices, generators etc. It was created on a 32 bit Linux system running on Intel hardware. It is therefore little endian.

Thanks to everyone who has contributed to the manual.

back to top of page
<< | Firebird Internals | Database structure >>