Let's go back in time... three decades ago... back to the wild and woolly 1980s! And watch our favorite DBMS, DB2, grow up over time, with a quick look at the three decade history of DB2 on the mainframe.
First, let’s take a quick look at the release history of DB2 over time as shown in the chart shown as Figure 1. Here we see each version/release of DB2 in its thirty year history, along with its date of general availability. The other two columns, EoM and EoS, are end-of-marketing and end-of-service dates. An EoM date means that IBM will no longer sell that version of DB2 as of that date; EoS means that IBM will no longer officially support that version of DB2 as of that date. When I was able to find these EoM and EoS dates, I included them in the chart.
Figure 1. DB2 Release History
DB2 Version 1 Release 1 was announced on June 7, 1983, and it became generally available on Tuesday, April 2, 1985. I wonder if it was ready on April 1st but not released because of April Fool’s Day? Anyway, DB2 development initially focused on the basics of making a relational DBMS work. Back then the common wisdom was that only hierarchical (e.g. IMS) or CODASYL network (e.g. IDMS) database system could manage production workloads. Indeed, early releases of DB2 were viewed by many as an “information center” DBMS, not for production work, like IMS was. The term “information center” was a popular one in the realm of IT back in the 1980s. It referred to systems that supported IT (rather than business). DB2 Version 1 Release 2 was announced on February 4, 1986 and was released for general availability a month later on March 7, 1986. Can you imagine waiting only a month between announcement and delivery for a new release of DB2 these days?!?! But that is how it happened back then. Same thing for Version 1 Release 3, which was announced on May 19, 1987 and became GA on June 26, 1987. DB2 V1R3 saw the introduction of DATE data types. You might notice that IBM delivered “releases” of DB2 back in the 1980s, whereas today (and ever since V3) there have only been versions. Versions are major changes, whereas releases are not quite as significant as a version. DB2 Version 2 Release 1 was announced in April 1988 and delivered in September 1988. Here we start to see the gap widening between announcement and delivery. V2R1 was a significant release in the history of DB2, a bellwether of sorts for when DB2 began to be viewed as capable of supporting mission critical, transaction processing workloads. Not only did V2R1 provide many performance enhancements but it also signaled the introduction of declarative Referential Integrity (RI) constraints.
No sooner than V2R1 became GA than IBM announced DB2 Version 2 Release 2 on October 4, 1988. But it was not until a year later that it became generally available on September 23, 1988. DB2 V2R2 again bolstered performance in many ways. It also saw the introduction of distributed database support (private protocol) across MVS systems. Announced on September 5, 1990, DB2 Version 2 Release 3 became generally available on October 25, 1991. Two very significant features were added in V2R3: segmented table spaces and packages. Segmented table spaces quickly became a de facto standard due to their superior handling of free space and ability to separate data from multiple tables. Packages made DB2 application programs easier to support and today have become the standard mechanism for application program support. DB2 V2R3 is also the version that beefed up distributed support with Distributed Relational Database Architecture (DRDA).
Next up was DB2 Version 3, announced in November 1993 and GA in December 1993. Now it may look like things sped up again here, but not really. This is when the early support program for DB2 started. Early support was announced in March 1993 and delivered to customers in June 1993. DB2 V3 greatly expanded the number of buffer pool options available (from 5 pools to 80), and many advances were made for DB2 to take better advantage of the System 390 environment, including support for hardware assisted compression and hiperpools. It was also DB2 V3 that introduced I/O parallelism for the first time. DB2 Version 4 signaled another significant milestone in the history of DB2. It was highlighted by the introduction of Type 2 indexes, which removed the need to lock index pages (or subpages, which were now obsolete). Prior to DB2 V4, index locking was a particularly thorny performance problem that vexed many shops. Data Sharing made its debut in V4, too, and with it, DB2 achieved new heights of scalability and availability allowing users to upgrade without an outage and to add new subsystems to a group “on the fly.” Stored procedures were also introduced in DB2 V4, as was CP parallelism. In June 1997 DB2 Version 5 became generally available. It was the first DB2 version to be referred to as DB2 for OS/390 (previously it was DB2 for MVS). Not as significant as V4, we see the trend of even-numbered releases being bigger and more significant than odd-numbered releases (of course, that is just my opinion). DB2 V5 was touted by IBM as the e-business and BI version. It included Sysplex parallelism, prepared statement caching, reoptimization, online REORG, and conformance to the SQL-92 standard. DB2 Version 6 brings us to 1999 and the introduction of the Universal Database term to the DB2 moniker. The “official” name of the product became DB2 Universal Database for OS/390. And the Release Guide swelled to over 600 pages! Six categories of improvements were introduced with V6 including object-relational extensions, network computing, performance and availability, capacity improvements, data sharing enhancements, and user productivity. The biggest of the new features were SQLJ support, inline statistics, triggers, large objects (LOBs), user-defined functions, and user-defined distinct types. DB2 Version 6 is also somewhat unique in the annals of DB2 history in that there was this “thing” typically referred to as the V6 refresh. It added functionality to DB2 without there being a new release or version. The new functionality in the refresh included SAVEPOINTs, identity columns, declared temporary tables, and performance enhancements (including star join). March 2001 brings us to DB2 Version 7, another version of DB2 with “smaller” set of new features. Developed and released around the time of the Year 2000 (Y2K) hubbub, it offered improved utilities and some nice new SQL functionality including scrollable cursors, limited FETCH, and row expressions. Unicode support was also introduced in DB2 V7.
DB2 Version 8 followed, but not immediately. IBM took advantage of Y2K and the general desire of shops to avoid change during this period to take its time and deliver the most significant and feature-laden version of DB2 ever. V8 had more new lines of code than DB2 V1R1 had total lines of code! Some of the new features added for DB2 V8 included online schema changes, data partitioned secondary indexes (DPSIs), broader usage of Unicode, long object names, security labels, sequence objects, dynamic scrollable cursors, and much more.
With DB2 9 for z/OS (March 6, 2007) we drop the “V” from the name. Is that in response to Oracle’s naming conventions? Well, we do add a space between the DB2 and the version number because we don’t want to talk about DB-twenty-nine! A lot of great new functionality comes with DB2 9 including additional database definition on demand capabilities (the new name for online schema changes), binary data types, and a lot of new SQL capabilities including OLAP functions and EXCEPT/INTERSECT. But probably the biggest new feature is pureXML, which allows you to store DB2 data as native XML. The XML is stored natively as a new data type that can be searched and analyzed without the need to reformat it. The approach is novel in that it will support native XML, basically enabling dual storage engines.
October 22, 2010 saw the general availability of DB2 10 for z/OS and we are now fully on a three year release cycle for new versions of DB2. This is the version that most users are working on today (but DB2 11 is gaining ground). DB2 10 introduced useful new features like temporal data support and time-travel queries, safe query optimization, improved access path hints, access to currently committed data and new TIMESTAMP precision and time zones.
And that brings us to the latest and greatest version of DB2 – DB2 11 for z/OS – which became GA on October 25, 2013. This version offered a lot of new capabilities, sort of lying to rest the notion that odd-numbered versions are less exciting. New features include transparent archiving, global variables, improved SQL PL, APREUSE(WARN), significant utility improvements, DROP COLUMN support and the ability to leverage JSON data.
That was three years ago, so DB2 12 is likely imminent – probably this year! It is already in use by ESP customers and I’m sure as the year (2016) progresses we’ll see additional news and information about this new version of DB2.
I worked with DB2 way back in its Version 1 days, and I’ve enjoyed watching DB2 grow over its first 3 decades. Of course, this article did not cover every new feature and capability of each version and release of DB2, just the highlights. I mean, IBM publishes a several hundred page Release Guide for each new version, so we can only cover so much here!
Perhaps this journey back through time will help you to remember when you jumped on board with DB2 and relational database technology. I am happy to have been associated with DB2 for its first 30+ years and I look forward to many more years of working with DB2 …
Great historical article! Craig I remember when v1.2 can out - that was a lifetime ago.