[go: nahoru, domu]

Jump to content

IBM Db2: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Line 10: Line 10:
For some years DB2, as a full-function DBMS, was exclusively available on [[IBM mainframe]]s. Later IBM brought DB2 to other platforms, including [[OS/2]], [[Unix|UNIX]] and [[Microsoft Windows|Windows]] servers, then [[Linux]] (including [[Linux on zSeries]]) and [[Personal digital assistant|PDA]]s. This process was mainly undertaken through the 1990s. The inspiration for the mainframe version of DB2's architecture came in part from IBM [[Data Language/1|DL/1]] and IBM [[Information Management System|IMS]], both initially hierarchical and then later network (or [[CODASYL]]) databases. DB2 is also embedded in the [[i5/OS]] operating system for IBM [[System i]] ([[iSeries]], formerly the [[AS/400]]), and versions are available for [[z/VSE]] and [[z/VM]].
For some years DB2, as a full-function DBMS, was exclusively available on [[IBM mainframe]]s. Later IBM brought DB2 to other platforms, including [[OS/2]], [[Unix|UNIX]] and [[Microsoft Windows|Windows]] servers, then [[Linux]] (including [[Linux on zSeries]]) and [[Personal digital assistant|PDA]]s. This process was mainly undertaken through the 1990s. The inspiration for the mainframe version of DB2's architecture came in part from IBM [[Data Language/1|DL/1]] and IBM [[Information Management System|IMS]], both initially hierarchical and then later network (or [[CODASYL]]) databases. DB2 is also embedded in the [[i5/OS]] operating system for IBM [[System i]] ([[iSeries]], formerly the [[AS/400]]), and versions are available for [[z/VSE]] and [[z/VM]].


An earlier version of the code that would become DB2 LUW (Linux, Unix, Windows) was part of an Extended Edition component of [[OS/2]] called Database Manager. IBM extended the functionality of Database Manager a number of times, including the addition of distributed database functionality that allowed shared access to a database in a remote location on a [[LAN]]. Eventually IBM declared that insurmountable complexity existed in the Database Manager code, and took the difficult decision to completely rewrite the software in their Toronto Lab. The new version of Database Manager, called DB2 like its mainframe parent, ran on the OS/2 and RS/6000 platforms, was called DB2/2 and DB2/6000 respectively. Other versions of DB2, with different code bases, followed the same '/' naming convention and became DB2/400 (for the AS/400), DB2/VSE (for the DOS/VSE environment) and DB2/VM (for the VM operating system). IBM lawyers stopped this handy naming convention from being used and decided that all products needed to be called "product FOR platform" (for example, DB2 for OS/390). The next iteration of the mainframe and the server-based products were named DB2 Universal Database (or DB2 UDB), with the introduction of widepsread confusion over which version (mainframe or server) of the DBMS was being referred to. At this point, the mainframe version of DB2 and the server version of DB2 were coded in entirely different languages (PL/S for the mainframe and C++ for the server), but shared very similar functionality and used a common architecture for SQL optimization: the Starburst Optimizer.
An earlier version of the code that would become DB2 LUW (Linux, Unix, Windows) was part of an Extended Edition component of [[OS/2]] called Database Manager. IBM extended the functionality of Database Manager a number of times, including the addition of distributed database functionality that allowed shared access to a database in a remote location on a [[LAN]]. Eventually IBM declared that insurmountable complexity existed in the Database Manager code, and took the difficult decision to completely rewrite the software in their Toronto Lab. The new version of Database Manager, called DB2 like its mainframe parent, ran on the OS/2 and RS/6000 platforms, was called DB2/2 and DB2/6000 respectively. Other versions of DB2, with different code bases, followed the same '/' naming convention and became DB2/400 (for the AS/400), DB2/VSE (for the DOS/VSE environment) and DB2/VM (for the VM operating system). IBM lawyers stopped this handy naming convention from being used and decided that all products needed to be called "product FOR platform" (for example, DB2 for OS/390). The next iteration of the mainframe and the server-based products were named DB2 Universal Database (or DB2 UDB), with the introduction of widespread confusion over which version (mainframe or server) of the DBMS was being referred to. At this point, the mainframe version of DB2 and the server version of DB2 were coded in entirely different languages (PL/S for the mainframe and C++ for the server), but shared very similar functionality and used a common architecture for SQL optimization: the Starburst Optimizer.


Over the years DB2 has both exploited and driven numerous hardware enhancements, particularly on IBM [[System z]] with such features as [[Parallel Sysplex]] data sharing. In fact, DB2 UDB Version 8 for [[z/OS]] now requires a [[64-bit]] system and cannot run on earlier processors, and DB2 for z/OS maintains certain unique software differences in order to serve its sophisticated customers. Although the ultimate expression of software-hardware co-evolution is the IBM mainframe, to some extent that phenomenon occurs on other platforms as well, as IBM's software engineers collaborate with their hardware counterparts.
Over the years DB2 has both exploited and driven numerous hardware enhancements, particularly on IBM [[System z]] with such features as [[Parallel Sysplex]] data sharing. In fact, DB2 UDB Version 8 for [[z/OS]] now requires a [[64-bit]] system and cannot run on earlier processors, and DB2 for z/OS maintains certain unique software differences in order to serve its sophisticated customers. Although the ultimate expression of software-hardware co-evolution is the IBM mainframe, to some extent that phenomenon occurs on other platforms as well, as IBM's software engineers collaborate with their hardware counterparts.

Revision as of 23:09, 23 March 2008

DB2 is one of IBM's lines of relational database management system (or, as IBM now calls it, data server) software products within IBM's broader Information Management Software line. Although there are different "editions" and "versions" of DB2 which run on devices ranging from handhelds to mainframes, most often DB2 refers to DB2 Enterprise Server Edition or the top-of-the-line DB2 Data Warehouse Edition (DB2 DWE), which runs on Unix, Windows or Linux servers; or DB2 for z/OS. Beside DB2 there exists Informix, which was acquired by IBM in 2001.

History

DB2 has a long history and was what some consider to be the first database product to use SQL.

The name DB2 was first given to the Database Management System or DBMS in 1983 when IBM released DB2 on its MVS mainframe platform. Prior to this, a similar product was named SQL/DS on the VM mainframe. The earlier System 38 platform also contained a relational DBMS. System Relational, or System R, was a research prototype developed in the 1970s. DB2 has its roots back to the beginning of the seventies when Dr. E.F. Codd, working for IBM, described the theory of relational databases and in June of 1970 published the model for data manipulation. To apply the model Codd needed a relational database language which he named Alpha. At the time IBM didn't believe in the potential of Codd's ideas, leaving the implementation to a group of programmers not under Codd's supervision, who violated several fundamentals of Codd's relational model; the result was Structured English QUEry Language or SEQUEL. IBM soon changed the name to the current acronym, SQL, short for Structured Query Language, because SEQUEL had already been trademarked.

Historically, it is interesting to note that when Informix acquired Illustra and made their database engine an object-SQL DBMS by introducing their Universal Server, both Oracle and IBM followed suit by changing their database engines to be capable of object-relational extensions. Moreover, in 2001, IBM bought Informix and in the following years incorporated Informix technology into the DB2 product suite. Today, DB2 can technically be considered to be an object-SQL DBMS.

For some years DB2, as a full-function DBMS, was exclusively available on IBM mainframes. Later IBM brought DB2 to other platforms, including OS/2, UNIX and Windows servers, then Linux (including Linux on zSeries) and PDAs. This process was mainly undertaken through the 1990s. The inspiration for the mainframe version of DB2's architecture came in part from IBM DL/1 and IBM IMS, both initially hierarchical and then later network (or CODASYL) databases. DB2 is also embedded in the i5/OS operating system for IBM System i (iSeries, formerly the AS/400), and versions are available for z/VSE and z/VM.

An earlier version of the code that would become DB2 LUW (Linux, Unix, Windows) was part of an Extended Edition component of OS/2 called Database Manager. IBM extended the functionality of Database Manager a number of times, including the addition of distributed database functionality that allowed shared access to a database in a remote location on a LAN. Eventually IBM declared that insurmountable complexity existed in the Database Manager code, and took the difficult decision to completely rewrite the software in their Toronto Lab. The new version of Database Manager, called DB2 like its mainframe parent, ran on the OS/2 and RS/6000 platforms, was called DB2/2 and DB2/6000 respectively. Other versions of DB2, with different code bases, followed the same '/' naming convention and became DB2/400 (for the AS/400), DB2/VSE (for the DOS/VSE environment) and DB2/VM (for the VM operating system). IBM lawyers stopped this handy naming convention from being used and decided that all products needed to be called "product FOR platform" (for example, DB2 for OS/390). The next iteration of the mainframe and the server-based products were named DB2 Universal Database (or DB2 UDB), with the introduction of widespread confusion over which version (mainframe or server) of the DBMS was being referred to. At this point, the mainframe version of DB2 and the server version of DB2 were coded in entirely different languages (PL/S for the mainframe and C++ for the server), but shared very similar functionality and used a common architecture for SQL optimization: the Starburst Optimizer.

Over the years DB2 has both exploited and driven numerous hardware enhancements, particularly on IBM System z with such features as Parallel Sysplex data sharing. In fact, DB2 UDB Version 8 for z/OS now requires a 64-bit system and cannot run on earlier processors, and DB2 for z/OS maintains certain unique software differences in order to serve its sophisticated customers. Although the ultimate expression of software-hardware co-evolution is the IBM mainframe, to some extent that phenomenon occurs on other platforms as well, as IBM's software engineers collaborate with their hardware counterparts.

In the mid-1990s, IBM released a clustered DB2 implementation called DB2 Parallel Edition, which initially ran on AIX. This edition allowed scalability by providing a shared nothing architecture, in which a single large database is partitioned across multiple DB2 servers that communicate over a high-speed interconnect. This DB2 edition was eventually ported to all Linux, UNIX, and Windows (LUW) platforms and was renamed to DB2 Extended Enterprise Edition (EEE). IBM now refers to this product as the Database Partitioning Feature (DPF) and sells it as an add-on to their flagship DB2 Enterprise product.

In mid 2006, IBM announced "Viper," which is the codename for DB2 9 on both distributed platforms and z/OS. DB2 9 for z/OS was announced in early 2007. IBM claims that the new DB2 will be the first relational database to store XML "natively". Other enhancements include OLTP-related improvements for distributed platforms, business intelligence/data warehousing-related improvements for z/OS, more self-tuning and self-managing features, additional 64-bit exploitation (especially for virtual storage on z/OS), stored procedure performance enhancements for z/OS, and continued convergence of the SQL vocabularies between z/OS and distributed platforms.

DB2 9 on distributed platforms began shipping worldwide on July 28, 2006, with pricing starting at $4,874 per processor or $165 per user (minimum of 5 users) for DB2 9 Express, including one year of support.[1] DB2 for z/OS pricing starts at about $4,450 per month, including support.

Editions

DB2 is available in several "editions," or licensing arrangements. By opting for a reduced-feature "edition," IBM allows customers to avoid paying for database features which they do not need. Sample editions include the Express, Workgroup, and Enterprise Edition. The most sophisticated edition for Linux/UNIX/Windows is DB2 Data Warehouse Enterprise Edition, or DB2 DWE for short. This edition is intended for mixed workload (OLTP and data warehousing) or business intelligence (BI) implementations. DB2 DWE includes several "BI" features such as ETL, data mining, OLAP acceleration, and in-line analytics.

DB2 for z/OS is available under its own licensing terms. Starting with Version 8, IBM brought DB2 for z/OS and for the other platforms into much closer alignment. (Previously there were significant differences in SQL vocabularies, for example.) DB2 for z/OS has some exclusives — notably Multi-Level Security (MLS), extremely large table sizes, and hardware-assisted compression — owing to its special environment and the demanding needs of its customers. DB2 for z/OS has always been known for its leading OLTP performance and capabilities, and for its reliability and availability to support mission-critical business operations, but the z/OS version is now starting to acquire BI features as well, such as materialized query tables (MQTs) and star schema. Oracle's CEO Larry Ellison commented that DB2 for z/OS is the one competitive database he respects and admires.[2]

On January 30, 2006, IBM released a no-charge version of DB2 called DB2 Express-C. This was an expected response to the recently announced free versions of Oracle 10g and Microsoft SQL Server. Unlike Microsoft or Oracle's free editions, Express-C has no limit on number of users or on database size. While versions 8.2 and 9.1 of DB2 Express-C imposed hardware limits on the server on which it ran, DB2 Express-C 9.5 can run on Windows and Linux machines of any size, but the database engine will not utilize more than two CPU cores and 2GB RAM. In 2007, IBM introduced a yearly support subscription called the Fixed Term License (FTL), which offers a year of telephone support for Express-C for US$3000 per server. Purchasing the FTL also allows the DB2 Express-C engine to use up to four CPU cores and 4GB RAM. Users of DB2 Express-C who don't purchase an FTL subscription can receive support and assistance on a free, public web forum staffed by IBM technicians and other DB2 users.

Competition

Historically, prime position in the database management software market has been held by Oracle. On May 3, 2004, IBM's head of database development and sales, Janet Perna, claimed their main competitors were Oracle in the context of advanced transaction handling and Teradata in the context of decision support systems (e.g. data warehousing). However, there are competitors in smaller markets, including Microsoft SQL Server (which is only available for Microsoft Windows), open source products such as FirebirdSQL, PostgreSQL and MySQL, and niche players such as Sybase and MaxDB.

In the clustered DBMS arena, where databases can grow to many terabytes, IBM's Database Partitioning Feature (DPF) is often pitted against Oracle Real Application Clusters (RAC), a shared-disk implementation formerly known as Oracle Parallel Server (OPS).

DB2 for z/OS arguably has fewer direct competitors, but Oracle is attracting customers to its Linux on zSeries products, although apparently not at the expense of DB2. CA-Datacom and Software AG's ADABAS are competing relational databases for z/OS, and there are certain niche products as well (Model 204, SUPRA SQL[3], NOMAD, etc.) Oracle has a 31-bit RDBMS available for z/OS. Non-relational databases that "compete" include IMS, and CA-IDMS, among others.

IBM and DB2 are frequently at or near the top of the TPC-C and TPC-H industry benchmarks published on the Transaction Processing Performance Council's website.

In 2006 IBM stepped up its competition in the emerging data warehouse appliance market by releasing a product line of pre-configured hardware/software systems combining DB2 Data Warehouse Edition with either IBM system p (AIX) or IBM system x (Linux) servers. This family of "warehouse appliance-like" systems was given the name IBM Balanced Configuration Unit, or BCU, and is aimed at the warehouse appliance market typified by Netezza and DATAllegro, but it differentiates itself in that it uses the full-featured version of DB2 instead of a single-purpose warehouse-oriented RDBMS.

Technical information

DB2 can be administered from either the command-line or a GUI. The command-line interface requires more knowledge of the product but can be more easily scripted and automated. The GUI is a multi-platform Java client that contains a variety of wizards suitable for novice users. DB2 supports both SQL and XQuery. DB2 has native implementation of XML data storage, where XML data is stored as XML(not as relational data or CLOB data) for faster access using XQuery.

DB2 has APIs for .NET CLI, Java, Python, Perl, PHP, Ruby, C++, C, REXX, PL/I, COBOL, RPG, FORTRAN, and many other programming languages. DB2 also supports integration into the Eclipse and Visual Studio .NET integrated development environments.

Error processing

An important feature of DB2 computer programs is error handling. The SQL communications area (SQLCA) structure was once used exclusively within a DB2 program to return error information to the application program after every SQL statement was executed. The primary, but not singularly useful, error diagnostic is held in the field SQLCODE within the SQLCA block.

The SQL return code values are:

  • 0 means successful execution.
  • A positive number means successful execution with one or more warnings. An example is +100 which means no rows found.
  • A negative number means unsuccessful with an error. An example is -911 which means a lock timeout (or deadlock) has occurred, triggering a rollback.

Later versions of DB2 added functionality and complexity to the execution of SQL. Multiple errors or warnings could be returned by the execution of an SQL statement; it may, for example, have initiated a Database Trigger and other SQL statements. Instead of the original SQLCA, error information should now be retrieved by successive executions of a GET DIAGNOSTICS statement.

See SQL return codes for a more comprehensive list of common SQLCODEs.

Training and Certification

IBM Information Management Training and Certification accelerates DB2 learning with IBM product experts. Take advantage of Instructor Led Online (ILO) — an innovative new training option that combines the benefits of classroom training with the cost savings of an online course.

IBM Training includes a complete set of core Data Servers Training courses that apply to both DB2 for LUW and DB2 for z/OS. These courses delve into many essential DB2 concepts, from fundamentals to advanced SQL topics.

User Groups

IDUG is the International DB2 Users Group, an independent, not-for-profit association of IT professionals who use IBM’s leading relational database management system (RDBMS), DB2. IDUG provides education, technical resources, peer networking opportunities, online resources and other programs that enable DB2 users to enhance their ability to leverage DB2 to achieve personal and professional objectives.

Leadership

Janet Perna was General Manager of IBM Software Group's Information Management division until her retirement from IBM in July, 2005. She was replaced by Ambuj Goyal.[4]

See also

References