The Data Model

The persistent data model (Figure 1.1) describes the design of the database used to store bookkeeping data. This database is supposed to be relational. Thus the description is the description of the tables used and of their colums. Each bubble of the figure is a table and the list of column is given inside each one. The associations drawn as lines show where IDs are supposed to match. As an example, the Job_ID in _Job and in _JobOptions match. The dotted line indicates that on the FilesParam side, the EvtType_ID is actually stored in the Value column when the Name column contains ``EventtType'' and not as a separate column.

Figure 1.1: The design of the database tables
\includegraphics[scale=.5]{PersistentDataModel.eps}

The whole design was intended to build thin tables on the database side by removing all columns that would not be absolutely necessary for all cases. Lines in one of the parameter tables replace these columns. As an example, the number of event of a given file is only relevant in the case of a file containing data (not in the case of a log file). Thus, is was not added in the _Files table but will be a line in the _FileParams table with name ''NbEvent'' and value the actual number of event of the associated file.

This architecture also allows taking advantage of the indexing capabilities of the underlying database to search for objects. As an example, indexes should be created in the _InputFile table, based on the file_ID and in the _Files table based on the Job_ID. This allows an efficient browse of the hierarchy of jobs and files.

In principle, every object in the data model maps to a table and every relation between objects to an ID. There are however some exceptions:

Sebastien Ponce 2004-03-12