 






          Software
          Product
          Description

          ________________________________________________________________

          PRODUCT NAME:  VAX DBMS, Version 4.2                SPD 25.48.21
                         (Database Management System)

          DESCRIPTION

          VAX DBMS is a multi-user, general purpose CODASYL-compliant
          database management system that runs under the VMS Operating
          System. VAX DBMS is used to access and administer databases
          ranging in complexity from simple hierarchies to complex net-
          works with multi-level relationships. It supports full concur-
          rent access in a multi-user environment without compromising the
          integrity and security of the user's databases.

          VAX DBMS is based upon the March, 1981 Working Document of the
          ANSI Data Definition Language Committee.

          Features

          o  Full concurrent access capabilities (storage, retrieval,
             update, and deletion) in a multi-user environment

          o  Record locking and journaling

          o  Automatic transaction and verb rollback

          o  Multiple database support (one or more databases per process)

          o  Two Phase Commit capability atomically commits or rolls
             back updates across multiple databases in one transaction
             (Optional - see SSA 25.48.21-x for details)

          o  Full VAXcluster support, including automatic recovery upon
             node failure

          o  Integrated with VAX Common Data Dictionary/Plus (CDD/Plus)
             facility

                                       DIGITAL                   July 1990

                                                               AE-L818V-TE

 


          VAX DBMS, Version 4.2                               SPD 25.48.21



          o  Schema, Subschema, Storage Schema, and Security Schema Data
             Definition Languages (DDLs)

          o  FORTRAN Data Manipulation Language (FDML)

          o  COBOL DML statements supported by the VAX COBOL compiler

          o  Generic DML preprocessor for BASIC, BLISS, C, DIBOL, PASCAL,
             PL/I and VAX Ada

          o  Callable interpretive interface for any VAX language that
             adheres to the VAX calling standard

          o  Automatic subschema definition extraction from the CDD/Plus
             for BASIC, BLISS, C, COBOL, DIBOL, MACRO, PASCAL, PL/I, and
             VAX Ada when using the high-level call interface or generic
             DML preprocessor

          o  Easy-to-use utility command language (DBO)

          o  Database Restructuring Utility (DRU) the ability to change
             many database characteristics without unloading and reloading
             the database.

          o  Interactive Database Query Utility (DBQ) with video display
             of subschema structure diagrams on VT100, VT200, or VT300
             compatible terminals

          o  On-line and incremental database verification including
             verification by set

          o  Full and incremental database backup with or without concur-
             rent database users

          o  Full and incremental database restore of the entire database,
             or individual areas

          o  Ability to redo a sequence of committed transactions (roll
             forward)

          o  Initial Load utility; Unload utility for data extraction;
             functionality for database restructuring with Unload/Load

          o  BATCH RETRIEVAL ready mode (database snapshots) for increased
             concurrency in large retrieval applications

                                          2

 


          VAX DBMS, Version 4.2                               SPD 25.48.21



          o  Space Area Management (SPAM) pages which improve database
             free-space search performance

          o  Boolean record selection expression with index optimization
             on FIND and FETCH DML statements

          o  Data compression of data items and database key (DBKey)
             pointers

          o  Direct record access through the use of database key (DBKey)
             pointers

          o  Automatic expansion of large records across multiple database
             pages

          o  Simple restructuring, including adding AREAS and initializing
             AREAS, without unloading and reloading a database

          o  Sorted sets implemented with B-trees or simple chains; pre-
             fix and suffix compression for sort keys with the B-tree
             implementation

          o  DECnet database access to provide full remote read/write
             access to non-redundant distributed data-
             bases.

          Data Definition

          VAX DBMS has a four-part data definition language. The schema
          DDL defines the logical structure of the database, the storage
          schema DDL defines the physical structure of the database, the
          subschema DDL defines application program views of the schema,
          and the security schema DDL defines access rights to database
          objects.

          The schema DDL is the only DDL that must be written. By default,
          the DDL compiler produces a default subschema, storage schema,
          and security schema for every schema it compiles.

                                          3

 


          VAX DBMS, Version 4.2                               SPD 25.48.21



          The schema DDL defines the records, sets, and areas composing
          the database. A record is a collection of data items. A set is
          a relationship between records having one owner record and one
          or more member records in some specified order. An area is a
          logical and physical subdivision of the database that contains
          records.

          The storage schema DDL defines the representation of storage
          records, storage sets, and storage areas (which are equivalent
          to VMS files). It also defines the placement of records within
          the database, the storage set parameters, and the representation
          of data items within a storage record. Most database tuning is
          accomplished by changing the storage schema.

          The subschema DDL defines a logical subset of the database in
          terms of records, sets and realms (a collection of one or more
          areas). Many subschemas can be written to provide different
          views of the database for different application programs.

          The security schema DDL defines the access rights to all
          database objects. DML statement access rights can be defined
          for each DML statement on areas, records, items, and sets.

          All database structure definitions are established and main-
          tained by the DDL compiler and stored in the VAX Common Data
          Dictionary/Plus (CDD/Plus), where they can be retrieved by VAX
          DBMS Utilities, VAX COBOL and VAX DATATRIEVE.

          Data Manipulation

          Application programs must call the Database Control System
          (DBCS) for all database operations. The specific database oper-
          ations supported are: CONNECT, DISCONNECT, ERASE, FETCH, FIND,
          GET, MODIFY, RECONNECT, and STORE for manipulating database
          records and sets; FREE and KEEP for saving and purging database
          currencies and keeplists; COMMIT, READY, and ROLLBACK for con-
          trolling the permanence in non distributed transactions; ALSO,
          EMPTY, MEMBER, OWNER, TENANT, NULL, and WITHIN conditions for
          testing the state of the database, currencies, and keeplists. A
          Boolean expression with EQ, NE, LE, LT, GT, GE, AND, OR, NOT,

                                          4

 


          VAX DBMS, Version 4.2                               SPD 25.48.21



          MATCHES, or CONTAINS operators can be used on the FIND and FETCH
          statements.

          Application programs written in COBOL and FORTRAN perform
          database operations with a set of Data Manipulation Language
          (DML) statements included in the source code. COBOL DML state-
          ments are compiled by the VAX COBOL compiler. FORTRAN DML state-
          ments are translated by the VAX DBMS FORTRAN DML Preprocessor
          into FORTRAN source code that is compiled by the VAX FORTRAN
          compiler. Application programs written in BASIC, BLISS, C, DI-
          BOL, PASCAL, PL/I, and VAX Ada can access a database through
          a generic DML preprocessor. DML statements can be included di-
          rectly into the program. The source file is then passed on to
          the appropriate host language compiler.

          Run-Time Environment (Integrity and Consistency Features)

          The Database Control System (DBCS) controls access to VAX DBMS
          databases. The DBCS ensures the integrity of user databases by
          automatically locking records that have been modified, records
          representing currencies, and records on keeplists. Option-
          ally, the DBA can request that all records read in a particular
          database be locked for the life of the database transaction.
          Users cannot modify data in records that are locked by another
          user. Moreover, users cannot read data that another user has
          modified but not yet committed. When a user process terminates
          or executes a ROLLBACK or COMMIT operation, all locks are re-
          leased. When a user process executes a COMMIT RETAINING opera-
          tion, all record locks not in currency indicators or keeplists
          are released and all records locked for update are changed to
          read locks. Locking of entire areas can be used to improve per-
          formance in certain applications. The VMS lock manager services
          ($ENQ and $DEQ) are used for locking.

          All database changes between READY and COMMIT or ROLLBACK op-
          erations are recorded in a recovery-unit journal. When a user
          performs a COMMIT operation, all database changes are made per-
          manent. A ROLLBACK operation will undo all database changes.

                                          5

 


          VAX DBMS, Version 4.2                               SPD 25.48.21



          The DBCS automatically performs a ROLLBACK operation on any un-
          committed database changes if a program error or system failure
          occurs. Recovery-unit journaling can be disabled by readying an
          AREA in BATCH UPDATE mode which can result in improved perfor-
          mance. A risk of disabling the recovery-unit journaling is that
          the database might be corrupted should a system failure occur.

          The BATCH RETRIEVAL ready mode, also called a snapshot, can be
          used by retrieval transactions that read many records, require
          a consistent view of the database, and do not handle deadlock
          conditions. A database must have snapshots allowed to enable
          transactions in BATCH RETRIEVAL mode; snapshots may be enabled
          per area.

          Long-term after-images can optionally be saved and used by the
          DBO utility to recover from storage device or system software
          failures and is recommended strongly.

          VAXcluster Environment

          VAX DBMS databases can operate in a VAXcluster environment,
          thus allowing for concurrent, multiple-node database access. VAX
          DBMS automatically recovers the database if a processor in the
          VAXcluster fails and provides optional after-image journaling to
          further protect the integrity of the VAXcluster database.

          VAX DBMS uses the VMS distributed lock manager to synchronize
          cluster-wide updates to the database root file, to initiate the
          automatic recovery process when a node fails, and to coordinate
          concurrent updates to the same database from processes running
          on different nodes. VAXclusters offer higher availability to VAX
          DBMS databases in a properly configured VAXcluster environment.

          Security Features

          VAX DBMS provides security on database objects via the security
          schema, on DBO commands via access control lists, on files
          via the VMS file protection features, and on metadata in the
          CDD/Plus dictionary via the CDD/Plus security features.

                                          6

 


          VAX DBMS, Version 4.2                               SPD 25.48.21



          Application programs access the database through a security
          schema. The security schema controls the access to areas,
          records, items, and sets for each DML statement. The security
          schema for a given user is controlled by the User Execution List
          (UEL), which is an access control list. The UEL consists of user
          identification codes (UIC) and the security schema through which
          they are allowed access to the database. UELs are manipulated by
          the database administrator through the use of the DBO/PERMIT_
          USER command.

          For compatibility with VAX DBMS, Version 1.0, a NULL security
          schema can be used. The NULL security schema allows any DML
          statements on any database object.

          Access to DBO commands is controlled by an access control list
          for each DBO command. The Command Authorization Lists (CALs)
          are manipulated by the Database Administrator with the com-
          mand DBO/GRANT_COMMAND. There is a CAL for every DBO command
          except MONITOR, SHOW, and CONVERT. There is no CAL for the CDD
          commands.

          The DBCS runs in EXEC mode, securing its code and data struc-
          tures from the user's user mode applications.

          VAX DBMS uses standard VMS file security (SYSTEM, OWNER, GROUP,
          WORLD) to protect database storage areas (files). An application
          program can only access records defined in its SUBSCHEMA. It is
          the responsibility of the Database Administrator (DBA) to define
          storage areas and realms plus set up file protection and access
          control lists and security schemas to prevent unauthorized
          access to sensitive data.

          Metadata security and protection can be provided by preventing
          access to metadata definitions stored in the VAX Common Data
          Dictionary/Plus (CDD/Plus). The CDD supports a hierarchical
          security system based on access control lists. It is the re-
          sponsibility of the DBA to define CDD access control lists to
          prevent unauthorized access to sensitive database definitions.

          Utilities

                                          7

 


          VAX DBMS, Version 4.2                               SPD 25.48.21



          Interactive DML Utility (DBQ)

          Provides on-line procedural database access capabilities by
          interactively processing generic Data Manipulation Language
          (DML) statements.

          o  Provides DISPLAY,EDIT, IF-THEN-ELSE, INITIALIZE, LOOP, MACRO,
             MOVE, SET, SHOW, PRINT, and SHIFT statements

          o  Allows DCL commands from within the image

          The current position in a subschema is optionally displayed
          graphically (on a VT100, VT200, or VT300 compatible terminal) as
          the user navigates through the database.

























                                          8

 


          VAX DBMS, Version 4.2                               SPD 25.48.21



          Database Operator Utility (DBO)

          Provides the Database Administrator with all of the functions
          required to create, maintain, delete, and control VAX DBMS
          databases. It provides the following major features:

          o  Creating, initializing, and deleting databases.

          o  Loading and unloading databases.

          o  Restructuring databases; RECALCing records into expanded
             areas.

          o  Controlling access to DBO commands and to the database
             through ACLs and security schemas.

          o  Reporting on VAX DBMS information in the VAX Common Data
             Dictionary/Plus.

          o  Extracting DDL information from the VAX Common Data Dictio-
             nary/Plus.

          o  Deleting DDL information in the VAX Common Data Dictio-
             nary/Plus.

          o  Verifying the integrity of internal database structures
             on-line. (Verification of the database is performed more
             efficiently on lightly loaded or inactive databases.)

          o  Modifying the contents of corrupted database storage areas.
             (This function is not recommended or required for normal
             use.)

          o  Producing formatted dumps of the database, AIJ, or RUJ files.

          o  Providing the spooling of after-image journal files by back-
             ing them up to another device.

          o  Producing full and incremental database backup, on-line and
             off-line.

          o  Restoring the database from backup and long-term journals.

          o  Controlling and displaying the status of the DBCS Monitor
             process.

                                          9

 


          VAX DBMS, Version 4.2                               SPD 25.48.21



          o  Providing for orderly database shutdown on a single node or
             across a VAXcluster.

          o  Creating static analysis of database space usage (DBO/ANALYZE)
             on- or off-line.

          o  On-line or replay of DBMS statistics in the form of a his-
             togram, a columnar chart, a time plot on a single node basis
             for active databases, or areas (DBO/SHOW STATISTICS). Statis-
             tics include: summary I/O, database verb, database index,
             virtual memory usage, summary locking, summary after-image
             journal, summary page I/O, I/O stall time, stall messages,
             and transaction durations.

          o  Generating a User Work Area (UWA) for application programs
             using the callable interpretive interface.

          Database Restructuring Utility (DRU)

          Provides the ability to change many database characteristics
          without unloading and reloading the database. It provides the
          following major features:

          o  Removing areas from record WITHIN clauses.

          o  Changing set insertion and retention modes to AUTOMATIC
             MANDATORY or AUTOMATIC FIXED.

          o  Specifying that duplicates are not allowed on sorted sets.

          o  Changing the sort key and sort order on sorted sets.

          o  Changing set ORDER and MODE clauses.

          o  Changing B-tree node size, reset the B-tree fill factor, and
             for SYSTEM-owned set, change the B-tree location.

          o  Remote items from the database that are no longer needed.

          Product Assistance Facilities

                                         10

 


          VAX DBMS, Version 4.2                               SPD 25.48.21



          VAX DBMS provides extensive help facilities for the interac-
          tive DML Utility (DBQ), the DML precompiler(DML), the Database
          Operator Utility (DBO), and the DDL compiler. The help files
          contain all necessary information on the use of each of these
          facilities.

          VAX DATATRIEVE provides an optional interface to VAX DBMS
          database structures. This provides the VAX DBMS user with a
          high-level, nonprocedural query and report generating facility.

          Components

          DDL Compiler (DDL) - Used by the Database Administrator (DBA)
          to create and maintain database structure definitions includ-
          ing records, sets, areas, and realms in the VAX Common Data
          Dictionary/Plus. It compiles the schema, subschema, storage
          schema, and security schema DDLs, and generates default sub-
          schemas, storage schemas, and security schemas. The VMS DCL
          command ``DDL'' invokes the compiler.

          Database Control System (DBCS) - Controls access to VAX DBMS
          databases. The DBCS is a shareable image that is linked with any
          application program that accesses the database.

          FORTRAN DML Preprocessor (FDML) - Preprocesses FORTRAN DML
          application programs. It translates FORTRAN DML statements into
          FORTRAN calls to the DBCS and data definition statements and
          passes the complete FORTRAN source program to the VAX FORTRAN
          Compiler.

          Generic DML Preprocessor - Preprocesses application programs
          written in BASIC, BLISS, C, DIBOL, PASCAL, PL/I, and VAX Ada. It
          converts DML statements into calls to the DBCS and passes the
          complete source program to the host language compiler.

          Database Monitor Process - Controls all interprocess database
          communication and recovery.

          Database Recovery Process (DBR) - Provides the database recovery
          capability.

                                         11

 


          VAX DBMS, Version 4.2                               SPD 25.48.21



          Interactive DML Utility (DBQ) - Provides interactive DML ac-
          cess to any VAX DBMS database. The VMS DCL command ``MCR
          SYS$SYSTEM:DBQ'' invokes the utility.

          Database Operator Utility (DBO) - Used by the DBA to create,
          maintain, delete, and control all VAX DBMS databases. The VMS
          DCL command ``DBO'' invokes the utility.

          Database Restructuring Utility (DRU) - Enables the DBA to make
          user-data dependent changes to the database.

          DBMSERVER - Provides access to local databases for remote DECnet
          users.

          Installation Verification Procedures (IVP) - Verifies the cor-
          rect installation of all VAX DBMS components and builds the
          PARTS database that is used in examples throughout the documen-
          tation.

          Demonstration (DEMO) - A demonstration package which uses the
          PARTS database.

          Limits and Parameters

          o  Maximum length of a sort key is 255 bytes.

          o  Maximum number of sort key items is limited by the total sort
             key length.

          o  Maximum length of a calc key is 32K bytes.

          o  Maximum number of calc key items is limited by the total calc
             key length.

          o  Maximum length of database object name is 31 bytes.

          o  Other schema size (complexity) parameters are limited by
             machine address space and disk space.

          o  Minimum database page size is 512 bytes.

          o  Maximum database page size is 32K bytes.

          o  Maximum number of pages per area is 2**32 pages.

                                         12

 


          VAX DBMS, Version 4.2                               SPD 25.48.21



          o  Maximum number of areas (files) per database is 32K files
             (VMS resources and typical SYSGEN parameters will constrain
             this to be much lower).

          o  Maximum length of a storage record, including DBMS overhead,
             is 32K bytes.

          o  Minimum interval between SPAM pages is 256 pages.

          o  Maximum interval between SPAM pages is 64K pages.

          o  Maximum number of concurrent users per database is 2032
             (not all database maintenance functions can be performed
             efficiently with large numbers of active users).

          Optional VAX DBMS Run-Time Only Environment

          A Run-Time Only version of VAX DBMS is available. It provides
          all features and facilities except the DDL compiler, the FORTRAN
          Data Manipulation Language (FDML) preprocessor, and the Generic
          DML preprocessor. The purpose of the Run-Time Only version is to
          support the execution of applications on one machine that have
          been developed on other machines using the development version
          of the product. Program development is not supported under the
          Run-Time Only version.

          HARDWARE REQUIREMENTS

          VAX, MicroVAX, VAXstation or VAXsever configuration as specified
          in the System Support Addendum (SSA 25.48.21-x).

          SOFTWARE REQUIREMENTS*

          o  VMS Operating System

          Layered Products

          o  VAX CDD/Plus

                                         13

 


          VAX DBMS, Version 4.2                               SPD 25.48.21



          o  VMS Workstation Software

          *  Refer to the System Support Addendum for availability and
             required versions of prerequisite/optional software (SSA
             25.48.21-x).

          ORDERING INFORMATION

          Software Licenses: QL-899A*-**
          Run-Time Only: QL-915A*-**

          Software Media: QA-899A*-**
          Run-Time Only: QA-915A*-**

          Software Documentation: QA-899AA-GZ
          Run-Time Only: QA-915AA-GZ

          Software Product Services: QT-899A*-**
          Run-Time Only: QT-915A*-**

          *  Denotes variant fields. For additional information on li-
             censes, services and media, refer to the appropriate price
             book.
















                                         14

 


          VAX DBMS, Version 4.2                               SPD 25.48.21



          SOFTWARE LICENSING

          This software is furnished under the licensing provisions of
          Digital Equipment Corporation's Standard Terms and Conditions.
          For more information about Digital's licensing terms and poli-
          cies, contact your local Digital office.

          LICENSE MANAGEMENT FACILITY SUPPORT

          This layered product supports the VMS License Management Fa-
          cility and allows Development and Runtime licenses on the same
          cluster.

          License units for this product are allocated on a CPU-capacity
          basis.

          For more information on the License Management Facility, refer
          to the VMS Operating System Software Product Description (SPD
          25.01.xx) or the VMS Operating System documentation set.

          For more information on Digital's licensing policies, contact
          your local Digital office.

          SOFTWARE PRODUCT SERVICES

          A variety of service options are available from Digital. For
          more information, contact your local Digital office.

          SOFTWARE WARRANTY

          Warranty for this software product is provided by Digital with
          the purchase of a license for the product as defined in the
          Software Warranty Addendum of this SPD.

          [TM]  The DIGITAL Logo, MicroVAX, VAX, VAXstation, and VAXserver
                are trademarks of Digital Equipment Corporation.



                                         15
