Introducing DB-123

                                                (c) Thomas Schneider, all rights reserved

Chapter 1: Introduction   

During the past decades, a couple of generalized Database Management Systems have been developed by companies like IBM and other vendors.
One of the inherent problems has always been that those systems have never been designed to be upwards compatible.

Therefore, a user who started years ago with Indexed files (called VSAM KSDS in the IBM context), may well have converted those data-structures  to DL/I later, and to DB2 nowadays. 
In reality, many companies still use all three aproaches:

Usually, those Database Management Systems have their own utilities and interfaces designed for ease of use in the actual application. Nevertheless, all of them use their proprietary language. No tools have been provided to upgrade from one system to the other automatically, and each migration from one system to the other is a major effort, and thus costing a lot of money.

This has also been the major reason that so many companies still use ancient structures like indexed files or DL/I type hierarchic databases. In addition, current relational database systems do have an inherent lack to support such easy concepts like hierarchies or internal dependencies like repeated items in a COBOL OCCURS clause.

DB-123  has been developed to fill this gap.

DB-123 actually supports all 3 generations of database systems (i.e. flat or indexed files, hierarchic databases, and relational databases).
In addition,
DB-123 provides means to convert both the DATA and the PROGRAMS using this data from each form to the other. 

The basic concept of DB-123 is a central Data Dictionary, describing the structure and format of your data, as well as the meta-data needed to use the releations between different data entities. 

The major trick is that the already existing definitions of the data-structure, as available in COPY books of structured languages like COBOL or PL/I, are used in turn. Thus you are avoiding a hell of re-typing what you already have, and potential errors are minimized.

Using the DBDICT Database Dictionary Definition tool, you are defining your logical and/or physical Data Structures once forever. This definition is then used by the DB-123 Program generator to generate conversion programs, access routines, host-variables, etc.

A set of powerful functions of DB-123 do allow you to perform the folllowing tasks:

A couple of COBOL Preprocessors are available as part of DB-123 for the support of your migration effort as well:


DB-123 has been developed in the IBM REXX language (using compiled Rexx), and uses Rexx2Nrx, the classic Rexxx to NetRexx converter, to port itself to a Java environment..

Look at for  DOWNLOAD  and some more detailed examples and documentation of Rexx2Nrx.

Version 14..00 of DB-123 has been released start of 2004, and has been continually used by DONAULAND for their migration from IBM VSE COBOL II  (with DL/I databases) to MICROFOCUS COBOL (with a DB2 database design).

 DONAULAND is an austrian  bookclub (actually a daughter company of BERTELSMANN, Germany).

DB-123 is available in compressed/compiled Rexx, or in Java byte-code. A source-code licence and consulting services are available on request as well.

 For any comments, problems, or ideas for possible improvements please send a mail to

The design principles of the Data Dictionary System DBDICT and the  DB-123 Program Generator will be  presented at the 

2004 Rexx Language associates meeting start of May 2004 in Boeblingen, Germany.

Look at for the abstracts and presentations of this event.

Vienna, 17.02.2004, updated 20.08.2010
Thomas Schneider