ADABAS
| Company type | Proprietary software |
|---|---|
| Industry | Database management system software |
| Founded | 1971 |
| Founder | Software AG |
| Headquarters | Germany |
| Products | Adabas database system, Natural programming language |
| Parent | Software 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.