What is an LTPDA Repository


Introduction

An LTPDA repository has at its core a database server (in fact, a MySQL server). A single MySQL server can host multiple databases (LTPDA repositories). A single database/repository comprises a particular set of database tables. These tables hold meta-data about the objects stored in the database.

Since the core engine is a MySQL database, in principle any MySQL client can be used to interface with the repository. In order to submit and retrieve objects in the proper way (entering all expected meta-data), it is strongly suggested that you use the LTPDA Toolbox client commands submit and the From Repository constructors, or the LTPDA Workspace Browser.. In addition, the LTPDA Workbench has full built-in support for interacting with LTPDA Repositories.

Any standard MySQL client can be used to query and search an LTPDA repository. For example, using a web-client or the standard MySQL command-line interface. In addition, the LTPDA Toolbox provides two ways to search the database: using the workspace browser, or the LTPDA Workbench.. It is also possible to use the Visual Query Builder provided with the MATLAB Database Toolbox for interacting with a repository.

Database primer

A MySQL database comprises a collection of tables. Each table has a number of fields. Each field describes the type of data stored in that field (numerical, string, date, etc). When an entry is made in a table a new row is created. Interaction with MySQL databases is done using Structured Query Language (SQL) statements. For examples see MySQL Common Queries.

Database design

The database for a single repository uses the tables as shown below:

DB Tables

As you can see, each object that is submitted to a repository receives a unique ID number. This ID number is used to link together the various pieces of meta-data that are collected about each object. In addition, each object that is submitted is check-summed using the MD5 algorithm. That way, the integrity of each object can be checked upon retrieval.

In order to access a particular repository you need:

The main database tables

An LTPDA repository consists of the following database tables:

objs table

The objs table stores the XML representation of the submitted object. At this point, each object in the database is assigned a unique identifier. Together with the database name and hostname/ip of the server, this forms a unique tag for all LTPDA objects.

Field Data Type Description

id

int(11)

A unique identification number for all LTPDA objects in this database. This value is the link between all database tables.

hash

text

An MD5 hash of the XML representation of the object.

xml

longtext

The XML representation of the object. This field can be dumped directly to an XML file and should be readable in LTPDA.

objmeta table

The objmeta table stores various pieces of information associated with the object being submitted. The aim of this table is to provide a lot of useful fields on which to perform searches and queries.

Field Data Type Description

id

int(11)

A unique identification for all entries in this table.

obj_id

int(11)

The object id of the object in the objs table.

obj_type

text

The (LTPDA) class of this object.

name

text

The user-assigned name of this object.

created

datetime

The date and time this object was created.

version

text

The CVS tag of the object constructor code.

ip

text

The IP address of the machine which submitted the object.

hostname

text

The hostname of the machine which submitted the object.

os

text

The operating system of the machine which submitted the object.

submitted

datetime

The date and time the object was submitted.

experiment_title

text

A title for the experiment associated with the object.

experiment_desc

text

A description of the experiment associated with the object.

analysis_desc

text

A description of the analysis associated with the object.

quantity

text

If applicable, the physical quantity associated with the data in the object.

additional_authors

text

Any additional people involved in creating this object.

additional_comments

text

A free-form field of additional comments.

keywords

text

A list of keywords associated with the object.

reference_ids

text

ID numbers of any other objects associated with this object.

validated

tinyint(1)

A boolean field indended to indicate validated objects.

vdate

datetime

The date/time the object was validated.

transactions table

The transactions table records all user transactions. A transaction corresponds to submitting or retrieving a single or a collection of LTPDA objects.

Field Data Type Description

id

int(11)

A unique identification number this table entry.

obj_id

int(11)

The object id of the object in the objs table.

user_id

int(11)

The unique ID number of the user who carried out the transaction.

transdate

datetime

The date/time of the transaction.

direction

text

The direction of the transaction: 'in' or 'out'.

users table

The users table stores information about the users allowed to access the database.

Field Data Type Description

id

int(11)

A unique identification number for all entries in this table.

firstname

text

The firstname of the user.

familyname

text

The family name of the user.

username

text

The username (login name) of the user.

email

text

A valid e-mail address for the user.

telephone

text

A telephone numnber for the user.

institution

text

The institution of the user.

collections table

The collections table stores virtual collections of objects submitted to the database. When the user submits one or more objects at the same time, this constitutes a collection. In this case a collection ID number is assigned next to a list of the object IDs in the collection. This allows the user to retrieve collections of objects based on the collection ID alone; no information about the individual object IDs is required.

Field Data Type Description

id

int(11)

A unique identification number for this collection of objects.

nobjs

int

The number of objects in the collection.

obj_ids

text

A comma separated list of object IDs.

Additional database tables

As well as the main database tables, additional meta-data tables are used to capture extra meta-data about some of the LTPDA objects.

ao table

The ao table stores additional meta-data specific to analysis objects.

Field Data Type Description

id

int(11)

A unique identification number for all entries in the table.

obj_id

int(11)

The unique ID of the object.

data_type

text

The type/class of the data stored in the AO.

data_id

int(11)

The unique ID of the data object listed in one of the data meta-data tables.

description

text

The description property of the AO.

mfilename

text

The filename of any m-file attached to the AO.

mdlfilename

text

The filename of any SIMULINK model file attached to the AO.

miir table

The miir table stores additional meta-data specific to miir filter objects.

Field Data Type Description

id

int(11)

A unique identification number for all entries in the table.

obj_id

int(11)

The unique ID of the object.

in_file

text

The input filename (if applicable) used to create the filter object

fs

int(11)

The sample rate of the data the filter is designed for.

mfir table

The mfir table stores additional meta-data specific to mfir filter objects.

Field Data Type Description

id

int(11)

A unique identification number for all entries in the table.

obj_id

int(11)

The unique ID of the object.

in_file

text

The input filename (if applicable) used to create the filter object

fs

int(11)

The sample rate of the data the filter is designed for.

tsdata table

The tsdata table stores additional meta-data specific to tsdata (time-series data) objects.

Field Data Type Description

id

int(11)

A unique identification number for all entries in the table.

xunits

text

The X-units associated with this time-series.

yunits

text

The Y-units associated with this time-series.

fs

int(11)

The sample rate of the data the filter is designed for.

nsecs

int

The duration (number of seconds) of data in the object.

t0

datetime

The date/time associated with the start (first sample) of the time-series.

fsdata table

The fsdata table stores additional meta-data specific to fsdata (frequency-series data) objects.

Field Data Type Description

id

int(11)

A unique identification number for all entries in the table.

xunits

text

The X-units associated with this time-series.

yunits

text

The Y-units associated with this time-series.

fs

int(11)

The sample rate of the data the filter is designed for.

cdata table

The cdata table stores additional meta-data specific to cdata (1D data) objects.

Field Data Type Description

id

int(11)

A unique identification number for all entries in the table.

xunits

text

The X-units associated with this time-series.

yunits

text

The Y-units associated with this time-series.

xydata table

The xydata table stores additional meta-data specific to xydata (2D data) objects.

Field Data Type Description

id

int(11)

A unique identification number for all entries in the table.

xunits

text

The X-units associated with this time-series.

yunits

text

The Y-units associated with this time-series.




©LTP Team