第2回 Kylixからデータベースを操作してみよう

Kylixによるデータベース操作は非常に簡単だ。操作方法を理解したら、ApacheのDSOを作成してみよう。また、DSOとPerl、PHP、JDBCのベンチマークも行ってみた。(編集局)

中林 紀彦
日本アイ・ビー・エム株式会社
2003/1/15

 第1回では、Kylix 3とDB2を使ってプログラミングを行う環境を準備しました。Kylix 3もDB2もトライアル版がWebサイトから入手できます。入手方法やインストール方法は第1回を参照してください。

 今回は、Kylixのデータベース・コンポーネントであるdbExpressを使ったデータベース・プログラミングについて、実際にアプリケーションを作成しながら解説します。

 KylixはWebアプリケーションを作成する手段を複数提供していますが、今回はその中でもパフォーマンスに優れるDynamic Shared Objects(以下DSO)を用いる方法を紹介します。また、DSOのパフォーマンスを検証するために簡単なベンチマークを行い、本当にDSOアプリケーションがパフォーマンスに優れているのか否かをテストします。

 なお、C++ではDSOアプリケーションに不具合があるようなので、今回はDelphi言語を用いることにしました。

dbExpressを使ったデータベース・プログラミング

 まず、dbExpressを使ったデータベース・プログラミングのアーキテクチャから紹介しましょう。データベース・アプリケーションを作成する際の一般的な手順は、

  1. データベース・ドライバの準備
  2. データベースへ接続
  3. SQL文を実行
  4. 結果を処理
  5. エラー処理
  6. データベースから切断

となります。Kylixでは、図1のようなアーキテクチャになります。

図1 一般的なアーキテクチャ

 Kylixでは、データモジュールというフォームの中に必要なコンポーネントを配置していきます。ユーザーインターフェイスをフォームから分離すれば、データモジュールだけをほかのアプリケーションから再利用することも可能です。

 Kylixによる一般的なデータベース・アプリケーションでは、以下の3つのコンポーネント(群)を用います。

データソース
データソースは、ユーザーインターフェイスとデータベースから取り出されたデータ(データセット)を仲介します。フォーム上の複数のデータベース対応コントロールが、1つのデータソースを共有することも可能です。

データセット
データセットは、データベースアプリケーションの中心です。このコンポーネントは、基になるデータベースのレコードのセットを表します。レコードは、単一のデータベーステーブルから取得したデータの場合もあれば、SQL文を用いて取り出したデータの場合もあります。データセットを使用すると、データベースが物理的に再構築されてもアプリケーションロジックは直接影響を受けずに済みます。

データ接続
Kylixは、「単方向データセット」と「クライアントデータセット」の2種類のデータベース接続をサポートします。
  • 単方向データセット
    単方向データセットは、SQL文で記述されたデータやストアドプロシージャから返されたデータを扱うことができます。データのバッファリングを行わないので、クライアントデータセットほどの柔軟性はありません。また、単方向データセットを使ってデータを更新することもできません。しかし、データベースサーバの情報へのアクセスが速く、クライアントデータセットよりもはるかに大きなデータセットを扱えます。

  • クライアントデータセット
    クライアントデータセットは、メモリ内にデータをバッファリングします。これによりレコード操作がより容易になるほか、レコードのフィルタリングなどが可能です。ただし、メモリ内にデータをキャッシュするため、限られた数のレコードしか格納できません。クライアントデータセットには、汎用クライアントデータセットとSQLクライアントデータセットの2種類があります。

図2 単方向データベース・アプリケーションのアーキテクチャ

図3 クライアントデータセットと単方向データセットを組み合わせたアーキテクチャ

1/4

Index
Kylix 3とDB2で作るWebサービス・アプリケーション
 第2回 Kylixからデータベースを操作してみよう
Page 1
dbExpressを使ったデータベース・プログラミング
  Page 2
データ操作プログラミング手法
 単方向データセットによるデータ操作
 クライアントデータセットによるデータ操作
  Page 3
Web-DBアプリケーション(DSO)の作成
 プロジェクトの準備
 コンポーネントの配置と設定
 プロジェクトのコンパイル
Apacheの設定とアプリケーションの実行
 Apache 1.3のコンパイル
 apachectl、httpd.confの編集
 アプリケーションの実行
  Page 4
DSOアプリケーションのベンチマーク

連載 Kylix 3とDB2で作るWebサービス・アプリ


 Linux Squareフォーラム プログラミング関連記事
特集:オブジェクト指向に生まれ変わるPHP5[前編]
現在開発中のPHP5は、オブジェクト指向機能が大幅に強化される。次世代PHPはどのような言語になるのか?
特集:Windows開発者に贈る Kylixの全貌
注目の開発環境「Borland Kylix」がいよいよ見えてきた。ここに、英語版の発売を目前に控えたKylixの機能やアーキテクチャを紹介しよう
特集:Kylixプログラミング作法
GUIの構築やコンポーネントとコードの関係、 Object Pascalの仕様など。 これらの点を、実際に日本語ベータ版でプログラミングしながら分かりやすく解説
連載:PHP4で作るWeb-DBシステム(全5回)
PHPはWebサーバとデータベースを結びつけるものだ。そのためPHPでの開発を開始するには、OS、データベース、Webサーバ、そしてPHPと、多くのソフトウェアのインストールを行う必要がある
連載:ステップ・バイ・ステップ・シェルスクリプト(全7回)
Linuxの中でシェルスクリプトはネットワークの設定、デーモンの起動など重要な役割を果たしている。この連載では、シェルスクリプトで実用的なプログラムを組むことを目標にして、シェルの基本的な知識を説明する
連載:Kylix 3とDB2で作るWebサービス・アプリ(全5回)
Kylix 3とDB2 V8.1を使って、Webサービス・アプリを作ってみよう。トライアル版も用意されているので、実際に試しながら読んでほしい

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間