D3 is a powerful, efficient, and compact multidimensional DBMS. The entire system includes several modules that make D3 the most powerful and flexible DBMS available, for example:
Specialized data storage system
Data retrieval language
Several command processors
Line editor
Full-screen editor
Spooler
FlashBASIC compiler
ODBC and SQL connections
The fundamental concepts essential to understanding how the D3 system works are:
Smallest identifiable piece of data is called a value. Values are stored in a structure called an attribute (field).
Attributes can contain no value (null), one value, or several values.
Group of zero or more attributes make up an item (record). Each item has the same number of attributes, and each attribute is stored in the same order within the item as all the other items.
Items are stored in a file.
Definitions of the item attributes and how they are handled is stored in a dictionary. Every file has a corresponding dictionary.
The unique dictionary file contains at least one definition for each attribute in the corresponding file. It describes what kind of data the attribute holds and how the data is sorted, displayed, and interrelates with other attributes. The dictionary has features that allow a:
value to be converted to a short form during data entry, then reconverted to the value for display.
value to be referred to if that value is stored in another attribute, another item, or another file.
value to be logically linked to another value in a different attribute.
FlashBASIC subroutine to be executed in conjunction with recalling the value.
There must be at least one definition for each of the item attributes. There can be more than one definition for the same attribute. This allows an attribute value to be handled in more than one way, depending on the needs of the moment.
New attributes can be added to an existing file by merely creating a new attribute definition in the dictionary for a new attribute.
Manual data entry can be performed by writing a FlashBASIC program, by using the Update Processor and specifying the list of attributes to enter, or by using the Editor. Automatic data entry is performed by writing a FlashBASIC program or a Proc.
Data is retrieved from a file by either writing a FlashBASIC program, or by using AQL, the report generating language.
Additional system operations, such as device management or file maintenance, is handled through the Terminal Control Language (TCL).
AQL sentences can be incorporated into simpler command structures, such as a macro or menu. AQL commands may also be performed from within a FlashBASIC program or Proc routines.
AQL reports can be sent to the terminal for display or to the Spooler for printing. The Spooler manages all of the printer resources on the D3 system.
The ODBC and OSFI connections allow non-D3 applications to access the D3 database.
This document describes:
What a database is
D3 data model, file structure, and system architecture
Introduction on navigating the D3 system
Internal structure of D3 data
How D3 accesses data in a file
D3 dictionaries and their subsidiary codes and structures
Line editor and full-screen editor
How to design and build a sample database
Other books describe the AQL and TCL languages; the FlashBASIC compiler; the Spooler, ODBC, and SQL capabilities; and other information on D3.
NOTE |
D3 uses a programming language called FlashBASIC, which is an extension of the original Dartmouth BASIC. Unlike its predecessor, Pick/BASIC, in which the source code was tokenized and interpreted at run time, FlashBASIC translates the source code into C and employs the host C compiler to produce object code which improves performance by as much as 500%. Earlier versions of Pick/BASIC source code or compiled object code can be compiled to FlashBASIC without any necessary code modification. |
See Also
Controlling and Dependent Structures