Overview

High Energy Physics experiments require the use of powerful data base systems in which to store information such as detector geometry and calibration constants. The data stored usually consist of a part which is largely time independent, for instance the parameters which describe the experimental setup, and of another part whose contents may vary with time, with different frequencies, and have therefore to be recorded repeatedly, with proper time or other validity ranges.

The latter may represent quite a large amount of data. As an example, for a LEP Detector, one has to store between tens and hundreds of megabytes of data per year of operation.

At program execution time, fast access to the data base contents is essential, and an efficient system which limits the rate of transactions between the directly addressable storage medium, where the data base resides, and the computer memory available to the user, has to be implemented.

In a multi-user, multi-computer environment, keeping up to date a centralized data base and optimizing the data flow is not a trivial matter. This can only be achieved through dedicated 'service' machines under control of a data base 'server'.

Last, but not least, the system has to be robust and safe, and equipped with facilities which minimize the inconveniences of a possible program crash or of a computer hang-up.

The package HEPDB, described in this manual, is an attempt to solve the above requirements. It has greatly benefitted from similar packages developed by other experiments at CERN and elsewhere, notably the DBL3 and OPCAL packages, written by the L3 and OPAL collaborations respectively. The DBL3 package is described in [bib-DBL3].

HEPDB is based on the ZEBRA system [bib-ZEBRA] and relies heavily on the Random Access I/O package RZ [bib-ZEBRARZ], and also MZ (memory management) [bib-ZEBRAMZ], DZ (debug and dump) [bib-ZEBRADZ] and FZ (sequential I/O) [bib-ZEBRAFZ] packages.

The choice of the ZEBRA RZ package as a subsystem on which to build HEPDB was natural, as it is used by other widely used programs such as GEANT [bib-GEANT3], HBOOK [bib-HBOOK], PAW [bib-PAW] and FATMEN [bib-FATMEN]. The ZEBRA package provides all of basic features required for the HEPDB system, including interchange mechanism (which in fact uses ZEBRA FZ sequential exchange mode files).