Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
プロシージャーとトリガーによりデータベースのセキュリティ、効率、標準化を高めることができます。
プロシージャーとトリガーの定義はデータベース内にあり、データベースアプリケーションから分離されています。これには、いくつかの利点があります。
プロシージャーとトリガーを使用すると、複数のアプリケーションプログラムで実行するアクションを標準化できます。アクションをコーディングし、将来利用するためにデータベースに格納します。アプリケーションはプロシージャーを呼び出すか、トリガーを起動するだけで、何度でもそのアクションを実行できます。すべての変更が 1 か所で行われるため、アクションの実装が変更された場合、アクションを使用するすべてのアプリケーションが自動的に新機能を取得します。
ネットワークデータベースサーバー環境で使用されるプロシージャーとトリガーは、ネットワーク通信を使用しないでデータベースのデータにアクセスできます。つまり、クライアント上のアプリケーションに実装する場合と比較して、ネットワークのパフォーマンスを低下させることなく高速に実行されます。
プロシージャーとトリガーを作成すると、自動的に構文チェックを行った後に、システムテーブルに格納されます。アプリケーションが初めてプロシージャーを呼び出すか、トリガーを起動するときには、システムテーブルからコンパイルされて仮想メモリにロードされ、実行されます。最初に実行された後もプロシージャーまたはトリガーのコピーがメモリに保持されるため、同じプロシージャーまたはトリガーの実行を繰り返す場合、すぐに実行できます。また、複数のアプリケーションが同時にプロシージャーまたはトリガーを使用することも、1 つのアプリケーションが再帰的に使用することもできます。
プロシージャーとトリガーは、テーブルのデータへのユーザーのアクセスを制限し、ユーザーが直接検査や修正をできないようにすることによって、セキュリティを提供しています。
たとえば、トリガーは関連するテーブルの所有者のパーミッションにより実行されますが、テーブルのローを挿入、更新、または削除するパーミッションを持つユーザーであれば、トリガーを起動できます。同様に、プロシージャー (ユーザー定義関数を含む) はプロシージャーの所有者のパーミッションにより実行されますが、パーミッションを与えられたユーザーはプロシージャーを呼び出すことができます。つまり、プロシージャーとトリガーのパーミッションはそれらを起動するユーザーが持つパーミッションと異なる可能性があります。