btrieve is essentially a database that uses keys and indexes to organise data. however, the file structure itself is largely built around smaller units of data, called "pages" in btrieve. though the structure has changed over the various versions of btrieve, the file structure still revolves around a file control record (fcr) — which defines the configuration of pages — and pages in the btrieve file that contain data. historically, btrieve used "physical pages", or pages that were located at fixed positions in the file. beginning with version 6.0 "logical pages" started to be used, which were mapped to page allocation tables (pats) — this allowed btrieve to change their record update technique from what was later known as "pre-image paging" to a technique called "shadow-paging".