STAR   Computing Tutorials main page
DataBase Data Definitions
Offline computing tutorial Maintained by Jeff Porter
Last modified Fri Jul 03 00:19:00 1998

Data Type Definitions

As of April-May'99, Star database efforts moved away from an Object-Oriented Database infrastructure (Objectivity) to a Relational-DB structure (MySQL). This switch was done because a Relational-DB model is a much simpler match to the requirements of handling traditional database data - as distinguished from the data-handling that Objectivity was envisioned to provide in the full Star Event Data Store. The dropping of Objectivity as the tool for the Star Event Store (a post-MDC2 decision) triggered the decision to also drop it as the storage tool for traditional database uses.

Prior to this decision, but in recognition that such a decision was likely, the database and calibrations group had decided that the low-level storage structure would be based on Tables (e.g. c-structs) that are defined in header (*.h) files.

Example: tpcDriftVelocity definition in tpcDriftVelocity.h

#ifndef TPC_DRIFTVELOCITY_H
#define TPC_DRIFTVELOCITY_H
//
// :Description: Calibration values for the DriftVelocity in the Tpc
// :Synonyms::::
// :Source:
// :Update:
// :Update frequncy:
// :Reminder:
// :Recall frequency:
// :Size of Data:
// :Pointer to data: Calibrations_tpc/tpcDriftVelocity
//
struct tpcDriftVelocity {
float laserDriftVelocityEast; // cm/us : from laser beam analysis
float laserDriftVelocityWest; // cm/us : from laser beam analysis
float cathodeDriftVelocityEast; // cm/us : from cathode emission
float cathodeDriftVelocityWest; // cm/us : from cathode emission
};
#endif

Database Data Objects

Database Data Objects specify the time referenced status of the detector & subsystems. Each object contains a unique set of data-elements that are identified by the object-name. The data-values for an object vary with time & versioning and thus the data access API requires this complete identification
object-name, timestamp, and version-name.
Database Data Objects are obtained from a variety of sources (Online Servers, Online Monitors, Offline Reconstructions & Calibration routines, ...) and must be input into the database in a well defined API. The information included by the API includes storage via object-name, time-interval, & version-name. (Note: some database objects such as those in the Configuration "reservoir" can use solely object-name lookup by setting the time-interval to infinity)

Database Data Objects' object-name includes the c-struct name associated with the group of data elements contained within the object. Multiple cases of the same class that are used for different objects must provide name-checking accessor to distinguish the different named objects.

Database Data Objects' definition is supplied in a header file that specifies the data-elements and auxiliarly information such as descriptive comments about the data.

Meta data used to organized, manage, and navigate the database data objects are generally also Database Data Objects and where appropriate adhere to the conventions noted here.