It is expected that the online databases will typically be kept in OKS files. The OKS database includes both the schema and the data, however the OKS classes and objects are instances of generic OksClass and OksObject objects which hold descriptions of the classes and their instantiations.
To have the OKS schema and data
available in a corresponding set of C++ classes
and objects, we need to implement a data access library (DAL). This would
provide a much more convenient access to the database.
The other advantage of using a DAL rather than accessing OKS classes
directly is that the same API can be presented to higher levels of software
if the underlying persistent database manager (ie OKS) is changed in the
future. The same API can also be used offline where the data may be
accessed from the offline ``Conditions Database'', or in the case of
the trigger menu, even from an ATHENA ``jobOptions'' file.
In the Online software, the configuration database DALs provide
read only access to the data. This may be fine also for the trigger
menu, but for calibration data it may be more convenient for the
calibration programs if the corresponding DAL can also create the
OKS objects.
The important point is that all our other software sees the database
as a collection of instances of a stable set of run time classes.
The details of how these run time objects are read and saved to
persistent form should be hidden from the rest of the system.
This also applies to mechanisms whereby online databases are
archived and retrieved to and from the offline database.