目次


PythonとDB2 Express-Cを使ってアプリケーションを開発する

PythonをDB2 Express-Cに接続するための手順

Comments

概要

この記事では、下記についての概要を説明します。

  • Pythonを入手してインストールする
  • DB2 Express-Cを入手してインストールする
  • サンプル・データベースを作成する
  • DB2 Control Centerを使って、データベースの詳細を見る
  • DB2 Command Line Processorを使って幾つかのテーブル内容を見る
  • サンプル・データベースに対してWindows® のODBCデータソースを設定する
  • Python mxODBCパッケージを入手してインストールする
  • Pythonスクリプトの中でmxODBCを使ってデータベースにアクセスする

最初にすべきことを最初に…Pythonをインストールする

Pythonは、読みやすく、使いやすく、また簡単に学べるプログラミング言語です。この言語には多くの魅力的な特徴がありますが、その中で最も重要なものは読みやすさです。Pythonが初めての人のために説明すると、最も興味深いのは、空白(段付け)が重要である点です。これはつまり、リスト1に示すコード断片を、コンパイラーやインタープリターも人と同じように解釈する、ということです。

リスト1.段付けが重要な意味を持つ
1| if ( a == b ) :
2|   if ( c == d ) :
3|     print 'both match'  # printed only when both comparisons are true
4| else :
5|   print 'a not equal b'

行番号1のif命令は、変数abの値を比較します。もし両者が等しければ、行番号2の命令が実行されます。行番号3で生成される出力は、変数aの値が変数bの値に等しく、なおかつ、変数cの値が変数dの値に等しい場合にのみ表示されます。もう一方の出力命令(行番号5)は、aの値とbの値が等しくない場合に、cとdの値に無関係に実行されます。

今までPythonプログラミング言語に経験のない人も、ここでは大歓迎です。

表1. Pythonをインストールする
必要なアクション説明コメント/結果
Windows用のPythonを入手してインストールするためには、ActiveStateサイトを利用するのが最も簡単です。Pythonを入手し、インストールを開始します。
  1. ActivePythonページから、Free Downloadリンクを選択します。
  2. 必要であれば情報を入力し、Nextボタンをクリックします。
  3. 適当なダウンロード・イメージを探します(例えば「Windows/x86」など)。
  4. リンクを右クリックし、インストール用の実行可能ファイルを保存します。
  5. 最新のウィルス・チェッカーでスキャンします。
  6. Windowsのエクスプローラーを使って、保存した実行可能ファイル(例えばActivePython-2.4.3.12-win32-x86.msi)をダブル・クリックしてインストールを開始します。
適当な場所(例えばC:\Python24)にPythonをインストールします。
Pythonインストールを検証します新しいコマンド・プロンプトを開き、下記をタイプします。

python -V

インストールされたプログラムのバージョン、ここでは Python 2.4.3 が表示されるはずです。
もし間違えて-Vを省略してしまうと、単なるバージョン番号だけではなく、Pythonインタープリターのコマンド・プロンプトが見えるはずです
C:\>python
ActivePython 2.4.3 Build 12 (ActiveState Software Inc.) based on
Python 2.4.3 (#69, Apr 11 2006, 15:32:42) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
意図せずにPythonインタープリターを起動してしまったのです。 Ctrl-Z<Enter>を押してインタープリターを終了します。

次に、DB2 Express-Cをインストールする

DB2 Express-Cは、DB2コミュニティーのための、DB2 Express(DB2 Universal Database Express Editio)の1つのバージョンであり、開発やデプロイメントに使用できる無料のデータ・サーバーです。DB2 Express-Cは、DB2 Expressと同じ中核データ・サーバー機能や開発インターフェース、それにシステム制限などを小さなパッケージの中に備えており、あらゆるアプリケーション(C/C++やJava、.NET、PHPその他)をビルドし、デプロイするための堅牢なベースとして利用することができます。DB2 Express-CにはLinux® 用と Windows用があり、2つまでのCPU、4GBまでのメモリーを備えた、32ビットあるいは64ビットのハードウェア上で実行します。

DB2 Express-Cを使う理由は幾つもありますが、重要なものとしては下記を挙げることができます。

  • 価格
    無料には勝てるものではありません。
  • スケーラビリティー
    追加の機能が必要な場合には、自分たちの必要に合わせて、有料版のDB2製品に素早く容易に切り換えることができます。
  • 入手が容易(実際の手順よりも、手順をリストアップする方が面倒なほどです)
    1. ブラウザーでDB2 Express-Cのダウンロード・サイトにアクセスします。
    2. MD5(Message Digest 5)署名をハイライトして保存します。
    3. Downloadリンクをクリックします。
    4. 必要であれば、登録を行います。
    5. サイン・インします。
    6. 自分の個人情報と設定を確認します。
    7. 使用条件を読み、内容を確認します。
    8. I agree(同意)チェック・ボックスを選択します。
    9. I confirm(確認)ボタンをクリックします
    10. 自分の必要に合ったダウンロード方法を選択し、それに対応するDownload nowリンクをクリックします。
    11. 適当なダウンロード先を指定します。
    12. 保存したMessage Digest署名(上記のステップ2)を使って、入手したイメージの整合性を検証します。
    13. 信頼できるウィルス・チェッカーを使用して、入手したファイルに未知のウィルス署名がないかをチェックします。
  • 設定が容易(注意: インストールを完了するためにはシステムの再起動が必要です)
    1. 適当なインストール・ディレクトリー構造の中にアーカイブ・ファイルを解凍します。
    2. Windowsのエクスプローラーを使って、展開されたディレクトリー構造(例えばdb2exc_NT_x86など)を調べ、setup.exeを見つけます。
    3. setup.exeをダブル・クリックして実行します。
    4. 「Installation Prerequisites(前提条件)」オプションを使って、この製品にとって環境が適切であることを確認します。
    5. 「Release Notes」オプションを使って、この製品についての最新情報を表示します。
    6. 「Install Product」オプションを使って、インストールを開始します。
    • Nextボタンをクリックします。「Preparing to Install」という進行状況表示が見え、やがて「Welcome to DB2 Setup wizard」という画面が表示されます。Nextボタンをクリックします。
    • 使用条件を読んで確認し、accept...ラジオ・ボタンを選択し、Nextボタンをクリックします。
    • 適当なインストール方法(Typical(標準)、Compact(最小)、Custom(カスタム))を選択し、Nextボタンをクリックします(私としては「Typical」をお勧めします)。
    • 適当なインストール・ディレクトリー(例えば「C:\IBM\SQLLIB」など)を指定します。
    • 適当な管理アカウント(例えばLocal system accountなど)を選択し、Nextをクリックします。
    • Configure DB2 instancesのデフォルト値をそのままにし、Nextをクリックします。
    • 「Start copying files」画面の内容を確認し、Installをクリックしてインストールを開始します。
    • プログレス・バーが表示され、インストールの進行状況が表示されます。
    • 「Setup is complete」ダイアログ・ウィンドウが表示されたら、Finishボタンをクリックします。
    • インストールを完了するためにコンピューターを再起動するように指示されます。
  • そして、使いやすさ

再起動すると、「First Steps」ウィンドウが表示されます。

1. First Stepsウィンドウ
First Stepsウィンドウ
First Stepsウィンドウ
  1. Check for Product Updatesをクリックして「Update Manager」プログラムを起動します。
  2. 何もアップデートがなければ、「Update Manager」プログラムを閉じます。
  3. Create Sample Databaseオプションを選択すると、インストールを確認するためのデータベースを作成することができます。

    2. Create Sample Databaseオプション
    Create Sample Databaseオプション
    Create Sample Databaseオプション

    データベースの作成ステップが完了したらOKボタンをクリックします。

  4. Work with Databasesオプションを選択すると、「Control Center」が起動します。これを使うと(Sampleのような)既存のデータベースを操作できるようになります。

    3. 展開されたControl Centerの様子
    展開されたControl Centerの様子
    展開されたControl Centerの様子
  5. SAMPLEデータベースの所まで下に横断し、Tablesパースペクティブを選択します。DEPARTMENTテーブルを選択すると、このテーブル中のフィールドが表示されます。

    4. Departmentテーブルの詳細
    Departmentテーブルの詳細
    Departmentテーブルの詳細
  6. 「Command Line Processor」ウィンドウを開くと、テーブルの内容を表示できるようになります。
    Start -> IBM DB2 -> Command Line Tools -> Command Line Processor

    db2 => connect to sample
    
       Database Connection Information
    
     Database server        = DB2/NT 8.2.4
     SQL authorization ID   = GIBSON
     Local database alias   = SAMPLE
    
    db2 => select * from department
    
    DEPTNO DEPTNAME                      MGRNO  ADMRDEPT LOCATION
    ------ ----------------------------- ------ -------- ----------------
    A00    SPIFFY COMPUTER SERVICE DIV.  000010 A00      -
    B01    PLANNING                      000020 A00      -
    C01    INFORMATION CENTER            000030 A00      -
    D01    DEVELOPMENT CENTER            -      A00      -
    D11    MANUFACTURING SYSTEMS         000060 D01      -
    D21    ADMINISTRATION SYSTEMS        000070 D01      -
    E01    SUPPORT SERVICES              000050 A00      -
    E11    OPERATIONS                    000090 E01      -
    E21    SOFTWARE SUPPORT              000100 E01      -
    
      9 record(s) selected.
    
    db2 => disconnect all
    DB20000I  The SQL DISCONNECT command completed successfully.
    db2 => quit
    DB20000I  The QUIT command completed successfully.

ODBC(Open Database Connectivity)

Pythonでは、 ODBC APIを使ってデータベースにアクセスできるようになっています。私達のPythonプログラムでデータベースにアクセスするためには、そのデータベースに対するODBCデータソースを定義する必要があります。幸い、WindowsはODBCドライバーをサポートしています。ですから必要なことは、私達のDB2データベースに接続できるようにドライバーをコンフィギュレーションすることだけです。

  1. Windowsのコントロール・パネルを開きます。
  2. 管理ツールを選択します。
  3. データソース(ODBC)という項目をダブル・クリックします。
  4. 「ユーザーDSN」タブあるいは「システムDSN」タブで、「追加」ボタンをクリックします。

    5. データソースを追加する
    データソースを追加する
    データソースを追加する
  5. IBM DB2 ODBC Driverを選択し、「完了」をクリックします。

    6. データソースを作成する
    データソースを作成する
    データソースを作成する
  6. Addメニューを埋め、OKをクリックします。
7.

mxODBC: ODBC接続

これでほとんど終わりです。PythonプログラムをDB2データベースに接続するためには、あと1つ、ちょっとしたものが必要なだけです。この、最後に必要なものは、ODBCデータベースをサポートするためのPythonモジュールです。

Python Webサイトのデータベースに関する話題のセクションには、Pythonを使ってデータベースにアクセスするための情報が用意されています。このページのDatabase ModulesリンクにはmxODBCパッケージへの参照が含まれており、その説明によると「ODBC API経由でアクセス可能なデータベースに対する、ほぼ100% Python DB API準拠のインターフェース」ということです。

mxODBCパッケージを入手し、インストールするための方法は以下の通りです。

  1. eGenix.comのmx Extensions for Pythonページから、適当なバージョンのベース・パッケージのDownloadリンクをクリックします。
  2. Python 2.4用のWindows installerリンクをクリックします。
  3. ダウンロード・ファイル(例えばegenix-mx-base-2.0.6.win32-py2.4.exe)を保存します。
  4. ブラウザーの「戻る」ボタンを使って、次にCommercial PackageからDownloadリンクを選択します。
  5. ダウンロード・ファイル(例えばegenix-mx-commercial-2.0.7.win32-py2.4.exe)を保存します。
  6. ダウンロードしたファイルにウィルス・チェックを実行します。
  7. ウィルス・チェックが無事終了したら、それぞれのインストール・プログラムを実行します。

一部のシステムでは、特にWindows 2000システムでは、mxODBCパッケージのインストール中に、MDAC SDKソフトウェアのアップグレードが必要という警告が出るかも知れません。もしこの警告が出た場合には、このコードの最新バージョンをMicrosoftから入手してインストールします。この手順を下記に示します。ただし、このアップグレードが必要な場合には、アップグレードを完全にインストールするためにシステム再起動が必要ですので注意してください。

  1. MicrosoftのODBCページにアクセスします。
  2. Downloadsを選択します。
  3. MDAC 2.8リンクをクリックします。
  4. Continueボタンをクリックします。
  5. オプションとして、自分のシステムを確認し、Continueボタンをクリックします。
  6. Downloadボタンをクリックします。
  7. 実行可能ファイル(例えばMDAC_TYP.exe)を自分のシステムに保存します。
  8. 保存したファイルに対してウィルス・チェックを実行します。
  9. ウィルス・チェックが無事成功したら、インストール・プログラムを実行します。
  10. 使用条件を読んで確認し、I accept...を選択し、Nextボタンをクリックします。
  11. Finishボタンをクリックしてインストールを開始します。
  12. インストールが終わったらマシンを再起動します。

まとめ

これで、努力の成果を利用できるところまで来ました。また、Pythonの対話型環境を利用すると、全てのものが想定通り動作しているかどうかを確認することができます。

コマンド・プロンプトを開き、下記のようなコマンドをタイプします。

C:\>python
ActivePython 2.4.3 Build 12 (ActiveState Software Inc.) based on
Python 2.4.3 (#69, Apr 11 2006, 15:32:42) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import mx.ODBC
>>> import mx.ODBC.Windows
>>> db = mx.ODBC.Windows.DriverConnect( 'DSN=sample' )
>>> cursor = db.cursor()
>>> cursor.execute( 'select * from department' )
>>> mx.ODBC.print_resultset( cursor )
Column 1 | Column 2                       | Column 3 | Column 4 | Column 5
--------------------------------------------------------------------------
'A00'    | 'SPIFFY COMPUTER SERVICE DIV.' | '000010' | 'A00'    | None
'B01'    | 'PLANNING'                     | '000020' | 'A00'    | None
'C01'    | 'INFORMATION CENTER'           | '000030' | 'A00'    | None
'D01'    | 'DEVELOPMENT CENTER'           | None     | 'A00'    | None
'D11'    | 'MANUFACTURING SYSTEMS'        | '000060' | 'D01'    | None
'D21'    | 'ADMINISTRATION SYSTEMS'       | '000070' | 'D01'    | None
'E01'    | 'SUPPORT SERVICES'             | '000050' | 'A00'    | None
'E11'    | 'OPERATIONS'                   | '000090' | 'E01'    | None
'E21'    | 'SOFTWARE SUPPORT'             | '000100' | 'E01'    | None
>>> cursor.close()
>>> db.close()
                                        
                                        
In order to exit from the interpreter, you
need to press Ctrl-Z followed by <Enter>.
                                        
>>> ^Z

コードが動作することを確認したら、これらのコマンドをテキスト・ファイルにまとめます(Pythonスクリプトであることを示すために .py拡張子を使います)。そうすれば、このスクリプトを直接実行することができ、先ほどと同じ出力を得ることができます。

C:\> type DisplaySampleDept.py
import mx.ODBC
import mx.ODBC.Windows
db = mx.ODBC.Windows.DriverConnect( 'DSN=sample' )
cursor = db.cursor()
cursor.execute( 'select * from department' )
mx.ODBC.print_resultset( cursor )
cursor.close()
db.close()

C:\> python DisplaySampleDept.py
Column 1 | Column 2                       | Column 3 | Column 4 | Column 5
--------------------------------------------------------------------------
'A00'    | 'SPIFFY COMPUTER SERVICE DIV.' | '000010' | 'A00'    | None
'B01'    | 'PLANNING'                     | '000020' | 'A00'    | None
'C01'    | 'INFORMATION CENTER'           | '000030' | 'A00'    | None
'D01'    | 'DEVELOPMENT CENTER'           | None     | 'A00'    | None
'D11'    | 'MANUFACTURING SYSTEMS'        | '000060' | 'D01'    | None
'D21'    | 'ADMINISTRATION SYSTEMS'       | '000070' | 'D01'    | None
'E01'    | 'SUPPORT SERVICES'             | '000050' | 'A00'    | None
'E11'    | 'OPERATIONS'                   | '000090' | 'E01'    | None
'E21'    | 'SOFTWARE SUPPORT'             | '000100' | 'E01'    | None

C:\>

これでPythonとDB2 Express-Cが実行するようになりました。この素晴らしい組み合わせを使えば、誰もが驚くようなアプリケーションを、素早く、容易に開発できるのです。


ダウンロード可能なリソース


関連トピック

  • Pythonを学ぶための出発点としては、PythonのWebサイトから無料で入手できるPythonチュートリアルを利用するのが一番です。

  • Pythonのホームページには、この学びやすいプログラミング言語についての情報が大量に用意されています。Pythonは読みやすい言語でもあるため、プログラムを書いた後、何週間も何ヶ月も経った後でも、自分も他の人も、容易に内容を理解することができます。また、この言語を学び、理解するための本やインターネットのサイトも多数あります。
  • また、developerWorksに用意されている、Charming PythonDiscover Pythonといったシリーズ記事も調べてみてください。
  • Pythonのサイトには、データベースの話題に関するセクションを含め、様々な情報に関する資料が豊富に用意されています。
  • ODBC(Open Database Connectivity)は、この仕様に準拠したAPIを実装した任意のデータベースにプログラムを接続する方法を定義した仕様です。
  • DB2 Express-CのWebサイトでDB2 Expressについて学んでください。
  • Linux用、Windows用のDB2 Express-Cは、開発やデプロイメント用に使用できる無料のデータ・サーバーです。
  • Message Digest 5ユーティリティーは、ソースもバイナリー版も、インターネット上で容易に入手できます。私はGoogleサーチ・エンジンを使って検索しました。そして見つけた実行可能ファイルをダウンロードし、ウィルス・チェックし、検証することができました。
  • Python downloadでは、自分の必要に合ったバージョンやインストール・パッケージを入手することができます。
  • MicrosoftのODBCページには、皆さんにも必要になりそうな資料が幾つか用意されています。

コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Information Management, Open source
ArticleID=269436
ArticleTitle=PythonとDB2 Express-Cを使ってアプリケーションを開発する
publish-date=06222006