This document describes the implementation of the bookkeeping tools and
services in LHCb.
We first present the persistent data model, which describes the tables
and columns declared in the database to store the data.
We then deal with the description of the transient data model and the
way applications can access to the data. This includes the definition
of abstract interfaces for both data access and data writing.
Finally we present the python and web tools deployed around the main
system for easy access by the end user. We also present some tools
that were used to transfer, create or update the main database.
Before jumping into the details, here are some prerequisites :
- The core system was implemented in Java. Thus the interfaces
described in the ``Data Management'' document were adapted to this language.
Details are given in section .
- Since Gaudi is only available in C++ at this time, the system has no
link to it. In particular, the interfaces do not inherit from the Interface
abstract interface and the services do not inherit from the IService abstract
interface. However, the needed Gaudi components were recreated in Java.
- The database used in the implementation is not precisely defined in
the rest of this chapter. This is because it may be any relational database
having a JDBC interface. MySQL and Oracle are the two databases that were
actually tested and the final system is running mainly under Oracle.
Sebastien Ponce
2004-03-12