underlying access modes
The vast majority of users will use standard interfaces to access the data.
The interfaces themselves should be able to use SQLs and embedded SQLs to do
their work.
forward compatibility
The future is notoriously hard to predict, but we'd like our data base to be
forward compatible; they should be still be useful in 1-2 decades.
The best way to ensure that is to adhere to adhere to widely accepted industry
standards and practices.
customizable interfaces
The interfaces should be easily customizable, so that Phenix-specific
interface features can be implemented. (here we refer to programmers, not
every user). In this context, we also specify that
there be no impediments to the programming languages accepted by the rest of
Phenix (C, C++), as well as other widely accepted languages (Java, Tk/Tcl)
access speed for retrieval
There are speed requirements on certain sections of the data base. For
example, the 'online data' need to be available in 'real time' (see
the ONCS writeup, section 3, and the RICH writeup, near the bottom.
Other parts of the data base, such as photographs and engineering drawings,
can be stashed away for retrieval on time scales of hours. Calibration data,
when used by an analysis program, needs to be retrievable very quickly, once
the analysis is running.
access speed for insertion
The issue of access speed for insertion is more complicated. Typically,
insertion times are 10x retrieval times. There can be
longish times for documents [HOW LONG?], and for most calibrations. However,
some calibrations are produced in 'near real time', and need to be available
as downloadable constants before the next start-of-run. If the timescale for a
'run' is 15 minutes, the insertion time should be an order of magnitude
smaller. Also, in multi-pass
offline calibration programs, constants derived in pass N need to be available
in pass N+1. This can be solved by saving them internal to the program, or by
providing 'fast enough' data base service.