本文へジャンプ

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む


お客様が developerWorks に初めてサインインすると、プロフィールが作成されます。プロフィールで選択した情報は公開されますが、いつでもその情報を編集できます。お客様の姓名(非表示設定にしていない限り)とディスプレイ・ネームは、投稿するコンテンツと一緒に表示されます。

送信されたすべての情報は安全です。

  • 閉じる [x]

developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む


送信されたすべての情報は安全です。

  • 閉じる [x]

徹底的にOracleとの互換性を高めたDB2 9.7なら移行の手間も大幅削減

第4回(最終回)

谷川 耕一, 代表取締役 会長, ブレインハーツ株式会社
AI、エキスパートシステムが流行っていたころに開発エンジニアに、その後雑誌の編集者を経て、外資系ソフトウェアベンダの製品マーケティング、広告、広報担当者などを経験。現在は、オープンシステム開発を主なターゲットにしたソフトハウスの経営とライター仕事の二足の草鞋を履いている。

概要: たとえライセンス費用が安くても、移行に手間がかかればそのメリットはなくなってしまう。最新版のDB2 9.7では、Oracleとの互換性を大幅に向上させており、移行の手間を大きく削減している。特にPL/SQLエンジンの実装、ロックメカニズムの変更は大きな変化であり、Oracleに慣れた技術者にとっても、これらによって今回のバージョンアップでDB2がかなり身近な存在になったと感じるはずだ。

日付:  2010年 6月 28日
レベル:  中級
アクティビティー: 1911 ビュー
お気軽にご意見・ご感想をお寄せください: 


データベースを乗り換える敷居はかなり高い

前回、構成によってはOracleよりもDB2のほうがライセンス費用が安くなる可能性があると指摘した。確かにライセンス費用が安くなるのは、大きなメリットになるはずだが、だからといって実際にデータベースシステムを乗り換えるとなると、それはたやすいことではない。

いざ乗り換えを実施するとなれば、利用しているアプリケーションが正常に稼働するようにプログラムを大きく手を入れることになるだろう。そして、移行作業が終われば正常に稼働することを、十分にテストし確認しなければならない。この移行作業に手間と時間がかかれば、そのための技術者費用が発生することになり、ライセンス価格の差などはあっという間に吹き飛んでしまいかねない。

ライセンス費用の削減だけを目指すのであれば、オープンソースのデータベースに乗り換えるという手もある。しかしながら、OracleやDB2などの商用データベースからの乗り換えとなると、それはかなりの苦労を覚悟する必要がある。

苦労が大きくなる可能性が高いので、よほどスムーズに移行できないとコストメリットは発揮できない。データベースは本来、標準のSQLに準拠していれば言語的には同様なもののはずだが、実際にはデータベースごとに細かいレベルでSQLの仕様は異なっている。そのため、移行時にはこの違いを理解し、適宜システムに合わせプログラムを書き換える必要があるのだ。

とはいえ、言語仕様が異なる程度の差ならば、何度か移行作業を経験すれば、何をどう書き換えればいいかといったことを技術者なら比較的容易に修得できるはずだ。データベースの標準的な機能だけを利用しているシステムであれば、変更部分はデータベースごとの方言を解釈するようなもので、プログラムのちょっとした書き換えだけですむはずだ。

問題となるのは、AのデータベースにはあるのにBにはその機能そのものがないといった場合だ。この場合は、似たような機能で代替できれば、それを使ってなんとか誤魔化すか、あるいは存在しない機能そのものを別途作るかしかない。商用データベースには豊富な機能が揃っているが、オープンソースではそうはいかない。

そのため、商用からオープンソースへの移行の際には、新たに必要な機能を外部プログラムで作るか、便利な機能を諦めるといったことになりかねない。こういう機能を多数作るとなれば、当然ながら大きな手間とコストがかかり、そもそも作った機能の信頼性も心配となる。商用からオープンソースへの移行では、この苦労はかなり大きくなることが予測される。


Oracleとの互換性を高めた3つのポイント

当然ながら、DB2とOracleでは基本的なアーキテクチャーも異なるし、SQLもまるっきり同じというわけにはいかない。そのため、移行時にはそれなりにプログラムに手を入れる必要がある。とはいえ、機能的には両者ともそれなりに豊富に揃っているので、こちらにあってあちらにないという機能はそれほど多くはないはずだ。

しかしながら、Oracleの便利な機能を十分に使いこなしていればいるほど、DB2への移行は苦労することになるはずだ。 ところが、最新版のDB2 9.7では、OracleにあってDB2にはないといった機能を、大幅に減らすことに成功している。これにより、それなりにOracleの機能を使い込んでいたとしても、OracleからDB2への移行の手間を従来に比べて大きく削減しているのだ。

DB2 9.7でこの手間の削減に大きく貢献しているのが、Oracle独自の拡張プロシージャ言語であるPL/SQLのサポートがまず挙げられる(図1)。これは、足りなかったPL/SQLの機能をエミュレーションするといったものではない。

なんとPL/SQLのコンパイラを追加し、別途実装してしまったのだ。これにより、Oracleで動いていたPL/SQLのプログラムが、多くの場合、手をほとんど入れずにDB2 9.7の上で動いてしまうのだ。これは、エミュレータ方式ではないので、パフォーマンスの劣化も心配ないとのことだ。


図1. DB2 9.7のPL/SQL実行サポート

もう1つのOracleとの互換性を高めたポイントが、Oracle固有の関数やデータ型のサポートをDB2 9.7では大幅に追加しているところだ(図2)。たとえば、結合演算子の(+)やVARCHAR2データ型なども新たに追加されており、それらを利用することで、SQLの書き換えの必要も大幅に削減されている。


図2. DB2がサポートするおもなSQL言語要素

3つ目の大きな変化が、DB2 9.7でのロックメカニズムの変更だ。Oracleを使っている技術者であれば当たり前の機能とも言える、読み取り一貫性機能がDB2 9.5までは実装されていなかった。そのため、更新中のレコードを読み込む際には、更新レコードはロックされ読み込むにはロックが解除されるのを待つ必要があったのだ。

これを回避するために、DB2では更新中のロックがなるべく発生しないようプログラミング側でなんらかの工夫をする必要もあった。DB2 9.7ではOracleと同様のREAD COMMITTED分離レベルを採用できるようになり、この拡張も移行の手間を大幅に削減することにつながる。


IBMでは移行のための各種サービスを提供中

現在、IBMのサイトには、OracleからDB2へ移行するための技術資料なども十分に揃っている。また、「Oracleからの移行支援サービス」も実施している。このサービスでは、OracleからDB2への無償移行アセスメントを実施し、新規にOracle DatabaseまたはDB2を購入する場合のライセンス、保守料の比較査定を行っている。

さらに、データ圧縮効果のアセスメントでは、DB2のディスク圧縮機能によるストレージ・コスト削減効果についても査定を行い、移行インパクト・チェックではOracleからDB2へ各種オブジェクトを移行する際の互換性査定も実施している。この他にも、実際の移行作業をサポートする有償のサービスも各種提供されている。

また、IBMでは、すぐに利用できるDB2の評価版、無償版のライセンスも用意している。新しくなったDB2の各種機能を、これらのライセンスを用いすぐに評価することも可能だ。データベースの移行は、リスクも伴うものなので、そう簡単に決断できるものではない。当然ながら単純なコスト比較だけで判断できるものはないので、事前に十分に資料をあたり、評価版等でしっかりと検証をする必要もあるだろう。

何度も繰り返しになるが、データベースを単なるデータの入れ物として使用するのではなく、強力なデータ処理エンジンだと位置づける。そういう視点をもって、システムにおいてさらにデータベースを活用すれば、もっと便利で高性能なデータ処理環境ができあがるはずだ。そのためにも、今一度データベースの機能、性能に着目し、十分な評価をしてみることをおすすめする。


著者について

AI、エキスパートシステムが流行っていたころに開発エンジニアに、その後雑誌の編集者を経て、外資系ソフトウェアベンダの製品マーケティング、広告、広報担当者などを経験。現在は、オープンシステム開発を主なターゲットにしたソフトハウスの経営とライター仕事の二足の草鞋を履いている。

不正使用の報告のヘルプ

不正使用の報告

ありがとうございます。 このエントリーは、モデレーターの注目フラグが設定されました。


不正使用の報告のヘルプ

不正使用の報告

不正使用の報告の送信に失敗しました。


developerWorks: サイン・イン


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 利用条件

 


お客様が developerWorks に初めてサインインすると、プロフィールが作成されます。 プロフィールで選択した情報は公開されますが、いつでもその情報を編集できます。 お客様の姓名(非表示設定にしていない限り)とディスプレイ・ネームは、投稿するコンテンツと一緒に表示されます。

表示名をお選びください

developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

(半角英数字で3文字以上31文字以下にする必要があります)


「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 利用条件

 


この記事を評価する

コメント

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Information Management
ArticleID=498650
ArticleTitle=徹底的にOracleとの互換性を高めたDB2 9.7なら移行の手間も大幅削減
publish-date=06282010
author1-email=kouich-t@musasabi.jp
author1-email-cc=

タグ

Help
このタグで、My developerWorks のすべてのタイプのコンテンツを見つけるために検索フィールドを使用します。

スライダーバーを使用することで、より多く(少なく)タグを表示します。

人気のタグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するトップのタグを表示します。

マイ・タグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するお客様ご自身のタグを表示します。

このタグで、My developerWorks のすべてのタイプのコンテンツを見つけるために検索フィールドを使用します。人気のタグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するトップのタグを表示します。マイ・タグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するお客様ご自身のタグを表示します。