「IBMチャンピオン Db2 for iのモダナイゼーションと SQLについて語る」

TechChannelの記事「IBM Power Champion Birgitta Hauser on SQL and Modernization」を読みましたので、いくつか現実目線で追記しておきます。以下抜粋です。

IBM Powerチャンピオン ビルギッタ / 聞き手 チャーリー / わたし

  • 「最初のステップは、ビジネスロジックがプログラムからデータベースに移動することに集中することです。」「大量のプログラムの書き直しが必要になる」「モジュール式のプログラミングの話をすれば、適切な関数や手続きを書くだけで、プログラムを改良することができます」ILE化も必要だと工数が肥大する
  • 「過去に不正なデータをテーブルに入れてしまうことがありましたが、今(DDLで)はもう許されない。お勧めや定石はあるか?」「いいえ。私がお勧めするのは、 1つのテーブルを次々に処理し、あとは実行させるだけです。」「どのくらいの粒度で行うのか?データベース全体、アプリケーションごと、マスター/トランザクションごと?」「いいえ、通常は、重要でないテーブルから始めて、それを立ち上げてから、計画を立てます。そうすれば、『何千ものファイルがあるから、今週末に全部変換しなくちゃ』なんてことはありません。今週末に 3~5個のファイルを変換する、あるいはテスト環境で変換するといったように、段階的に進めていけばいいのです。」そのペースだと1,000週間かかるのでは?
  • 「開発者、あるいは経営者や管理者に、このような予算を確保することの利点を説得するのは難しいのですが、どのような言葉をかければいいのでしょう?このプロセスには、かなりの時間とテストが必要になる可能性があるからです。もちろん、普段の仕事の合間に」「古いデータベースがあるんです。 20年、 25年前のもので、時代は変化しています。そこで、データへのア クセスを高速化する必要があります。私たちのデータだけでなく、 外部 のデータもあります。データへのアクセスが速くなれば、新しいレポートの作成も速くなり、ソースコードが少なければ少ないほど、テーブルのセキュリティも向上するのです。制約や参照整合性、行や列のアクセス制御などを追加すればね。」数値(工数など)と効果を提示する必要があるのでは?
  • 「IBMは常に DBE(データベース・エンジニア)を置くべきだと説いていますが、データベース・エンジニアは 2人いた方がいいでしょう。」多くの場合難しいと思います。専任の運用担当がいなくても利用できるのがAS/400(S/38)のころからの美点です。

日本語環境ではシフト文字の不整合(シフト文字欠け、Aフィールドに漢字、など)があるのでSBCS圏よりはるかに大量の「不正なデータ」が発生します。

また、文字コードのバリエーションも多い(JIS78~2004、シフトJIS、EUCなど)ので、外部とのデータ交換でも問題が発生するケースがあります。この記事の主眼はDB(アクセス)のSQL化ですが、日本では同時に「ユニコード化」が求められるでしょう。