MultiValue Environment Overview

A MultiValue environment allows many users to work interactively on a computer, performing a variety of tasks that involve access to a central database. The definitive characteristic of a MultiValue environment is that the database itself supports the highly flexible and practical MultiValue File System model. This is also known as the NF (Non-First Normal Form), Natural Data Model, or Post-Relational Model.

One major task the MultiValue environment performs is to generate reports that organize and arrange the data stored in the database. The database contains information about a business, such as parts inventory, customer orders, product manufacturing, and accounting functions. For instance, a business might generate reports that show the volume of sales or the size of current inventory. Tasks such as report generation are normally performed under the control of an application program that makes the underlying facilities of the system available in a structured, useful manner.

Organizing Information

All the facilities of the computer system are designed around how the MultiValue environment organizes data. The MultiValue environment provides a database model for the storage and retrieval of data. This model makes the MultiValue environment ideal for describing the kinds of data that are managed in a business application.

The MultiValue database is a collection of files; a file is a collection of related data. The MultiValue environment uses dictionaries (a dictionary is itself a file) to define the relationships among files and to identify the data they contain.

The MultiValue file system comprises four levels:

  1. SYSTEM Dictionary level

  2. Master Dictionary level

  3. File dictionary level

  4. Data file level

    The image below illustrates the hierarchical structure of the mvBase file system.

SYSTEM Dictionary

Each MultiValue environment has a single SYSTEM Dictionary. It is used to store information that is gathered system-wide. This includes information on user accounts, system usage, and security. Typically the SYSTEM Dictionary is accessed only by the system administrator through the SYSPROG account.

Master Dictionary

A Master Dictionary represents the account-level. An account is a user’s place on the system, just as an employee is assigned to work in a particular office. Each account has its own Master Dictionary which can be tailored to the needs of the users of that account. All the files and commands that are available to an account have entries in the Master Dictionary.

File Dictionary

A file dictionary can point to one or more data-level files. The file dictionary and the data file are distinct sets of data stored in separate files. Logically, however, they can be thought of as a single data file comprising a dictionary portion and a data portion. Each data-level file is associated with a file dictionary. The dictionary defines the format of the data files associated with it. The actual data which appears in a report is stored in the data file.

When the name of a file is used in a command, the system looks up the file name in the Master Dictionary of that account and follows a pointer to the file’s dictionary. This dictionary, in turn, contains a pointer that points to the data file.

Data File

To programmers, a file is a collection of individually accessed items. A MultiValue file contains any number of variable length items. Each item is a string containing various delimiter characters to indicate attributes, values, and subvalues, equivalent to a record in standard data processing terminology.

For instance, in a file containing information about employees, each employee would be described by a single item. A dictionary also consists of items, but to prevent confusion we sometimes refer to dictionary items as entries or descriptors.

Each item must be assigned a unique item-ID or key that is used to access the item in the file. For instance, an employee’s Social Security number might be used as an item-ID.

An item consists of any number of attributes, which are basically the equivalent of fields. An attribute is a container of data that can hold a single value or multiple values. For instance, the attribute LASTNAME holds an employee’s last name. The value of this attribute varies from item to item; it might be "Jones" or "Smith".

The attribute PHONE might hold more than one value for each item; for instance, the person’s work number and home number. Values, in turn, can contain any number of subvalues. Attributes, values, and subvalues are all of variable length.

See Also

Introduction

Applications Software Overview

mvBase System Overview

Merging MultiValue and Windows Environments

Managing the mvBase System