view m-toolbox/html_help/help/ug/repo_whatis_content.html @ 52:daf4eab1a51e database-connection-manager tip

Fix. Default password should be [] not an empty string
author Daniele Nicolodi <nicolodi@science.unitn.it>
date Wed, 07 Dec 2011 17:29:47 +0100
parents f0afece42f48
children
line wrap: on
line source

<h2>Introduction</h2>

<p>
  An LTPDA repository has at its core a database server (in fact, a <a href="matlab:web('http://www.mysql.com')">MySQL server</a>).
  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.
</p>

<p> 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 <tt>submit</tt> and
the <tt>From Repository</tt> constructors, or the <a href="workspaceBrowser.html">LTPDA Workspace Browser</a>.. In
addition, the LTPDA Workbench has full built-in support for interacting with LTPDA Repositories.
</p>

<p>
  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.
</p>

<h2>Database primer</h2>

<p>
  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 <a href="matlab:web('http://dev.mysql.com/doc/refman/5.1/en/examples.html')">MySQL Common Queries</a>.
</p>

<h2>Database design</h2>
<p>
  The database for a single repository uses the tables as shown below:
</p>

<img src="images/db_tables.png" alt="DB Tables">

<p> 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 <a
    href="matlab:web('http://en.wikipedia.org/wiki/MD5')">MD5 algorithm</a>. That way, the integrity of each object can be
  checked upon retrieval.
</p>

<p>
  In order to access a particular repository you need:
  <ul>
    <li>The IP address of the MySQL host server</li>
    <li>The name of the repository (the database name)</li>
    <li>An account on the MySQL host server</li>
    <li>Permissions to access the desired database/repository</li>
  </ul>
</p>

<h2>The main database tables</h2>

<p>An LTPDA repository consists of the following database tables:</p>

<!-- OBJS table -->
<h3><tt>objs</tt> table</h3>
<p>The <tt>objs</tt> 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.</p>
<p>
  <table cellspacing="0" class="body" cellpadding="2" border="1" width="80%">
    <colgroup>
      <col width="10%"/>
      <col width="10%"/>
      <col width="80%"/>
    </colgroup>
    <thead>
      <tr valign="top">
        <th class="categorylist">Field</th>
        <th class="categorylist">Data Type</th>
        <th class="categorylist">Description</th>
      </tr>
    </thead>
    <tbody>
      <!-- Field: 'id' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>id</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>int(11)</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>A unique identification number for all LTPDA objects in this database. This value is the link between
        all database tables.</p>
        </td>
      </tr>
      <!-- Field: 'hash' -->
      <tr valign="top">
        <td bgcolor="#e3e4e5">
          <p><tt>hash</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p><tt>text</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p>An MD5 hash of the XML representation of the object.</p>
        </td>
      </tr>
      <!-- Field: 'xml' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>xml</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>longtext</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>The XML representation of the object. This field can be dumped directly to an XML file and
        should be readable in LTPDA.</p>
        </td>
      </tr>
    </tbody>
  </table>
</p>

<!-- OBJMETA table -->
<h3><tt>objmeta</tt> table</h3>

<p>The <tt>objmeta</tt> 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.</p>

<p>
  <table cellspacing="0" class="body" cellpadding="2" border="1" width="80%">
    <colgroup>
      <col width="10%"/>
      <col width="10%"/>
      <col width="80%"/>
    </colgroup>
    <thead>
      <tr valign="top">
        <th class="categorylist">Field</th>
        <th class="categorylist">Data Type</th>
        <th class="categorylist">Description</th>
      </tr>
    </thead>
    <tbody>
      <!-- Field: 'id' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>id</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>int(11)</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>A unique identification for all entries in this table.</p>
        </td>
      </tr>
      <!-- Field: 'obj_id' -->
      <tr valign="top">
        <td bgcolor="#e3e4e5">
          <p><tt>obj_id</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p><tt>int(11)</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p>The object id of the object in the <tt>objs</tt> table.</p>
        </td>
      </tr>
      <!-- Field: 'obj_type' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>obj_type</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>text</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>The (LTPDA) class of this object.</p>
        </td>
      </tr>
      <!-- Field: 'name' -->
      <tr valign="top">
        <td bgcolor="#e3e4e5">
          <p><tt>name</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p><tt>text</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p>The user-assigned name of this object.</p>
        </td>
      </tr>
      <!-- Field: 'created' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>created</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>datetime</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>The date and time this object was created.</p>
        </td>
      </tr>
      <!-- Field: 'version' -->
      <tr valign="top">
        <td bgcolor="#e3e4e5">
          <p><tt>version</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p><tt>text</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p>The CVS tag of the object constructor code.</p>
        </td>
      </tr>
      <!-- Field: 'ip' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>ip</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>text</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>The IP address of the machine which submitted the object.</p>
        </td>
      </tr>
      <!-- Field: 'hostname' -->
      <tr valign="top">
        <td bgcolor="#e3e4e5">
          <p><tt>hostname</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p><tt>text</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p>The hostname of the machine which submitted the object.</p>
        </td>
      </tr>
      <!-- Field: 'os' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>os</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>text</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>The operating system of the machine which submitted the object.</p>
        </td>
      </tr>
      <!-- Field: 'submitted' -->
      <tr valign="top">
        <td bgcolor="#e3e4e5">
          <p><tt>submitted</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p><tt>datetime</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p>The date and time the object was submitted.</p>
        </td>
      </tr>
      <!-- Field: 'experiment_title' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>experiment_title</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>text</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>A title for the experiment associated with the object.</p>
        </td>
      </tr>
      <!-- Field: 'experiment_desc' -->
      <tr valign="top">
        <td bgcolor="#e3e4e5">
          <p><tt>experiment_desc</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p><tt>text</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p>A description of the experiment associated with the object.</p>
        </td>
      </tr>
      <!-- Field: 'analysis_desc' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>analysis_desc</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>text</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>A description of the analysis associated with the object.</p>
        </td>
      </tr>
      <!-- Field: 'quantity' -->
      <tr valign="top">
        <td bgcolor="#e3e4e5">
          <p><tt>quantity</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p><tt>text</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p>If applicable, the physical quantity associated with the data in the object.</p>
        </td>
      </tr>
      <!-- Field: 'additional_authors' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>additional_authors</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>text</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>Any additional people involved in creating this object.</p>
        </td>
      </tr>
      <!-- Field: 'additional_comments' -->
      <tr valign="top">
        <td bgcolor="#e3e4e5">
          <p><tt>additional_comments</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p><tt>text</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p>A free-form field of additional comments.</p>
        </td>
      </tr>
      <!-- Field: 'keywords' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>keywords</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>text</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>A list of keywords associated with the object.</p>
        </td>
      </tr>
      <!-- Field: 'reference_ids' -->
      <tr valign="top">
        <td bgcolor="#e3e4e5">
          <p><tt>reference_ids</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p><tt>text</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p>ID numbers of any other objects associated with this object.</p>
        </td>
      </tr>
      <!-- Field: 'validated' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>validated</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>tinyint(1)</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>A boolean field indended to indicate validated objects.</p>
        </td>
      </tr>
      <!-- Field: 'vdate' -->
      <tr valign="top">
        <td bgcolor="#e3e4e5">
          <p><tt>vdate</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p><tt>datetime</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p>The date/time the object was validated.</p>
        </td>
      </tr>
    </tbody>
  </table>
</p>


<!-- TRANSACTIONS table -->
<h3><tt>transactions</tt> table</h3>
<p>The <tt>transactions</tt> table records all user transactions. A transaction corresponds to
submitting or retrieving a single or a collection of LTPDA objects.</p>
<p>
  <table cellspacing="0" class="body" cellpadding="2" border="1" width="80%">
    <colgroup>
      <col width="10%"/>
      <col width="10%"/>
      <col width="80%"/>
    </colgroup>
    <thead>
      <tr valign="top">
        <th class="categorylist">Field</th>
        <th class="categorylist">Data Type</th>
        <th class="categorylist">Description</th>
      </tr>
    </thead>
    <tbody>
      <!-- Field: 'id' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>id</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>int(11)</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>A unique identification number this table entry.</p>
        </td>
      </tr>
      <!-- Field: 'obj_id' -->
      <tr valign="top">
        <td bgcolor="#e3e4e5">
          <p><tt>obj_id</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p><tt>int(11)</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p>The object id of the object in the <tt>objs</tt> table.</p>
        </td>
      </tr>
      <!-- Field: 'user_id' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>user_id</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>int(11)</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>The unique ID number of the user who carried out the transaction.</p>
        </td>
      </tr>
      <!-- Field: 'transdate' -->
      <tr valign="top">
        <td bgcolor="#e3e4e5">
          <p><tt>transdate</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p><tt>datetime</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p>The date/time of the transaction.</p>
        </td>
      </tr>
      <!-- Field: 'direction' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>direction</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>text</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>The direction of the transaction: 'in' or 'out'.</p>
        </td>
      </tr>
    </tbody>
  </table>
</p>

<!-- USERS table -->
<h3><tt>users</tt> table</h3>
<p>The <tt>users</tt> table stores information about the users allowed to access the database.</p>
<p>
  <table cellspacing="0" class="body" cellpadding="2" border="1" width="80%">
    <colgroup>
      <col width="10%"/>
      <col width="10%"/>
      <col width="80%"/>
    </colgroup>
    <thead>
      <tr valign="top">
        <th class="categorylist">Field</th>
        <th class="categorylist">Data Type</th>
        <th class="categorylist">Description</th>
      </tr>
    </thead>
    <tbody>
      <!-- Field: 'id' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>id</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>int(11)</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>A unique identification number for all entries in this table.</p>
        </td>
      </tr>
      <!-- Field: 'firstname' -->
      <tr valign="top">
        <td bgcolor="#e3e4e5">
          <p><tt>firstname</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p><tt>text</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p>The firstname of the user.</p>
        </td>
      </tr>
      <!-- Field: 'familyname' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>familyname</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>text</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>The family name of the user.</p>
        </td>
      </tr>
      <!-- Field: 'username' -->
      <tr valign="top">
        <td bgcolor="#e3e4e5">
          <p><tt>username</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p><tt>text</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p>The username (login name) of the user.</p>
        </td>
      </tr>
      <!-- Field: 'email' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>email</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>text</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>A valid e-mail address for the user.</p>
        </td>
      </tr>
      <!-- Field: 'telephone' -->
      <tr valign="top">
        <td bgcolor="#e3e4e5">
          <p><tt>telephone</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p><tt>text</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p>A telephone numnber for the user.</p>
        </td>
      </tr>
      <!-- Field: 'institution' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>institution</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>text</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>The institution of the user.</p>
        </td>
      </tr>
    </tbody>
  </table>
</p>

<!-- COLLECTIONS table -->
<h3><tt>collections</tt> table</h3>
<p>The <tt>collections</tt> 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.</p>
<p>
  <table cellspacing="0" class="body" cellpadding="2" border="1" width="80%">
    <colgroup>
      <col width="10%"/>
      <col width="10%"/>
      <col width="80%"/>
    </colgroup>
    <thead>
      <tr valign="top">
        <th class="categorylist">Field</th>
        <th class="categorylist">Data Type</th>
        <th class="categorylist">Description</th>
      </tr>
    </thead>
    <tbody>
      <!-- Field: 'id' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>id</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>int(11)</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>A unique identification number for this collection of objects.</p>
        </td>
      </tr>
      <!-- Field: 'nobjs' -->
      <tr valign="top">
        <td bgcolor="#e3e4e5">
          <p><tt>nobjs</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p><tt>int</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p>The number of objects in the collection.</p>
        </td>
      </tr>
      <!-- Field: 'obj_ids' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>obj_ids</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>text</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>A comma separated list of object IDs.</p>
        </td>
      </tr>
    </tbody>
  </table>
</p>


<h2>Additional database tables</h2>

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

<!-- AO table -->
<h3><tt>ao</tt> table</h3>
<p>The <tt>ao</tt> table stores additional meta-data specific to analysis objects.</p>
<p>
  <table cellspacing="0" class="body" cellpadding="2" border="1" width="80%">
    <colgroup>
      <col width="10%"/>
      <col width="10%"/>
      <col width="80%"/>
    </colgroup>
    <thead>
      <tr valign="top">
        <th class="categorylist">Field</th>
        <th class="categorylist">Data Type</th>
        <th class="categorylist">Description</th>
      </tr>
    </thead>
    <tbody>
      <!-- Field: 'id' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>id</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>int(11)</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>A unique identification number for all entries in the table.</p>
        </td>
      </tr>
      <!-- Field: 'obj_id' -->
      <tr valign="top">
        <td bgcolor="#e3e4e5">
          <p><tt>obj_id</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p><tt>int(11)</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p>The unique ID of the object.</p>
        </td>
      </tr>
      <!-- Field: 'data_type' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>data_type</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>text</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>The type/class of the data stored in the AO.</p>
        </td>
      </tr>
      <!-- Field: 'data_id' -->
      <tr valign="top">
        <td bgcolor="#e3e4e5">
          <p><tt>data_id</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p><tt>int(11)</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p>The unique ID of the data object listed in one of the data meta-data tables.</p>
        </td>
      </tr>
      <!-- Field: 'description' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>description</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>text</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>The description property of the AO.</p>
        </td>
      </tr>
      <!-- Field: 'mfilename' -->
      <tr valign="top">
        <td bgcolor="#e3e4e5">
          <p><tt>mfilename</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p><tt>text</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p>The filename of any m-file attached to the AO.</p>
        </td>
      </tr>
      <!-- Field: 'mdlfilename' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>mdlfilename</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>text</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>The filename of any SIMULINK model file attached to the AO.</p>
        </td>
      </tr>
    </tbody>
  </table>
</p>

<!-- MIIR table -->
<h3><tt>miir</tt> table</h3>
<p>The <tt>miir</tt> table stores additional meta-data specific to miir filter objects.</p>
<p>
  <table cellspacing="0" class="body" cellpadding="2" border="1" width="80%">
    <colgroup>
      <col width="10%"/>
      <col width="10%"/>
      <col width="80%"/>
    </colgroup>
    <thead>
      <tr valign="top">
        <th class="categorylist">Field</th>
        <th class="categorylist">Data Type</th>
        <th class="categorylist">Description</th>
      </tr>
    </thead>
    <tbody>
      <!-- Field: 'id' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>id</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>int(11)</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>A unique identification number for all entries in the table.</p>
        </td>
      </tr>
      <!-- Field: 'obj_id' -->
      <tr valign="top">
        <td bgcolor="#e3e4e5">
          <p><tt>obj_id</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p><tt>int(11)</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p>The unique ID of the object.</p>
        </td>
      </tr>
      <!-- Field: 'in_file' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>in_file</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>text</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>The input filename (if applicable) used to create the filter object</p>
        </td>
      </tr>
      <!-- Field: 'fs' -->
      <tr valign="top">
        <td bgcolor="#e3e4e5">
          <p><tt>fs</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p><tt>int(11)</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p>The sample rate of the data the filter is designed for.</p>
        </td>
      </tr>
    </tbody>
  </table>
</p>

<!-- MFIR table -->
<h3><tt>mfir</tt> table</h3>
<p>The <tt>mfir</tt> table stores additional meta-data specific to mfir filter objects.</p>
<p>
  <table cellspacing="0" class="body" cellpadding="2" border="1" width="80%">
    <colgroup>
      <col width="10%"/>
      <col width="10%"/>
      <col width="80%"/>
    </colgroup>
    <thead>
      <tr valign="top">
        <th class="categorylist">Field</th>
        <th class="categorylist">Data Type</th>
        <th class="categorylist">Description</th>
      </tr>
    </thead>
    <tbody>
      <!-- Field: 'id' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>id</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>int(11)</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>A unique identification number for all entries in the table.</p>
        </td>
      </tr>
      <!-- Field: 'obj_id' -->
      <tr valign="top">
        <td bgcolor="#e3e4e5">
          <p><tt>obj_id</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p><tt>int(11)</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p>The unique ID of the object.</p>
        </td>
      </tr>
      <!-- Field: 'in_file' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>in_file</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>text</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>The input filename (if applicable) used to create the filter object</p>
        </td>
      </tr>
      <!-- Field: 'fs' -->
      <tr valign="top">
        <td bgcolor="#e3e4e5">
          <p><tt>fs</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p><tt>int(11)</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p>The sample rate of the data the filter is designed for.</p>
        </td>
      </tr>
    </tbody>
  </table>
</p>

<!-- TSDATA table -->
<h3><tt>tsdata</tt> table</h3>
<p>The <tt>tsdata</tt> table stores additional meta-data specific to tsdata (time-series data) objects.</p>
<p>
  <table cellspacing="0" class="body" cellpadding="2" border="1" width="80%">
    <colgroup>
      <col width="10%"/>
      <col width="10%"/>
      <col width="80%"/>
    </colgroup>
    <thead>
      <tr valign="top">
        <th class="categorylist">Field</th>
        <th class="categorylist">Data Type</th>
        <th class="categorylist">Description</th>
      </tr>
    </thead>
    <tbody>
      <!-- Field: 'id' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>id</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>int(11)</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>A unique identification number for all entries in the table.</p>
        </td>
      </tr>
      <!-- Field: 'xunits' -->
      <tr valign="top">
        <td bgcolor="#e3e4e5">
          <p><tt>xunits</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p><tt>text</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p>The X-units associated with this time-series.</p>
        </td>
      </tr>
      <!-- Field: 'yunits' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>yunits</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>text</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>The Y-units associated with this time-series.</p>
        </td>
      </tr>
      <!-- Field: 'fs' -->
      <tr valign="top">
        <td bgcolor="#e3e4e5">
          <p><tt>fs</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p><tt>int(11)</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p>The sample rate of the data the filter is designed for.</p>
        </td>
      </tr>
      <!-- Field: 'nsecs' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>nsecs</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>int</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>The duration (number of seconds) of data in the object.</p>
        </td>
      </tr>
      <!-- Field: 't0' -->
      <tr valign="top">
        <td bgcolor="#e3e4e5">
          <p><tt>t0</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p><tt>datetime</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p>The date/time associated with the start (first sample) of the time-series.</p>
        </td>
      </tr>
    </tbody>
  </table>
</p>

<!-- FSDATA table -->
<h3><tt>fsdata</tt> table</h3>
<p>The <tt>fsdata</tt> table stores additional meta-data specific to fsdata (frequency-series data) objects.</p>
<p>
  <table cellspacing="0" class="body" cellpadding="2" border="1" width="80%">
    <colgroup>
      <col width="10%"/>
      <col width="10%"/>
      <col width="80%"/>
    </colgroup>
    <thead>
      <tr valign="top">
        <th class="categorylist">Field</th>
        <th class="categorylist">Data Type</th>
        <th class="categorylist">Description</th>
      </tr>
    </thead>
    <tbody>
      <!-- Field: 'id' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>id</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>int(11)</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>A unique identification number for all entries in the table.</p>
        </td>
      </tr>
      <!-- Field: 'xunits' -->
      <tr valign="top">
        <td bgcolor="#e3e4e5">
          <p><tt>xunits</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p><tt>text</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p>The X-units associated with this time-series.</p>
        </td>
      </tr>
      <!-- Field: 'yunits' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>yunits</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>text</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>The Y-units associated with this time-series.</p>
        </td>
      </tr>
      <!-- Field: 'fs' -->
      <tr valign="top">
        <td bgcolor="#e3e4e5">
          <p><tt>fs</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p><tt>int(11)</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p>The sample rate of the data the filter is designed for.</p>
        </td>
      </tr>
    </tbody>
  </table>
</p>

<!-- CDATA table -->
<h3><tt>cdata</tt> table</h3>
<p>The <tt>cdata</tt> table stores additional meta-data specific to cdata (1D data) objects.</p>
<p>
  <table cellspacing="0" class="body" cellpadding="2" border="1" width="80%">
    <colgroup>
      <col width="10%"/>
      <col width="10%"/>
      <col width="80%"/>
    </colgroup>
    <thead>
      <tr valign="top">
        <th class="categorylist">Field</th>
        <th class="categorylist">Data Type</th>
        <th class="categorylist">Description</th>
      </tr>
    </thead>
    <tbody>
      <!-- Field: 'id' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>id</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>int(11)</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>A unique identification number for all entries in the table.</p>
        </td>
      </tr>
      <!-- Field: 'xunits' -->
      <tr valign="top">
        <td bgcolor="#e3e4e5">
          <p><tt>xunits</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p><tt>text</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p>The X-units associated with this time-series.</p>
        </td>
      </tr>
      <!-- Field: 'yunits' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>yunits</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>text</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>The Y-units associated with this time-series.</p>
        </td>
      </tr>
    </tbody>
  </table>
</p>

<!-- CDATA table -->
<h3><tt>xydata</tt> table</h3>
<p>The <tt>xydata</tt> table stores additional meta-data specific to xydata (2D data) objects.</p>
<p>
  <table cellspacing="0" class="body" cellpadding="2" border="1" width="80%">
    <colgroup>
      <col width="10%"/>
      <col width="10%"/>
      <col width="80%"/>
    </colgroup>
    <thead>
      <tr valign="top">
        <th class="categorylist">Field</th>
        <th class="categorylist">Data Type</th>
        <th class="categorylist">Description</th>
      </tr>
    </thead>
    <tbody>
      <!-- Field: 'id' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>id</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>int(11)</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>A unique identification number for all entries in the table.</p>
        </td>
      </tr>
      <!-- Field: 'xunits' -->
      <tr valign="top">
        <td bgcolor="#e3e4e5">
          <p><tt>xunits</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p><tt>text</tt></p>
        </td>
        <td bgcolor="#e3e4e5">
          <p>The X-units associated with this time-series.</p>
        </td>
      </tr>
      <!-- Field: 'yunits' -->
      <tr valign="top">
        <td bgcolor="#f3f4f5">
          <p><tt>yunits</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p><tt>text</tt></p>
        </td>
        <td bgcolor="#f3f4f5">
          <p>The Y-units associated with this time-series.</p>
        </td>
      </tr>
    </tbody>
  </table>
</p>