Showing posts with label mainframe database. Show all posts
Showing posts with label mainframe database. Show all posts

Saturday, 17 August 2013

Db2 History: System R, SQL, MVS, z/OS, and Db2 UDB


Db2 history timeline from IBM relational research to DB2 for MVS and Db2 for z OS
Db2 grew from SQL research into mainframe production data.

A COBOL program that runs EXEC SQL today is using ideas IBM researchers worked on before DB2 had a product name. The history matters because many current Db2 for z/OS habits still come from that path: static SQL, precompile, DBRMs, packages, plans, catalog metadata, and cost-based access paths.

This article keeps the timeline practical. It is not a museum tour. It explains how Db2 moved from relational research to the mainframe database system used by batch jobs, CICS transactions, IMS programs, and reporting workloads.

Db2 history at a glance

Period Milestone Why mainframe developers still care
1970s IBM relational database research, including System R and SQL work The SQL model used by COBOL programs, SPUFI, QMF, and application tools traces back to this work.
1981 SQL/DS for VM and VSE IBM had a commercial relational database before DB2 for MVS became the mainframe name most developers know.
1983 DB2 for MVS Version 1 announced This is the mainframe line that later became Db2 for z/OS.
1990s DB2 expanded across distributed platforms and used the DB2 Universal Database name Teams began seeing DB2 across mainframe and non-mainframe systems, with different platform behavior under a shared product family.
2000s onward Db2 for z/OS evolved with 64-bit z/OS, data sharing, XML, security, and newer SQL features The mainframe version kept its own operational model: subsystems, buffer pools, packages, plans, utilities, and workload controls.

Relational database research came first

Before DB2, IBM research work on the relational model changed how application data could be described. Instead of making every program navigate physical record chains, the relational approach let developers ask for rows and columns through SQL.

That sounds ordinary now, but it was a major change for mainframe teams used to hierarchical and network-style access. A program could ask for customer rows that match account status, branch number, and date criteria without coding every physical navigation step.

System R helped prove SQL could work

System R was an IBM research project that tested relational database ideas and SQL. It influenced later commercial systems because it showed that SQL did not have to be only a research language; it could be compiled, planned, and run with usable performance.

The cost-based access path idea is especially important for Db2 developers. When a COBOL program uses static SQL, Db2 can evaluate access paths during bind. That is why catalog statistics, indexes, and bind output matter so much for production performance.

SQL/DS came before DB2 for MVS

IBM's SQL/DS product ran on VM and VSE environments before DB2 for MVS became the better-known mainframe relational database. SQL/DS matters in the history because it shows that IBM relational database work was not a single product jump from research directly to DB2 for z/OS.

Many older sites had mixed platform histories. A team might have VM/VSE SQL/DS background, MVS DB2 workloads, and later distributed DB2 systems that shared SQL concepts but differed in operations, utilities, and tuning.

DB2 for MVS arrived in 1983

DB2 for MVS Version 1 gave the MVS mainframe a relational database product built for enterprise workloads. The name DB2 marked a move from older data access styles toward SQL-based relational processing on the mainframe.

For application programmers, this created the work pattern that still appears in many shops: write embedded SQL in COBOL or PL/I, precompile the source, bind the DBRM, run the program under a plan, and tune access paths when the batch window starts to hurt.

DB2 UDB widened the product family

In the 1990s, IBM used the DB2 Universal Database name across mainframe and distributed products. The phrase "Universal" reflected support for more data types and platforms, including AIX, Windows, OS/2, HP-UX, Solaris, and parallel processing environments.

This is where some confusion starts for learners. DB2 on distributed platforms and Db2 for z/OS share SQL heritage, but the day-to-day administration is not identical. A mainframe developer still has to know about subsystems, buffer pools, table spaces, plans, packages, utilities, and z/OS job control.

Db2 for z/OS kept the mainframe operating model

Modern Db2 for z/OS runs as a major subsystem on z/OS. It works with address spaces, workload controls, buffer pools, logging, utilities, security rules, and data sharing groups. CICS, IMS, batch, and distributed requesters can all reach Db2, but each path has its own operational checks.

The product name is now styled as Db2, but older posts, JCL comments, bind decks, and manuals often say DB2. In practice, mainframe teams still use both spellings in conversation. For current writing, Db2 is the cleaner style; for old job names and historic product names, DB2 may still be accurate.

Why the history helps in daily DB2 work

  • Relational design explains why tables, keys, predicates, and joins are central to application logic.
  • System R explains why the optimizer and access path selection became part of Db2's identity.
  • DB2 for MVS explains why static SQL, DBRMs, packages, and plans remain visible in mainframe build pipelines.
  • DB2 UDB explains why the same product family can behave differently across z/OS and distributed platforms.
  • Db2 for z/OS explains why database work is tied to JCL, security, utilities, and subsystem operations.

Related DB2 topics

After the history, the practical next steps are Db2 Origins of SQL, Db2 Early Vendor Implementations, Db2 Objects, Db2 Binding an Application, and Db2 Optimizer.

For current product positioning, see IBM's Db2 for z/OS product page.

FAQ

Is DB2 the same as Db2?

They refer to the same IBM database family in most mainframe conversations. DB2 is the older styling, while Db2 is IBM's current styling. Historic product names and old JCL comments may still use DB2.

Did Db2 start on z/OS?

No. The relational database work started before z/OS existed. DB2 for MVS was announced in 1983, and the mainframe line later became Db2 for z/OS.

Why does Db2 history matter to COBOL developers?

It explains why embedded SQL programs still use precompile, DBRMs, packages, plans, and bind-time access path choices. Those are not random build steps; they come from Db2's static SQL design.

When you read old DB2 material, map the history back to the job in front of you: subsystem, table space, package, plan, SQLCODE, and access path.

Db2 Early Vendor Implementations: Oracle, Ingres, SQL/DS, and Db2

Relational database timeline from Codd and System R through Oracle, Ingres, SQL/DS, and Db2 for MVS
SQL moved from research into mainframe work.

A COBOL program that opens a Db2 cursor in MVS has a long history behind it. SQL did not arrive as a finished mainframe product on day one. It came through research prototypes, early commercial vendors, competing query languages, and IBM product decisions that turned relational database theory into production software.

This refresh keeps the original history topic but makes it more useful for Mainframe Forum readers. The focus is the route from IBM System R and early vendors to SQL/DS and Db2, with enough context to understand why SQL became the language mainframe developers still use in embedded SQL programs.

Why Early Vendor Implementations Matter

Early relational database products were not only academic milestones. They shaped the SQL syntax, catalog concepts, optimizer behavior, and application patterns that later appeared in Db2 for z/OS and COBOL programs.

For a mainframe developer, the practical point is simple: Db2 was not created in isolation. It grew from a market where SQL, QUEL, minicomputers, mainframes, and vendor timing all mattered.

Timeline of Early Relational Database Work

YearProduct or projectWhy it mattered
1970E. F. Codd relational modelDefined the table-based model that later RDBMS products tried to implement.
1974IBM System RIBM research project that helped prove SQL and relational access could work in real systems.
1979OracleEarly commercial SQL RDBMS that reached customers before IBM's mainframe Db2 product.
1981IBM SQL/DSIBM commercial relational database product for VM and VSE environments.
1983IBM Database 2Db2 was announced for MVS, bringing IBM relational database technology to mainstream mainframe workloads.

IBM System R and the SQL Starting Point

IBM's System R project at San Jose was a research system, not the Db2 product that COBOL teams later used. Its importance came from proving that relational access could handle real database work and that SQL could be used as a higher-level data access language.

That mattered for application programmers. Instead of coding physical navigation through records, a program could ask for rows that matched predicates:

SELECT EMPNO,
       LASTNAME,
       WORKDEPT
  FROM EMP
 WHERE WORKDEPT = :WS-DEPT

The database engine decides the access path. The application states the result. That separation is one reason SQL became a natural fit for business applications on mainframes.

Oracle and the First Commercial SQL Race

Relational Software, Inc., later Oracle Corporation, moved early with a commercial SQL database. Oracle's early product reached the market before IBM's Db2 for MVS product, which gave SQL a commercial life outside IBM research labs.

The main lesson is timing. IBM did much of the research work, but other vendors saw the value of SQL and delivered products while IBM was still turning research into production offerings. Oracle's own database documentation describes SQL as a set-based, declarative interface to an RDBMS, which is the same application idea a COBOL developer sees in embedded SQL.

Ingres and the QUEL Alternative

Ingres came from the University of California, Berkeley. It was another major relational database project, and it originally used QUEL rather than SQL. QUEL had strong technical supporters, but SQL gained more commercial traction and became the standard language developers expected across products.

For Mainframe Forum readers, Ingres explains an easy-to-miss point: SQL was not the only possible relational language. It won because vendors, standards work, tools, and customers moved toward it.

SQL/DS Before Db2 for MVS

Before Db2 became the main name mainframe developers recognized, IBM shipped SQL/DS for VM and VSE environments. SQL/DS gave IBM a commercial relational database product while Db2 for MVS was still coming into view.

This distinction matters when reading older manuals, interview notes, or migration documents. SQL/DS and Db2 are related in history and SQL direction, but they were not the same product in the same operating environment.

Db2 for MVS and Mainframe COBOL Programs

IBM announced Database 2, better known as Db2, for MVS in 1983. For mainframe shops, this placed relational database access next to COBOL, CICS, batch jobs, JCL, and MVS operations.

Once Db2 became part of the mainframe application stack, COBOL programs could use embedded SQL through a precompile, bind, and runtime process:

EXEC SQL
    SELECT LASTNAME,
           WORKDEPT
      INTO :WS-LASTNAME,
           :WS-WORKDEPT
      FROM EMP
     WHERE EMPNO = :WS-EMPNO
END-EXEC.

The source statement looks simple, but the build process is not just a compile. The SQL is extracted into a DBRM, bound into a package or plan, and then run under Db2 control. The related Db2 Packages Guide for COBOL Static SQL covers that path in more detail.

What Changed for Application Design

Relational database products changed the way teams described data access. A program no longer had to hard-code every navigation step through a file or hierarchical database. The SQL statement described rows and columns, while the optimizer chose an access path from indexes, statistics, and predicates.

That shift later affected these everyday Db2 tasks:

  • Writing predicates that match available indexes.
  • Binding and rebinding static SQL after program changes.
  • Reviewing access paths with EXPLAIN.
  • Defining tables, views, indexes, and table spaces as separate database objects.
  • Keeping host variable definitions consistent with Db2 column data types.

Common Confusion in Older Db2 History Notes

Older posts and study notes sometimes compress the history into a single line such as "IBM invented SQL and then Db2 arrived." That is directionally useful but too short for a working explanation.

Confusing statementBetter reading
Db2 was the first relational database.Db2 was IBM's mainframe RDBMS product line; earlier research and vendor products came before it.
Oracle invented SQL.Oracle commercialized SQL early, but SQL came from IBM research work.
Ingres and Db2 were the same kind of system.Both were relational database efforts, but Ingres started outside IBM and used QUEL before SQL became dominant.
SQL/DS and Db2 are interchangeable names.They are historically related IBM relational products, but they served different environments.

How This Connects to Other Db2 Topics

If you are learning Db2 from the application side, this history is useful only when it connects back to daily work. After this article, the next practical topics are Db2 Origins of SQL, Db2 Binding and Rebinding, Db2 Optimizer, and Db2 Objects.

For current product context, see IBM's Db2 for z/OS product page. Oracle's database concepts documentation is also useful for general RDBMS and SQL terminology, and Actian maintains current information for Ingres.

FAQ

Was Db2 the first relational database?

No. Db2 was IBM's mainframe relational database product line, but relational research projects and early vendor products existed before Db2 for MVS reached customers.

Why did SQL win over QUEL?

SQL gained stronger vendor adoption, standards support, tooling, and customer demand. QUEL was technically respected, but SQL became the language most commercial RDBMS products supported.

Why should a COBOL programmer care about early database vendors?

The history explains why embedded SQL, bind packages, optimizers, indexes, and relational tables became normal parts of mainframe application work.

For a COBOL developer, the useful takeaway is not the vendor race by itself. It is that SQL became the shared contract between the program and the database engine.

New In-feed ads