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