Jump to content

ADABAS

From Alfawiki
Adabas
Company typeProprietary software
IndustryDatabase management system software
Founded1971
FounderSoftware AG
Headquarters
Germany
ProductsAdabas database system, Natural programming language
ParentSoftware AG

Adabas, an acronym for "adaptable database system," is a database solution created by Software AG specifically for IBM mainframe environments. Initially introduced in 1971 as a non-relational database, Adabas has since broadened its compatibility to include operating systems such as Linux, Unix, and Windows.

This system allows multiple data relationships to be stored within a single table structure.

History

First launched by Software AG in 1971 for IBM mainframes operating under DOS/360, OS/MFT, or OS/MVT, Adabas has evolved to support additional enterprise platforms like BS2000, z/VSE, z/OS, as well as Unix, Linux, and Microsoft Windows. It is frequently utilized alongside Software AG's 4GL programming language, Natural, for application development purposes. In 2016, Software AG reaffirmed its commitment to maintain support for both Adabas and Natural well into the mid-21st century and beyond.

Adabas ranks among the top three inverted list database management systems, together with Computer Corporation of America’s Model 204 and ADR’s Datacom/DB.

4GL support

Following the 1979 release of Natural, the adoption of Adabas databases significantly increased. By 1990, the statistical software package SAS had integrated support for Adabas.

Non-relational

IBM highlighted in a 2015 white paper that applications built on pre-relational databases like Adabas are no longer prevalent and do not conform to current IT standards. Nonetheless, Adabas can be architected to fit the relational model framework. Various tools and services facilitate converting Adabas databases into relational formats, including migrating applications written in 4GL to contemporary programming languages and modifying codebases for direct interaction with relational databases. However, these types of migrations often involve substantial expenses.

Hardware zIIP boost

IBM's specialized processors known as zIIP (System z Integrated Information Processor) enable real-time SQL queries directly on Adabas data—even when it remains in its native non-relational format.

Adabas data model

Adabas (Adaptable Data Base System) functions as an inverted list database characterized by the following attributes:

  • Data is structured into tables referred to as "files" and organized into rows called "records."
  • Records consist of various components labeled as "fields" (columns).
  • It does not possess a built-in SQL engine; SQL connectivity was introduced through Software AG's acquisition of CONNX in 2004, enabling ODBC, JDBC, and OLE DB interfaces and allowing SQL access via COBOL programs.
  • Searches can be performed on both indexed and non-indexed fields.
  • Referential integrity is not enforced inherently; parent-child relationships must be maintained through application logic.
  • Supports denormalized data structures via repeating groups ("periodic groups") and multi-value fields.

Adabas is widely implemented in scenarios requiring high-volume data processing and intensive online analytical processing (OLAP) transactions.

Typically, access to Adabas occurs through Natural modules using commands such as READ, FIND, and HISTOGRAM, which internally translate into file operations like open and close. Direct interaction with Adabas data is also feasible.

Example of Natural program running against Adabas

<syntaxhighlight lang="cobolfree"> FIND EMPLOYEE WITH NAME = 'JONES' OR = 'BAKER'

AND CITY = 'BOSTON' THRU 'NEW YORK'
AND CITY NE 'CHAPEL HILL'
SORTED BY NAME
WHERE SALARY  < 28000
 DISPLAY NAME FIRST-NAME CITY SALARY

END-FIND END </syntaxhighlight>

In this example, the search conditions specified in the WITH clause are executed by Adabas itself, whereas the filtering defined by the WHERE clause is handled within Natural.

Sample output produced by the program: <syntaxhighlight lang="output"> NAME FIRST-NAME CITY SALARY


BAKER PAULINE DERBY 4450 JONES MARTHA KALAMAZOO 21000 JONES KEVIN DERBY 7000 </syntaxhighlight>

Natural (4GL)

Natural is a proprietary fourth-generation programming language that was introduced following the initial release of Adabas in 1971.

Natural programs can be executed either interpretively or as compiled entities, with the compiled form providing enhanced performance and improved operating system integration.

Over time, Natural transitioned from competing primarily with COBOL to being regarded alongside Java for developing services within SOA frameworks.

About Natural

Natural features an integrated screen-oriented editor and is composed of two primary elements: the system and the language.

The system facilitates interaction between users and the processing environment, whereas the language itself is designed to be structured and less procedural compared to conventional programming languages.

Natural objects—such as programs, maps, and data areas—are organized within libraries that function similarly to directories. Each object identifier can be up to 8 characters long, and all objects within a single library must have unique names regardless of their type.

The language supports both interactive (online) and batch processing modes; batch programs can utilize up to 32 work files and generate as many as 32 reports. Additionally, an interactive debugger is available for stepping through code and examining variable values.

Natural is offered on multiple platforms including z/OS, z/VSE, BS2000/OS, Linux, Unix, and Windows.

Language features

Besides native support for Adabas files, Natural also interfaces with databases such as Oracle, DB2, among others.

Example code snippet: <syntaxhighlight lang="cobolfree"> DEFINE DATA LOCAL 01 EMPLOYEES VIEW OF EMPLOYEES

 02 SALARY (1)                                       

END-DEFINE READ EMPLOYEES BY NAME

 AT END OF DATA                                      
   DISPLAY                                           
     MIN (EMPLOYEES.SALARY(1)) (EM=ZZZ,ZZZ,ZZ9)        
     AVER(EMPLOYEES.SALARY(1)) (EM=ZZZ,ZZZ,ZZ9)        
     MAX (EMPLOYEES.SALARY(1)) (EM=ZZZ,ZZZ,ZZ9)        
 END-ENDDATA                                         

END-READ END </syntaxhighlight> Resulting output:

Page      1                                                  18-08-22  16:42:22
                                                                               
  ANNUAL      ANNUAL      ANNUAL                                               
  SALARY      SALARY      SALARY                                               
----------- ----------- -----------                                            
                                                                               
          0     240,976   6,380,000                                            

Natural enforces strong typing with clearly defined variable types including:

  • Alphanumeric
  • Numeric Zoned decimal supporting up to 27 digits with 7 decimal places
  • Packed Decimal (with identical limits as Numeric)
  • Integer (available in 1, 2, or 4 bytes)
  • Date
  • Time (which incorporates date information)
  • Logical (Boolean True/False)
  • Binary
  • Control variable analogous to CICS map attributes
  • Floating Point (offered in 4 or 8 bytes)

The system file

The system file is a dedicated Adabas file utilized exclusively by Natural, containing the following elements:

  • Natural programs available both as source code and compiled versions, arranged within libraries;
  • File Definition Modules/Data Definition Modules (DDM), which define fields in Adabas or other compatible databases and userviews;
  • Error messages specific to Natural;
  • Help documentation texts.

On mainframe environments, Natural also saves programs in VSAM files, while on Windows and various Unix systems, it relies on the native file system.

Programs

Natural object names consist of up to eight characters and must begin with a letter.

The Natural program editor permits source lines up to 72 characters in length, each assigned a four-digit line number generated during program creation. These line numbers play a role in both the compilation process and editing functions.

Comments can be included in two ways:

  • Entire lines starting with "*" or "**" are treated as comments;
  • Inline comments initiated by "/*", where everything following these characters on the same line is considered commentary.

For example:

0010 * These two lines (0010 and 0020)  
0020 ** are comments.  
0030 FORMAT LS = 80 /* Comment on this line  
0040 * Note: no space between "/" and "*"  
.  
.  
0200 END  

Programs conclude with either "END" or a period.

A basic Hello World program looks like this:

* Hello World in NATURAL  
WRITE 'Hello World!'  
END

Related products

Typical Natural environments often incorporate supplementary tools such as:

  • Natural Security – provides management of users, libraries, and file-level security;
  • Predict – serves as a dictionary for defining and documenting files, their relationships, and associated programs;
  • Natural Construct – a code generation tool designed for creating Natural applications.

See also

Bibliography

  • Pratt, Philip J.; Adamski, Joseph J. DATABASE SYSTEMS: Management and Design. Boyd & Fraser Publishing Company, 1987.

External links