第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を使ったデータベース・プログラミングのアーキテクチャから紹介しましょう。データベース・アプリケーションを作成する際の一般的な手順は、
- データベース・ドライバの準備
- データベースへ接続
- SQL文を実行
- 結果を処理
- エラー処理
- データベースから切断
となります。Kylixでは、図1のようなアーキテクチャになります。
図1 一般的なアーキテクチャ |
Kylixでは、データモジュールというフォームの中に必要なコンポーネントを配置していきます。ユーザーインターフェイスをフォームから分離すれば、データモジュールだけをほかのアプリケーションから再利用することも可能です。
Kylixによる一般的なデータベース・アプリケーションでは、以下の3つのコンポーネント(群)を用います。
●データソース
データソースは、ユーザーインターフェイスとデータベースから取り出されたデータ(データセット)を仲介します。フォーム上の複数のデータベース対応コントロールが、1つのデータソースを共有することも可能です。
●データセット
データセットは、データベースアプリケーションの中心です。このコンポーネントは、基になるデータベースのレコードのセットを表します。レコードは、単一のデータベーステーブルから取得したデータの場合もあれば、SQL文を用いて取り出したデータの場合もあります。データセットを使用すると、データベースが物理的に再構築されてもアプリケーションロジックは直接影響を受けずに済みます。
●データ接続
Kylixは、「単方向データセット」と「クライアントデータセット」の2種類のデータベース接続をサポートします。
- 単方向データセット
単方向データセットは、SQL文で記述されたデータやストアドプロシージャから返されたデータを扱うことができます。データのバッファリングを行わないので、クライアントデータセットほどの柔軟性はありません。また、単方向データセットを使ってデータを更新することもできません。しかし、データベースサーバの情報へのアクセスが速く、クライアントデータセットよりもはるかに大きなデータセットを扱えます。
- クライアントデータセット
クライアントデータセットは、メモリ内にデータをバッファリングします。これによりレコード操作がより容易になるほか、レコードのフィルタリングなどが可能です。ただし、メモリ内にデータをキャッシュするため、限られた数のレコードしか格納できません。クライアントデータセットには、汎用クライアントデータセットとSQLクライアントデータセットの2種類があります。
図2 単方向データベース・アプリケーションのアーキテクチャ |
図3 クライアントデータセットと単方向データセットを組み合わせたアーキテクチャ |
1/4
|
|
||||||||
|
連載 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サービス・アプリを作ってみよう。トライアル版も用意されているので、実際に試しながら読んでほしい |
|
|
- 【 pidof 】コマンド――コマンド名からプロセスIDを探す (2017/7/27)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、コマンド名からプロセスIDを探す「pidof」コマンドです。 - Linuxの「ジョブコントロール」をマスターしよう (2017/7/21)
今回は、コマンドライン環境でのジョブコントロールを試してみましょう。X環境を持たないサーバ管理やリモート接続時に役立つ操作です - 【 pidstat 】コマンド――プロセスのリソース使用量を表示する (2017/7/21)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、プロセスごとのCPUの使用率やI/Oデバイスの使用状況を表示する「pidstat」コマンドです。 - 【 iostat 】コマンド――I/Oデバイスの使用状況を表示する (2017/7/20)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、I/Oデバイスの使用状況を表示する「iostat」コマンドです。
|
|