Tuesday, February 15, 2011

The awesomeness of DB2

The IBM DB2 Enterprise Server Edition is a relational model database server developed by IBM. It primarily runs on Unix (namely AIX), Linux, IBM i ,z/OS and Windows servers. DB2 also powers the different IBM InfoSphere Warehouse editions.

The DB2 enterprise relational database started out as one of the first enterprise-scale database engines. It was famously reliable on mainframes; and, over time, down the hardware chain, so that today it is the only database to run on all platforms from mainframes to handheld devices. IBM also significantly broadened its hardware support to include just about every server platform (Solaris, HP-UX, AIX, Linux, Windows, OS/2, in addition to mainframes and IBM's own OS/400). At the handheld and embedded level, DB2 runs on Windows CE/Pocket PC, Linux-based handhelds, Symbian, PalmOS, and QNX Neutrino.
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 Query. 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 REXX, PL/I, COBOL, RPG, FORTRAN, C++, C, Delphi, .NET CLI, Java, Python, Perl, PHP, Ruby, and many other programming languages. DB2 also supports integration into the Eclipse and Visual Studio .NET integrated development environments.
An important feature of DB2 computer programs is error handling. 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

A key feature of DB2 that distinguishes it from other commercial DBMSs is its remarkable programmability. I will get to this in a second, as there is lots to discuss. However, for it to make sense you'll need a quick overview of the different flavors of DB2.
DB2 is designed to be powerful for those who need that power. However, there has been increased focus on usability and on ease of development. Let's take a look at the technologies that together make DB2 excel:
• Proven performance and scalability
• Administration (made easier)
• Application development and deployment for your chosen environment


Numerous versions of DB2 are available which gives the customers a plethora of options to choose from. I’ve elucidated some versions in my own words below.
Getting Personal
The Personal Edition (PE) is kind of cool. First of all, it's free. This means you can develop for it, use it for any activity, and even deliver solutions that expect a local database. The only thing you can't do is network it to another database.
As either an embedded or desktop database, though, it would be hard to find one that is more feature laden or more widely supported. In fact, PE has all the features of the DB2 Workgroup Edition. This is complete enough that IBM suggests coding against PE in the early stages of developing a database app. Then, once your code is up and running, you can test and deploy it against your site's full-fledged DB2 server. The code will run unchanged.
Riding the Express
DB2 UDB Express (Windows and Linux) trial edition competes for the hearts and minds of small business and department-sized databases. It goes up against Microsoft SQL Server and low-end versions of Oracle's database flagship.
It incorporates enterprise features such as extensive GUI-based setup, administration, and management tools. This version shows off IBM's longstanding support for easy developer access to DB2 data. Java is always supported, of course—this being IBM. This support comes via direct-connect, JDBC, and SQLJ. In addition, IBM offers a C-language API, entitled the call-level interface (CLI), which enables you to perform every database function via a C function. Developers who remember programming databases prior to SQL will recall these kinds of APIs fondly. While they lacked SQL's portability, they were a darned sight faster and didn't require the acquisition of a new language skill. DB2 also provides embedded SQL (in C, COBOL, and Fortran).
Finally, DB2 works with the latest versions of ADO.NET, and so it can be accessed via any of the .NET languages. Suffice it to say, developers can code for DB2 data access without having to change the tools they use. This claim, you'll note, can be made by few other DBMSs.
Big Momma On Top
At the top of the food chain is the big enterprise version, DB2 UDB v. 8.1. It includes the relational engine and the developer tools we discussed previously. It also adds considerable support for IBM's WebSphere application server.
The core value of the UDB, however, is not so much in its relational engine, as in the ancillary enterprise tools that can be purchased as extensions. These include data warehousing, data mining, and data visualization.
At the hardware level, different versions of DB2 can work with clusters, NUMA designs, and even massively parallel implementations.
Subscribers to IBM's developerWorks Subscription will find these versions of DB2 and its tools in the professional-level subscription discs. The enterprise tools for DB2 UDB are in the enterprise version of the subscription.
In fact, for development purposes, the IBM deverloperWorks subscription is the least expensive way to obtain the products, unless you're committed to staying at the PE level.
More on Development
As I mentioned earlier, DB2 is remarkably friendly to developers. This is in good part due to IBM's extensive documentation and its program to encourage developers to share their techniques and insights for accessing the database.
These efforts are most evident on the developerWorks website, where the DB2 section includes all sorts of articles and tutorials. DevX contains additional articles that show off DB2's programmer orientations.
As to the use of the product itself, the documentation in PDF format is copious. In addition, Big Blue publishes extraordinarily in-depth tutorials. For example, its OLAP product, called DB2 Cube Views, enjoys a free 750-page primer, while scaling DB2 on Windows Server 2003 benefits from a 275-page tutorial that explain how to run clusters and 64-bit versions of DB2 on this platform.
The bottom line, as this quick tour shows, is that if you need a database for use at a site where considerable in-house development is the norm, DB2 is likely to be the most suitable choice—on the strength of its free developer versions, its wide support for programming technologies, its integration with WebSphere, its rich documentation, and its tutorial collection.
Beyond that, of course, it's IBM.






The structure of IBM DB2 certifications is illustrated below






A really nice feature of the DB2 certification program is its modularity. After passing the "DB2 9 Family Fundamentals" entry test #730, take whichever exam(s) you like. Each one you pass gives you another certification.
My recommended strategy to pass the exams is a four-pronged effort covering these essentials:
1. Study a certification book
2. Take practice tests
3. Get hands-on DB2 experience
4. Use IBM's free study resources

From structured data to unstructured content, from handheld devices to clustered server configurations, and from transaction processing workloads to data mining, DB2 software supports customers as they grow and succeed as on demand businesses. With DB2 software, customers can take advantage of e-business on demand advancements and strategies such as Web services and grid computing. As we celebrate the 20th anniversary of DB2 for MVS in 2003, the growth of DB2 software in the database market is a strong indicator of the continuing success of DB2 software investments and strategies on behalf of IBM customers around the world.

No comments: