The HEPDB package uses a Zebra dynamic store (which is in fact a Fortran labelled common block). This can be any of the stores used by the application program. HEPDB operates inside two divisions in that store: a HEPDB system division, of no concern for the user, and the division where, at user's request, the data objects are dumped from the random access medium and kept in memory as long as required by the user.
In the latter division, data objects from a given data base file are stored as Zebra banks, or Zebra data structures, within a main data structure which reproduces, partially and only for the directories in use, the Node/Key structure of the data base files. As many main structures can be simultaneously handled in memory as there are data base files declared by the user; however, they are expected to all share the same division. The skeleton of NODE and KEY banks grows up, following the successive user requests, and stays permanently available in memory. The data banks, appended to the corresponding KEY banks, can be either refreshed when the time dependence of their contents requires it, or dropped when they are no longer needed by the user. They can also be marked as temporarily unwanted, so that the system can drop them in case of shortage of memory, at the cost of reaccessing them from the random access device if and when required again.