Google
 

Trailing-Edge - PDP-10 Archives - BB-4148E-BM - documentation/dbms6.doc
There are 2 other files named dbms6.doc in the archive. Click here to see a list.


            DBMS6.DOC -- CHANGES FROM V5A(422) TO V6(363)


SEPTEMBER 1981






























COPYRIGHT (C) 1974,1981 BY
DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.


THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND  COPIED
ONLY  IN  ACCORDANCE  WITH  THE  TERMS  OF  SUCH  LICENSE AND WITH THE
INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR  ANY  OTHER
COPIES  THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
OTHER PERSON.  NO TITLE TO AND OWNERSHIP OF  THE  SOFTWARE  IS  HEREBY
TRANSFERRED.

THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT  NOTICE
AND  SHOULD  NOT  BE  CONSTRUED  AS  A COMMITMENT BY DIGITAL EQUIPMENT
CORPORATION.

DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR  RELIABILITY  OF  ITS
SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.



                                  1
                              DBMS6.DOC


1.0  SUMMARY

DBMS-20 Version 6 is a major Engineering release of this  product  and
fully replaces DBMS-20 Version 5A on TOPS-20 systems only.

The major changes between DBMS-20 V5A and DBMS-20 V6 are:

     The following performance improvements going from version  5A  to
        version  6 have been observed on test applications:  Reduction
        of 30% in CPU usage, increase of 40% in  Transaction  Thruput,
        and Reduction of 60% in Disk Reads.
     Replacement of SCHEMA DMCL by SCHEMA ENCL.
     Enhancement of Disk Journaling and Recovery Procedures.
     Locking down to the level of individual Data Base pages as a user
        option for Data Bases under Simultaneous Access.
     Enhanced user-specifiable algorithms for  physical  placement  of
        data.
     User-callable algorithm  to  ascertain  placement  of  Calc  data
        records.
     Enhanced STATS and DBINFO data dump reports.

DBMS-20 version 6 consists of:

        Name            Version         Old Version
        ----            -------         -----------
        SCHEMA          6(363)          5A(422)
        DBCS            6(363)          5A(422)
        DBMEND          6(363)          5A(422)
        DBINFO          6(363)          5A(422)
        FORDML          6(363)          5A(422)

The above software has been tested and will run under TOPS-20  release
4.

This release of the DBMS-20 version 6 software is  available  only  in
binary format.

DBMS-20 version 6 conforms  to  the  1971  CODASYL  DBTG  Report  with
extensions.















                                  2
                              DBMS6.DOC


1.1 Bibliography

        DBMS-20 Utilities Manual                            AA-H228A-TM
        DBMS-20 User's Guide                                AA-H229A-TM
        DBMS-20 DML Programmer's Reference Card             AV-H230A-TM
        DBMS-20 Data Description Language Reference Manual  AA-H231A-TM
        DBMS-20 Data Manipulation Language Reference Manual AA-H232A-TM
        DBMS-20 Installation Guide                          AA-J875A-TM
        DBMS-20 Documentation Directory                     AA-J876A-TM
        DBMS-20 Version 6 Release Notes                     AA-J877A-TM
        DBMS-20 Error Message Manual                        AA-J878A-TM
        DBMS-20 Data Base Administrator's Reference Card    AA-J879A-TM



1.2 Required Software

The following software versions (or later)  are  required  to  install
DBMS-20 version 6.

        Name            Version
        ----            -------
        LINK            4A(1220)
        MAKLIB          2A(67)
        SCAN.REL        7B(572)
        HELPER.REL      5(41)

One of the following software  versions  (or  later)  is  required  to
install DBCS, the host language DML interface for DBMS-20 version 6.

        Name            Version
        ----            -------
        LIBOL.REL       12B(674)
        C74LIB.REL      12B(674)
        FORLIB.REL      5A(721)



1.3 Related Software

The following software versions (or later) are required as appropriate
for utilizing the host language DML interface for DBMS-20 version 6.

        Name            Version
        ----            -------
        COBOL-20        12B(1131)       COBOL-68 Compiler
        CBL74-20        12B(1131)       COBOL-74 Compiler
        IQL-20          3.3(405)        INTERACTIVE Query Language

        Note:  Edit levels are as of the date of publication  of  this
article.



                                   3
                               DBMS6.DOC


1.4 Maintenance Policy

After the release of DBMS-20 version 6, DBMS-20  version  5A  will  be
supported concurrently for a period of six months.  During that period
edits will be produced concurrently for DBMS-20 version 5A and DBMS-20
version  6.   Subsequently,  support  for  DBMS-20  version 5A will be
discontinued and edits will be issued  only  for  DBMS-20  version  6.
During  that  six-month  period  we will be maintaining the sources of
both versions of the DBMS-20  software,  but  thereafter  we  will  be
maintaining only from the sources of DBMS-20 version 6.



2.0  EXTERNAL CHANGES

                       SUMMARY OF MODIFIED SYNTAX


2.1   MODIFIED DDL SYNTAX

This section contains a summary  of  each  piece  of  Version  6  Data
Definition  Language  syntax  that  is  different  from Version 5.  No
Version 5 syntax has been removed for Version 6;  the Version 6 syntax
is  all either a replacement for obsolete syntax, or it is totally new
syntax.

------------------------------------------------------------

IMAGES IN ORDER BY TRANSACTION .

This statement replaces the statement IMAGES NOT IN ORDER BY  COMMAND.
The  meanings  are the same, and the old form is still valid.  The old
syntax is still valid, but will not be recognized in future versions.

------------------------------------------------------------

       {   NO       }
BACKUP { ||BEFORE|| } IMAGES .
       { ||AFTER || }

The ENCL BACKUP statement is new.  Version 5 and Version 6 both  offer
a  BACKUP statement within each Area Entry;  the meaning of the syntax
has not changed.  Note however, that the default  of  this  Version  6
ENCL statement is BACKUP BEFORE IMAGES.

------------------------------------------------------------

NOTE JOURNAL.

This is a new option to the NOTE statement.  When  this  statement  is
included  in  the  ENCL, a note is printed on the user's terminal when
the run unit opens the journal.   This  note  was  always  printed  in


                                   4
                               DBMS6.DOC


Version 5, but in Version 6 it is not the default.

------------------------------------------------------------

ACCESS CONTROL IS VIA { PAGE } LOCKS
                      { AREA }

        [ SIZE IS integer LOCKS ] .

This is a new statement in Version 6.  The default is  ACCESS  CONTROL
IS VIA AREA LOCKS.

------------------------------------------------------------

ASSIGN JOURNAL TO filespec
        [ SIZE IS AT MOST integer1 TRANSACTIONS ]

        [ BUFFER COUNT IS { integer2              } ] .
                          { data-name%pseudonym   }

The ASSIGN JOURNAL syntax replaces the JOURNAL NAME  IS  syntax.   The
meaning  has  not changed.  The BUFFER COUNT clause is new, and allows
you to increase the number of buffers used  to  hold  journal  images.
The  old  syntax  is still valid, but will not be recognized in future
versions.

------------------------------------------------------------

                { integer               }
BUFFER COUNT IS { data-name[%pseudonym] }
                { AT area               }

This is a clause of the ASSIGN AREA statement;  the  data-name  option
and  the  AT  area  option  are new in Version 6.  Using the data-name
option, you can modify the buffer count of an area at run  time.   The
other  new  option,  AT  area,  allows  you  to have an area share the
buffers of another area.

------------------------------------------------------------

CALC CHAIN COUNT IS integer RECORDS-PER-PAGE

This clause replaces the Version 5 CALC RPP clause.  The old  form  is
still valid, but will be illegal in future releases.

------------------------------------------------------------

RANGE OF record IS PAGE integer1 TO PAGE integer2
    [        {integer3 {RECORDS-PER-PAGE}          }]
    [        {         {RPP             }          }]
    [AT MOST {1 RECORD PER integer4 PAGES          }]      ... .
    [        {1 SET OCCURRENCE PER {PAGE          }}]


                                   5
                               DBMS6.DOC


    [        {                     {integer5 PAGES}}]

The Version 5 RANGE clause, which controls the page range of a  record
within an area, has not changed.  Version 6 adds the AT MOST option to
this clause, allowing you to control record placement in more ways.

------------------------------------------------------------

ASSIGN INDEX FOR set-name
    [ FIRST PAGE IS integer1 LAST PAGE IS integer2 ]
    [ INDEX RECORD SIZE IS integer3 KEYS ]
    [ CHAIN SIZE IS integer4 RECORDS ] .

This new entry, called the ENCL Set Entry, allows you to assign  index
records to a specific page range, much the same way as you assign data
records.  It also allows you to customize the structure of the  index.
The  defaults of all Set Entry elements yield the same index placement
and structure as Version 5.

------------------------------------------------------------

SCHEMA NAME IS schema-name 
    [ PRIVACY LOCK FOR ADMINISTRATION IS password ] .

The new PRIVACY LOCK FOR ADMINISTRATION clause allows you to define  a
skeleton  key for this schema.  This "administrative password" is used
only in the utility programs DBINFO and DBMEND.  You gain a measure of
security  by  defining  this password here, because when it is defined
DBMEND's ABORT command cannot be executed without it.

------------------------------------------------------------

TRANSACTION NAME IS transaction-name 

    { USAGE-MODE IS {UPDATE   } [FOR area1[,area2,...]] }
                    {RETRIEVAL}

    [ CLUSTER integer PAGES [FOR area1[,area2,...]] ]

             {  NO      }
    [ BACKUP {||BEFORE||} IMAGES ] .
             {||AFTER ||}

This statement defines transactions.  Among the things you can  define
about  a  transaction  are  the  usage-mode required for any area, the
number of pages to be read in each cluster, and the  type  of  journal
images to record during this transaction.

------------------------------------------------------------

TRANSACTION SECTION.
    { COPY ALL TRANSACTIONS                           } 


                                   6
                               DBMS6.DOC


    { COPY TRANSACTION transaction1[,transaction2...] } .

This  Sub-Schema  DDL  statement  controls  which   transactions   are
available through each sub-schema.


2.2   MODIFIED DML SYNTAX

This section contains a summary  of  each  piece  of  Version  6  Data
Manipulation  Language  syntax  that  is different from Version 5.  No
Version 5 syntax has been removed from the DML;  the Version 6  syntax
is all either new statements or new options for old statements.

------------------------------------------------------------

FIND record-name VIA CURRENT OF set-name USING data-name1[,data-name2...].

FIND rse6 allows you to use the index of a set to perform a FIND.   If
the set is not sorted, or if the data names are not the sort key, this
operation searches the set  sequentially  to  find  a  record  with  a
desired data value.

------------------------------------------------------------

                     [ ALL       ]
DELETE [record-name] [ ONLY      ] MEMBERS [ FROM set-name1[,set-name2...].
                     [ SELECTIVE ]

The MEMBERS clause can be added to any form of the  DELETE  statement.
The  effect  is that the members of the named or implied sets are each
in turn the object of the DELETE operation, rather  than  the  current
record.   When  the MEMBERS clause is present, the current-of-run-unit
record is never deleted.  If you delete the members from a sorted set,
the index structure is deleted along with them.

------------------------------------------------------------

OPEN TRANSACTION transaction-name .

CLOSE TRANSACTION [ transaction-name ] .

DELETE TRANSACTION [ transaction-name ] .

These  three  DML  statements  replace  JSTRAN,  JETRAN,  and  JBTRAN,
respectively.    The   named   transaction  must  be  defined  in  the
sub-schema.  When you OPEN a transaction, the parameters of its schema
definition  are  invoked  for  the  duration  of the transaction.  The
JxTRAN subroutine calls are still recognized in Version 6, but will be
illegal  in  future releases.  In Version 6, the JxTRAN subroutines do
substantially the same thing as  their  OPEN/CLOSE/DELETE  TRANSACTION
counterparts do.



                                     7
                                 DBMS6.DOC


------------------------------------------------------------

ENTER MACRO SETDB USING sub-schema-name[,lock-name ] .

CALL SETDB ( sub-schema-name[,lock-name] )

The new, optional lock-name argument to SETDB allows you to change the
lock name that is used when area locks are obtained at the outset of a
transaction.  This option should be used with caution.

------------------------------------------------------------

ENTER MACRO CALCHN USING record-name .

CALL CALCHN (record-name)

This subroutine performs the hashing function for  CALC  records,  and
returns  the  target  page  of  a  given record into the DATA-BASE-KEY
register of SYSCOM.  You pass  the  name  of  a  CALC  record  as  the
record-name;  the UWA must contain the CALC key.  This subroutine does
not store the CALC record, and it does not  require  an  update  usage
mode.

------------------------------------------------------------

ENTER MACRO STATS [ USING data-name1 [,data-name2] ] .

CALL STATS [ (data-name1 [,data-name2] ) ]

If data-name1 is included, STATS writes  its  output  to  the  52-word
storage  location  identified by the data-name.  If the value found in
the variable named by data-name2 is -1, STATS resets all its  internal
registers  to  zero  after  the  call,  so that the next call to STATS
reports statistics for the interval between calls.

------------------------------------------------------------

ENTER MACRO GETUID USING data-name1 [,data-name2] .

CALL GETUID (data-name1[,data-name2])

The GETUID subroutine returns  the  Run  Unit-ID  to  data-name1.   If
data-name2 is given, GETUID returns the transaction index there.

------------------------------------------------------------









                                     8
                                 DBMS6.DOC


2.2   NEW UTILITIES COMMANDS

The following is a brief list of commands that have  been  changed  in
the utilities.

STATS
DBMEND
    DELETE TRANSACTION
    Boundary Specifications in START and END
    Default File Specifications for ABSTRACT and
    BUILD
    Universal Password in the SCHEMA Command
    CLOSE JOURNAL and CLOSE RUN-UNIT
    AID, NOAID, and MERGE AID
    PRESERVE and NOPRESERVE
    ABORT
    Commands Removed for Version 6
DBINFO CHANGES
    Default File Specifications for DISPLAY
    DISPLAY KEY
    DISPLAY CALC
    DISPLAY USAGE:set-name
    DISPLAY DATA:set-name
    DISPLAY FREE:integer
    RECORD-TYPE and NORECORD-TYPE
    ACCUMULATE and NOACCUMULATE
    TMP/NOTMP and AID/NOAID
    STAR and NOSTAR
    STATS and NOSTATS

























                                     9
                                 DBMS6.DOC


3.0  KNOWN BUGS AND DEFICIENCIES

                KNOWN INCOMPATIBILITIES BETWEEN V.5 AND V.6

This appendix  lists  the  incompatibilities  between  Version  5  and
Version  6.  These incompatibilities do not make a Version 5 data base
invalid;  rather they show that Version 6 does  something  differently
from Version 5.

Note that your  applications  and  schemas  must  be  recompiled  with
Version  6  software.   Programs must be recompiled because SYSCOM has
been expanded.  Schemas must be recompiled because the internal format
of the .SCH file records has changed.  Also, Version 5 journals cannot
be processed by Version 6 DBMEND, because of page compression.

The data base itself is upward compatible.  You do not need to  unload
and reload your data just to meet Version 6 requirements.

Version 6 is incompatible with Version 5 in the following ways:

1.  The registers DATA-BASE-KEY and  ERROR-DATA  have  been  added  to
SYSCOM.

2.  The format of the internal schema file (.SCH file) has changed  to
support transaction information and index structure information.

3.  Users of DBMS-20 do not need ENQ/DEQ or IPCF privileges.

4.  No lock is kept on the current-of-run-unit record.  In Version  5,
the  CRU  lock  prevented  simultaneous  updaters  from  deleting your
current record.

5.  NOTE JOURNAL has been added to  the  ENCL.   Run  units  will  not
receive  the  journal  initialization  message  unless  this statement
appears in the schema.

6.  ASSIGN JOURNAL replaces JOURNAL NAME IS.  The latter will  not  be
recognized in future versions.

7.  CALC CHAIN COUNT replaces  CALC  RPP.   The  latter  will  not  be
recognized in future versions.

8.  IMAGES BY TRANSACTION replaces IMAGES NOT BY COMMAND.  The  latter
will not be recognized in future versions.

9.  There will no longer be an image-queue associated with the journal
buffer.   This may mean that some applications will suffer performance
degradation unless more buffers are declared for an area.

10.  Records stored VIA a set in which they are ORDER  FIRST  will  be
located  near  the  record  which used to be first (and now is second)
rather than close to the owner.


                                    10
                                 DBMS6.DOC


11.  In Version 6, the first buoy  record  of  a  sorted  set  is  not
created when the owner record is stored.  It is created when the first
member is stored, and it is created in the  same  page  range  as  the
member.

12.  Version 6 gives you more latitude about issuing  a  COBOL  RETAIN
statement.  In Version 6, you are only restricted to the extent that a
RETAIN  statement  cannot  be  active  when  a   simultaneous   update
transaction  is  opened.   You  may issue one during the course of the
transaction.

13.  All buffers are flushed at the end of all  transactions,  whether
defined  or  default.  If you were running EXCLUSIVE UPDATE in Version
5, buffers were not flushed until more space was required.   This  can
cause  performance degradation for EXCLUSIVE UPDATE programs, but will
ensure greater data integrity.

14.  The transaction index is maintained by DBCS.  Although  calls  to
JSTRAN  can  still  include  a  transaction  index, this number is not
recorded in the journal.



4.0  INSTALLATION INSTRUCTIONS


Before installing DBMS  be  sure  to  read  DBMSV6.BWR  file  and  the
comments  in  the  beginning  of  DBMS20.CTL  file.   See  the DBMS-20
Installation Guide for complete installation instructions.



5.0  INTERNAL CHANGES

This is a major engineering release of this product.   As  such  there
have  been  major  code  additions,  revisions  and reorganizations in
virtually all parts of the product and  the  utilities.   No  detailed
list of change is given.




6.0  SUGGESTIONS

DIGITAL  recommends  the  USER  read  and  understand   the   supplied
documentation  thoroughly  before  attempting  to  install and use the
supplied software.
DIGITAL strongly recommends the use of  the  journalling  facility  to
preserve Data-base integrity.





                                    11
                                 DBMS6.DOC


                            [END OF DBMS6.DOC]





















































                                    12