Personal tools
  • We're Hiring!

You are here: Home Documentation Previous versions OME Server Developer New Users Database Definition of the Database

Definition of the Database

The database and initial tables are created by the file from the ./src/SQL directory. This script reads in database configuration information from two sources: the 0x0*.sql files in that same directory, and the *.ome files in the ./src/xml directory.

The 0x0*.sql files in the sql directory define base tables. 000-DataTypes.sql and 000-OMECore.sql define tables that are at the core of the OME data model. 010-Analysis.sql defines the structures needed for management of image analysis modules, chains, and links (see below). 020-ImageAttributes.sql is obsolete and has been replaced by XML files, as has most of 030-FeatureAttributes.sql (except for the definitions of the FEATURES table). 050-AnalysisTests.sql is also obsolete.

Editor's note As of OME 2.2, the CREATE TABLE statements used to generate the core tables are no longer hand-coded in *.sql files. Instead, the SQL is automatically generated from the Perl classes used to read those tables. Please see the appropriate section of the Perl API for more details.

The *.ome files in ./src/xml contain definitions of semantic types that populate the database and describe the data structure, along with other initialization code. Specifically:

  • OMECoreTypes.ome contains definitions of the semantic types.
  • featureExample.ome defines example analyses for finding features in cells.
  • PlaneStatistics.ome defines semantic types and modules for calculating statistics on planes in images.
  • StackStatistics.ome contains similar definitions for image stacks.
  • ImportModules.ome is a dummy definition for a module that would import images.
  • spotModules.ome defines semantic types and modules for finding spots.

The OME database is very "meta" — in addition to the actual data about images, projects, etc., the database contains numerous tables that describe the contents of the database. This might feel some somewhat confusing in its self-referentiality, but it's a powerful design. More on this below.

Hopefully, this document will help clear up some of the confusion. However, please keep in mind that this document will be out-of-date by the time you see it, so please refer to the code or other (hopefully automatically updated) documentation for details.

Document Actions