Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL の使用法 » ストアド・プロシージャとトリガ » プロシージャ、トリガ、バッチの使用

 

プロシージャとトリガの利点

プロシージャとトリガによりデータベースのセキュリティ、効率、標準化を高めることができます。

プロシージャとトリガの定義はデータベース内にあり、データベース・アプリケーションから分離されています。これには、いくつかの利点があります。

標準化

プロシージャとトリガを使用すると、複数のアプリケーション・プログラムで実行するアクションを標準化できます。アクションをコーディングし、将来利用するためにデータベースに格納します。アプリケーションはプロシージャを呼び出すか、トリガを起動するだけで、何度でもそのアクションを実行できます。すべての変更が 1 か所で行われるため、アクションの実装が変更された場合、アクションを使用するすべてのアプリケーションが自動的に新機能を取得します。

効率化

ネットワーク・データベース・サーバ環境で使用されるプロシージャとトリガは、ネットワーク通信を使用しないでデータベースのデータにアクセスできます。つまり、クライアント上のアプリケーションに実装する場合と比較して、ネットワークのパフォーマンスを低下させることなく高速に実行されます。

プロシージャとトリガを作成すると、自動的に構文チェックを行った後に、システム・テーブルに格納されます。アプリケーションが初めてプロシージャを呼び出すか、トリガを起動するときには、システム・テーブルからコンパイルされて仮想メモリにロードされ、実行されます。最初に実行された後もプロシージャまたはトリガのコピーがメモリに保持されるため、同じプロシージャまたはトリガの実行を繰り返す場合、すぐに実行できます。また、複数のアプリケーションが同時にプロシージャまたはトリガを使用することも、1 つのアプリケーションが再帰的に使用することもできます。

セキュリティ

プロシージャとトリガは、テーブルのデータへのユーザのアクセスを制限し、ユーザが直接検査や修正をできないようにすることによって、セキュリティを提供しています。

たとえば、トリガは関連するテーブルの所有者のパーミッションにより実行されますが、テーブルのローを挿入、更新、または削除するパーミッションを持つユーザであれば、トリガを起動できます。同様に、プロシージャ (ユーザ定義関数を含む) はプロシージャの所有者のパーミッションにより実行されますが、パーミッションを与えられたユーザはプロシージャを呼び出すことができます。つまり、プロシージャとトリガのパーミッションはそれらを起動するユーザが持つパーミッションと異なる可能性があります。