MENU

07 IBMiとデータベース ~OSおよびマイクロコード・レベルで完全統合された史上稀なデータベースの威力 | 新・IBM i入門ガイド[基礎知識編]

業務アプリケーションを開発し、業務データを保持、活用するにあたってまず必要になるのは、データベース機能である。データベース機能としてはいくつかの種類がある。

メインフレームでは木構造で、データを管理する仕組みの階層型データベースが広く利用されている。非メインフレームでは関係データ・モデルに基づきデータを管理する仕組みの関係データベース(RDB:Relational Database)が最も広く利用されている。単に「データベース」と呼んだ場合にはこの関係データベースを指していることも多く、さまざまなベンダーから関係データベース管理システム(RDBMS:RDB Management System)が提供されている。

IBM iは、RDBMSをOSおよびマイクロ・コードのレベルで完全に統合している世界でも稀なOSである。図表1のように、LinuxやUNIX、Windowsで関係データベースを使用する場合は別途RDBMSをOS上で動くアプリケーション・ソフトウェアとして導入、構成する必要があるが、IBM iの場合はRDBMSがOSに統合・同梱されているので不要である。

図表1 OSに統合されたDb2 for i

このOSに統合されているRDBMSはDb2 for iと呼ばれており、IBMから各プラットフォーム向けに提供されているDb2ファミリーの一員として位置づけられている。

IBM iはAS/400のOSとして登場した当初から関係データベースをOSに統合、提供している(正確にはAS/400の前身であるSystem/38で既に統合されていた)。当時はSQLという現在では普及しているデータベース言語も存在していない時代だ。そのため、DBオブジェクトのタイプとして実データを格納する物理ファイル、物理ファイル内のデータに選択条件などを加えて論理的なデータの集まりを定義した論理ファイルといった名称が使われている。これらに相当するSQLでの名称との対比をまとめたものが図表2だ。

図表2 システム・インターフェースとSQLインターフェースの対比

では、データベースがOSに統合されているメリットは何であろうか? 一言でまとめるならば、データベース運用の容易性と言える。IBM iはOSとしての高い信頼性、運用容易性を誇るプラットフォームであり、そのメリットをそのままデータベース運用に活用できる。図表3にデータベース運用としての一般的な管理タスクをまとめている。

図表3 RDB運用管理タスクのDb2 for i での実装機能

他プラットフォームでは各項目を運用担当者がどのように行うかを決定しなければならない。一方Db2 for iでは多くの項目がOSによる自動管理であるなど、その違いが一目瞭然だ。また日々の保管復元運用を例に取ると、Db2 for iではテーブルなどのデータベース・オブジェクトはそのままOSオブジェクトとして認識されるため、システム提供の保管復元コマンド1つで、テーブル単位で保管、復元することができる。

IBM iを長く愛用しているユーザーにとっては当たり前と言われるだろうが、他プラットフォームのRDBMSではそうはいかない。また、他プラットフォームでは表スペースの空き容量の管理は重要な運用項目の1つだが、IBM iでは表スペースの概念自体がなく、DBオブジェクトのストレージ領域への配置はすべてOSが自動的に判断・決定してくれる。またSQLによるデータ照会時の最適化過程を視覚的に表現するVisual Explainやプラン・キャッシュ・スナップショット、作成が望ましい索引情報を自動で提供してくれる索引アドバイザーなど豊富な管理機能も実装されている(図表4)。

図表4 Visual Explainと索引アドバイザー

このように運用容易性が大きなメリットをもつDb2 for iだが、そのデータベースに格納されているデータにアクセスするメカニズムとしては大きく2つが用意されている。

1つ目はSQL登場以前より使用されている文字通りデータベースのレコード単位でデータを操作する方式であるレコード・レベル・アクセス(RLA: Record Level Access)となる。RPGにおけるREADEやCHAIN、WRITEといったIBM iネイティブ・プログラミング言語におけるファイル・アクセス命令はこのRLAの代表例だ。

そして2つ目がSQLアクセスとなる。図表5のようにDb2 for iへSQLアクセスするためのインターフェースも数多く取り揃えられている。ODBCアクセスを通じてADO.NETやPHPで作成されたアプリケーションからアクセスすることも容易で、JDBCドライバーを用いてJavaアプリケーションからアクセスすることも簡単だ(なおODBCドライバーはIBM Access Client SolutionsのApplication Packageに含まれている)。

図表5 Db2 for iにおけるデータ・アクセス方式の代表例

そのほかにもDRDA(Distributed Relational Database Architecture)と呼ばれるDb2独自で実装されているプロトコルでの接続も可能であり、Db2ファミリーとして他プラットフォーム上のDb2との連携もできる。

なおRPGやCOBOLといったRLAでのアクセスをベースとしたデータ・アクセス用の命令セットがあらかじめ用意されているプログラムにおいても、組み込みSQLと呼ばれる機能が用意されている。RPGなどのプログラム・ソースにSQLステートメントを埋め込んで、実行する形式だ。

以上2つに大別されるDb2 for iへのデータ・アクセス・メカニズムであるが、RLAは歴史的に長いメカニズムで将来的にも安定的にそのインターフェースは提供し続けられるが、機能強化は図られない点は留意しておくとよいだろう。

Db2 for iの動向としてIBM i開発部門は明確にSQLアクセスに対する機能強化を打ち出し続けている。特に近年は、IBM iサービスと呼ばれる、IBM iの運用管理をCLコマンドやシステムAPIを使わずにSQLインターフェースを介して実行できるようにする機能の充実に注力している。SQLインターフェースでシステム系のデータを取得・操作できることから、RESTと組み合わせて独自のWeb UIに組み込んだりできるため、5250インターフェース以外でのシステム管理機能の実装がより容易になってきている。

IBM i 7.5では現在、図表6のように18のカテゴリーのIBM iServiceが提供されている。また、Technology Refreshの度に新たなIBM iServiceが実装されているため今後も注目していただきたい。

図表6 IBM i 7.5のIBM iServiceで実装されている機能カテゴリー

 

著者
中村 陽一氏

株式会社MONO-X
テクノロジー事業本部 クラウド事業部

[i Magazine 2025 Spring号掲載]

新着