Module Tables

Changes made in the current development cycle can be found in the changelog.

Description (classes)

Tables are the data storage mechanism for AIPS++

Review Status

Reviewed By:
jhorstko
Date Reviewed:
1994/08/30

Prerequisite

Etymology

"Table" is a formal term from relational database theory: "The organizing principle in a relational database is the TABLE, a rectangular, row/column arrangement of data values." AIPS++ tables are extensions to traditional tables, but are similar enough that we use the same name. There is also a strong resemblance between the uses of AIPS++ tables, and FITS binary tables, which provides another reason to use "Tables" to describe the AIPS++ data storage mechanism.

Synopsis

Tables are the fundamental storage mechanism for AIPS++. This document explains why they had to be made, what their properties are, and how to use them. The last subject is discussed and illustrated in a sequence of sections:

Motivation

The AIPS++ tables are mainly based upon the ideas of Allen Farris, as laid out in the AIPS++ Database document, from where the following paragraph is taken:

Traditional relational database tables have two features that decisively limit their applicability to scientific data. First, an item of data in a column of a table must be atomic -- it must have no internal structure. A consequence of this restriction is that relational databases are unable to deal with arrays of data items. Second, an item of data in a column of a table must not have any direct or implied linkages to other items of data or data aggregates. This restriction makes it difficult to model complex relationships between collections of data. While these restrictions may make it easy to define a mathematically complete set of data manipulation operations, they are simply intolerable in a scientific data-handling context. Multi-dimensional arrays are frequently the most natural modes in which to discuss and think about scientific data. In addition, scientific data often requires complex calibration operations that must draw on large bodies of data about equipment and its performance in various states. The restrictions imposed by the relational model make it very difficult to deal with complex problems of this nature.

In response to these limitations, and other needs, the AIPS++ tables were designed.

Table Properties

AIPS++ tables have the following properties:

Tables can be in one of three forms: