- Source: DBOMP
DBOMP (Database Organization and Maintenance Processor) was an early hierarchical database system from IBM for DOS. DBOMP was introduced in the late 1960s as a successor to IBM's "Bill of Materials Processor" called BOMP, introduced in 1965 when DOS became available.
DBOMP stored records on disk and was generalized beyond bill of materials. BOMP was named from manufacturing industry's bill of materials processing in USA, (usually known as parts list processing in the UK) and specifically aimed at that industry sector. The major files were actually called Part Number Master File and Work Centre File, and the linking files were called Product Structure File and Routing File. Shortly after introduction, however the software was already being used for other purposes. One user who bred prize pigs used it to trace the ancestry of his animals— like race horses, the ancestry of these pigs directly affected their considerable commercial value. The possibilities were recognised with the announcement of DBOMP itself, where the basic file structures and inter-relationships remained the same, but the files were renamed to make them less manufacturing-specific.
There is some disagreement as to whether DBOMP should be called a hierarchical or a network database. This was a marketing competition between IBM and competitive offerings: network had become popular, and BOMP and DBOMP did have network characteristics, but these were limited.
The structure of DBOMP databases limited its use to CKD disk drives with no more than 511 cylinders. It was a long time before this became a problem, but the more serious limitation was that each pointer address stored in one record to link it to another was a physical (Cylinder/Head/Record) address on the disk. Moving a file from one pack to another required it to be placed in exactly the same physical position on the new pack. Also, if the installation migrated to bigger disks, the whole database had to be unloaded into sequential files and reloaded through the software provided to fit the new pack dimensions, More seriously, the programmer was responsible for managing the physical pointers in the header of each record, directly beside normal business data. The IBM replacement for DBOMP was the DOS implementation of DL/I database, where the pointer information was carefully shielded from the program.
The structure of DBOMP files heavily influenced later databases such as Cincom's Total.