KEYWORD DATABASE DESIGN



Tables and fields in the keyword database

Superscripts in the table indicate Unique Keys and their order. Bold words in text indicate tables or views. Italicized words indicate fields.


build_info

build_info contains information about the current state of the keyword database. For each subsystem (DADS or OPUS), it keeps track of what build the database reflects, as well as when the build was installed, and when the database was migrated.

Column Description of build_info
subsystem1 DADS or OPUS.
build_num2 Build number associated with subsystem.
build_date Build date associated with the build number.
migration_date Date of migration from test keyword database to operation keyword database.
time_record_inserted Date the build status was updated.


dads_keywords

dads_keywords contains the complete list of keywords that make it into the DADS database and their associated DADS field names. This list is a subset of the keywords in keyword_main. The real_instrument is the actual instrument with which the keyword is associated and not the SSY or GEN instrument. The instr_link table, which contains both kinds of instruments, links dads_keywords to keyword_main. The rest of the table contains the keyword, the name of the DADS field to which it maps, and any function needed to compare values in the database to the actual file.

Column Description of dads_keywords
real_instrument1 The real science instrument. If instrument in keyword_main is equal to "SSY" or "GEN", it gets converted to all the actual instruments for a specific keyword. This means that one SSY entry in keyword_main may have many corresponding entries in dads_keywords, up to one for each instrument.
keyword2 The keyword.
fieldname3 The name of field in the DADS database.
special_process The special_process is used by catalog verification in its comparison of a keyword in the data file to the value which is in the DADS database. This field is often null but is filled in when DADS had to do some preprocessing of data before putting it into the database.


hda_fields

hda_fields contains a unique listing of fields in the Hubble Data Archive (HDA), including DADS tables, IUE tables, proposal tables, and other tables/databases used by StarView. This table contains information that StarView needs to generate the Data Definition Language (DDL), which produces StarView help files.

Column Description of hda_fields
fieldname1 Name of field in the DADS database.
tablename2 Table name where field is located.
dbname3 Name of database where field is located.
datatype Datatype of the field.
size Size of the field.
logicaltype StarView logical type.
descriptive_label StarView display units.
display_size StarView display size.
qualifiable Whether field is qualifiable by StarView.
constraints StarView constraints.
definition StarView definitions. Note: If this field maps to a keyword then there is a pointer to where the keyword's comment is located.
comment A short comment about the field.


header_file

header_file contains section information for a given section_number, originally based on ICD-19. It also contains a flag which indicates whether DADS processes this section or not.

Column Description of header_file
section_number1 The section number (originally from ICD-19).
section_name This is a short mnemonic associated with the section.
group_order2 Order of the groupings within a section.
instrument Instrument type. This can be the 3 letter acronym for a specific instrument or SSY-keyword associated will all instruments or GEN-keyword associated with both STIS and NICMOS instruments.
groupname Group to which the keyword belongs (eg. SCI, UDL, SHP, etc.) This will be filled in for all OPUS keywords. Non-OPUS keywords may have other values or nulls.
dads_header Flag indicating whether or not DADS processes this section.


header_file_section

header_file_section contains the title for each section_number in header_file.

Column Description of header_file_section
section_number1 The section number (originally from ICD-19).
section_title The title of the section.


heading_comments

heading_comments contains comments and the order of the comments for the instrument/groupname pair.

Column Description of heading_comments
instrument1 Instrument type. This can be the 3 letter acronym for a specific instrument or SSY-keyword associated will all instruments or GEN-keyword associated with both STIS and NICMOS instruments.
groupname2 Group to which the keyword belongs (eg. SCI, UDL, SHP, etc.).
comment_order3 Order of the comments within a group.
fixedindex Fortran subscript used by old PODPS code.
comment The header comment.


instr_link

instr_link contains a mapping between instrument in keyword_main and real_instrument in dads_keywords. It is also used by the view keyword_full to list keywords associated with a given instrument. This table contains one entry for each actual instrument in keyword_main, or will contain multiple entries when the instrument is "SSY" or "GEN".

This table is created nightly by a cron job.

Column Description of instr_link
real_instrument4 The real science instrument. The actual science instrument associated with a keyword. If instrument in keyword_main is equal to "SSY" or "GEN", it gets converted to all the actual instruments for a specific keyword. This means that one SSY entry in keyword_main may have many corresponding entries in instr_link, up to one for each instrument.
instrument1 Instrument type. This can be the 3 letter acronym for a specific instrument or SSY-keyword associated will all instruments or GEN-keyword associated with both STIS and NICMOS instruments.
keyword3 The keyword.
groupname2 Group to which the keyword belongs (eg. SCI, UDL, SHP, etc.) This will be filled in for all OPUS keywords. Non-OPUS keywords may have other values or nulls.


instr_map

instr_map contains one entry per instrument, mapping the OPUS instrument names to the full instrument names. This table was created as a way to create the instr_link table. It has other uses as well.

Note: Instruments ending in 'F' are used by OPUS to generate a fits standard header which are converted to geis before being ingested into the archive.

Column Description of instr_map
real_instrument1 The real science instrument. The actual science instrument (6-char) that will be used to fill the INSTRUME keyword.
instrument2 Instrument type. 3 letter acronym that is used in keyword_main that maps to a specific instrument. (This excludes SSY and GEN.)


keyword_descrip

keyword_descrip contains the datatype, comment, and units associated with an OPUS or non-OPUS keyword. An entry in this table can span keyword, instrument, and groupname.

Column Description of keyword_descrip
kd_id1 The key which is used to associate an entry in keyword_main with it's description.
datatype The datatype of the keyword.
units The units of the keyword.
comment A short (49 characters at most) comment used in the header files to describe the keyword.


keyword_main

keyword_main contains an entry for every keyword that OPUS, DADS, or anyone else uses. In the case of non-OPUS keywords, groupname may be blank or have a fake value.

Column Description of keyword_main
instrument1 Instrument type. This can be the 3 letter acronym for a specific instrument, or SSY-keyword associated with all instruments, or GEN-keyword associated with both STIS and NICMOS instruments.
keyword2 The keyword.
groupname3 Group to which the keyword belongs (eg. SCI, UDL, SHP, etc.) This will be filled in for all OPUS keywords. Non-OPUS keywords may have other values or nulls.
default_val Default value for the keyword. There can be different values for the keyword depending on the groupname.
kd_id A foreign key which points to the keyword_descrip table (containing the datatype, units, and comment). A kd_id can span keyword, instrument, and groupname. This was done as a way of reducing redundancy and maintaining data integrity.
ld_id A foreign key which points to the long_descrip table (containing the long description). An ld_id can be associated with different keywords, or same keyword for different instruments. This was done as a way of reducing redundancy and maintaining data integrity.
keyword_order The order of the keywords within a group.
fixedindex Fortran subscript used by old PODPS code.
conv_flg T/F flag indicating whether the keyword should be converted.
option_flg O/blank flag indicating whether the keyword is optional.


keyword_source

keyword_source contains the PDB or PMDB source for an instrument/keyword pair in keyword_main when such a source exists. If there is no PDB or PMDB source for an instrument/keyword pair then there will be no entry in this table.

Column Description of keyword_source
instrument1 Instrument type. This can be the 3 letter acronym for a specific instrument, or SSY-keyword associated will all instruments, or GEN-keyword associated with the newer instruments.
keyword2 The keyword.
source_type The source type (i.e. PDB or PMDB).
source The table name for PMDB or mnemonic for PDB.
subsource The field name for PMDB or conversion type for PDB.


long_descrip

long_descrip contains the long description associated with an instrument/keyword pair. An entry in this table can span keyword and instrument in keyword_main. If an instrument/keyword pair has no description there will be no entry made in this table.

Column Description of long_descrip
ld_id1 A key which is used to associate an entry in keyword_main with it's long description.
description A long, detailed description for each keyword.


possible_values

possible_values contains an entry for each possible value for an instrument/keyword pair in keyword_main, when the keyword value can be contained in a finite list. If an instrument/keyword pair value is not part of a finite list, there will be no entry made in this table.

Column Description of possible_values
instrument1 Instrument type. This can be the 3 letter acronym for a specific instrument, or SSY-keyword associated will all instruments, or GEN-keyword associated with the newer instruments.
keyword2 The keyword.
poss_val_type Type of possible value being listed (i.e. ENUM, RANGE).
poss_val3 The possible value. If it's a range then an entry will be made for both the beginning and end values for the range. If it's an enumerated list an entry will be made for each value in the list.


Views in Keyword DB

View What it displays
dads_keyword_info Displays comment, units, datatype, instrument, real_instrument, groupname, keyword, keyword_order,fieldname, and function for all DADS keywords.
keyword_full Displays all the fields in keyword_main and keyword_descrip with the addition of real_instrument from instr_link.
keyword_view Displays all the fields in keyword_main and keyword_descrip.
long_descrip_view Displays instrument, keyword, and description from keyword_main and long_descrip tables.
hc_view Not for general use. Used by stored procedure sp_header and Keyword Dictionary to create header files.
km_kd_view Not for general use. Used by stored procedure sp_header and Keyword Dictionary to create header files.


Products generated from the Keyword DB

Product Tables Used
cgg1_keyword.dat keyword_main, heading_comments, keyword_descrip
cgg3_source keyword_main, keyword_descrip
cgg4_order header_file
ICD-19 header_file, header_file_section hc_view, km_kd_view
Keyword dictionary dads_keywords, keyword_full, keyword_source, long_descrip, possible_values
Catalog verification files hda_fields, dads_keywords, instr_link, keyword_main
StarView DDL files hda_fields, dads_keywords, dads_keyword_info
OTFC dads_keyword_info

gardner@stsci.edu,
lisa@stsci.edu
Last revised: Thu Mar 30 2000