Webアプリ開発事始 第7回

Webアプリケーションの仕組みとデータベースの扱い 長谷川裕行
有限会社 手國堂

Webアプリケーションとデータベース

業務処理をWebアプリケーションとする場合、先述したようにデータベースの扱いが非常に重要になります。


- RDBMS -

SQL ServerやOracleなどのリレーショナルデータベース管理システム(RDBMS)は、データベースの管理と制御を行う機能のみを提供します。現在市販されているRDBMS製品には、データベースのデザインやリレーションの設定を行うためのツールなどが付属してきますが、RDBMS本来の機能は、データベースを直接制御するデータベース・エンジンと、プログラミング言語を使って開発されたアプリケーションとのインターフェイス部分とで構成されています。

Accessではデータベース・エンジンとユーザーインターフェイスの作成機能とが一体となっていますが、本来これらは切り離して捉えるべきものです。


- データベースサーバー -

一般的なクライアント・サーバー型ネットワークでは、データベースはRDBMSの稼働するデータベースサーバーで管理し、アプリケーションはアプリケーションサーバー上で動作します。

アプリケーションからデータベースを操作するには、データベースサーバーに接続して、SQL(Structured Query Language)による制御命令を発効します。SQLによる命令を受けたRDBMSはその命令に従った処理を行い、結果をアプリケーションに返します。

図5:データベースサーバーでデータベースを保存・管理する



- SQLでデータベースを操作する -

アプリケーションからデータベースを扱うには、SQLを用います。これは、OSに依存する一般のアプリケーションでも、Webアプリケーションでも同じです。SQLがどのようなものか、簡単に紹介しておきます。SQLについての具体的な解説は、回を追って行います。

SQLはStructured Query Languageの略で、「構造化照会言語」と訳されます。“query”を「照会」と訳しているのですが、データベースに対する問い合わせだけではなく、レコードの追加や削除、フィールドの値の更新など「照会・問い合わせ」の範疇には入らない、データの変更操作も可能です。要するにSQLは、データベースに対するありとあらゆる処理を行えます。

SQLは各種データベース・エンジンに共通の言語なので、データベースの種類やデータベース・サーバーのOS、プログラミング言語の違いなどを意識することなく、処理を記述できます。

以下に、SQLを使ったプログラムの例を掲げておきます。どれも完全なリストではなく、SQLを使っている部分を抜粋したものです。

リスト1:Visual BasicでSQLを使った例
リスト2:ASPのVBスクリプトでSQLを使った例


- データベース操作の共通言語 -

上記リストの、

  "SELECT 商品コード,商品名,前月繰越,当月入庫," _
& "当月出庫,当日入庫,当日出庫,在庫数 " _
& " FROM Q_在庫問合 where 商品コード = " _
& Val(txt商品コード)



  SqlStr = "SELECT Q_在庫問合.商品コード,
       Q_在庫問合.商品名,
       Q_在庫問合.在庫数
       FROM Q_在庫問合 WHERE Q_在庫問合.商品コード="

などがSQLを使ってデータベースを操作している部分です。" "で囲まれ、文字列定数となっています。

SQLはIBM社によって制定されたデータベース操作の共通言語で、命令は文字列として処理されます。そのため、文字列を扱えるプログラミング言語なら、どのような言語からでも同じ手続きで利用できます。

汎用的なデータベース・エンジンは、すべてSQLによる処理命令を受け付けるようになっているので、言語の文法やOSの違いを意識する必要はありません。


あとがき

Webアプリケーションの基本的な仕組みと、データベースの扱いについて概要を紹介しました。Webアプリケーションは従来のクライアント・サーバー型ネットワークで動作するOS依存のアプリケーションとは趣を異にしています。

これまでのようにWindowsの作法から離れ、UNIXの流儀を意識する必要が生じてきます。また、業務処理ではデータベースを扱うためにSQLの理解も必須です。


- 目次 -
トップページ
Webアプリケーションの基本を押さえる
UNIXの流儀
サーバーサイド・アプリケーション
クライアントサイド・アプリケーション
Webアプリケーションとデータベース
RDBMS
データベースサーバー
SQLでデータベースを操作する
データベース操作の共通言語
あとがき

Copyright © MESCIUS inc. All rights reserved.