Dictionaries are used by the D3 system to describe, define, locate, and, in general, operate on data within the files to which they point.

Many dictionary items perform operations that process the data in associated files at the system level instead of in each program that uses the data. Moving the operation into the data dictionary enhances overall system performance and programmer productivity.

Some of these operations include the definition of relationships between and within files, and using bridge, index or translate processing codes. Features such as processing codes provide the ability to cruise and zoom through the database.

MultiValue relationships within files are expressed through the structure controlling attribute (attribute 4) of an attribute-defining item.

Each data file in the system has one dictionary. A dictionary can have several files associated with it. Dictionaries associated with data files contain items such as attribute-defining items, file-defining items, synonym-defining items, and pointers to compiled FlashBASIC programs.

The dictionary code attribute (attribute 1) identifies the item type:

  • If the attribute contains an a, s, or x, it is an attribute-defining item.

  • If the first character of the attribute is d, it is a file-defining item.

  • If the attribute contains a q, it is a synonym-defining item.

There are three types of dictionaries:

System Only one per system. Items within the system dictionary (mds) point to account master dictionaries. The mds file can only be accessed on the dm account.
Master Only one per account. Items within master dictionaries point to file dictionaries. The following types of items are contained in master dictionaries:
  • Attribute-defining items

  • File-defining items

  • Synonym-defining items

  • Macros

  • Menus

  • Commands

  • Connectives

  • Cataloged FlashBASIC program pointers

  • PROCs

File Multiple, distributed among various accounts. Items within file dictionaries point to data files. File-defining items, synonym-defining items, and attribute-defining items are also present in file dictionaries. Pointers to compiled FlashBASIC programs are only present in file dictionaries.

Dictionaries as Operators

The D3 dictionary is a file consisting of items that contain up to 30 attributes. Each dictionary item can be considered as a vector operator of 30 elements, some of which contain operations to be performed on the specified attribute in the associated file. The element that identifies the attribute within the associated file is the operand.

There are two types of dictionary entries:

file-defining items Operate specifically on attribute 0 of the associated file and contain system information specific to the associated file.
attribute-defining items Operate on any attribute within the associated data file or dictionary. Functions (or programs) defined at the system level (or by the user) can be assigned to the appropriate attributes of the attribute-defining item.

In many cases, the generation of complex programs in a high level language can be avoided, and this vector provides a shorthand language for generating programs.

Data can be entered via the Update processor or a FlashBASIC program that passes data through the specified attribute-defining item within the data file dictionary for modification and stores the data in the specified attribute of the data file.

When the data is viewed using the Update processor or retrieved using AQL or FlashBASIC, it passes from the attribute in the data file through the data file dictionary for modification prior to output. Secondary files may be involved if the operation specified in the dictionary item is a translation.