スポンサーリンク

問題の解答・解説ページ

このページは解説の閲覧モードです。
実力試しをしたい方は、下のボタンからクイズに挑戦してください!

この問題をクイズ形式で解く
問題 No.4089
リレーショナルデータベースにおけるトリガー(Trigger)の説明として不適切なものはどれか。

【正解の解説】

トリガーは、表に対するデータ操作言語(DML)の実行とは独立してスケジュールされた日時になれば自動的に起動する。

トリガーとは日本語で「引き金」を意味します。銃の引き金を引くと弾が出るように、データベースへデータの追加や変更を行った「その瞬間」に連動して動くものであり、カレンダーのように「来週の何曜日に起動する」といった時間経過で動くものではありません。時間経過による自動実行は、一般的にジョブスケジューラなどの別の機能の役割となります。

スポンサーリンク

【その他の選択肢の解説】

トリガーは、表に対する特定のデータ操作言語(DML)が実行された際に関連する処理を自動的に連鎖実行する。

例えば、ECサイトで注文テーブルにデータが追加(INSERT)された瞬間に、在庫テーブルの数値を自動で減らすような処理を裏側で自動的に行うためにトリガーが使われます。人間がうっかり忘れてしまう関連データの更新をシステム側で確実に連鎖実行させるための非常に便利な仕組みとして、実際のシステム開発の現場でも広く活用されています。

トリガーは、データベースに対する権限変更やユーザ作成などの管理系イベントが発生した際にも自動的に起動する。

近年の高機能なデータベース管理システムでは、データの追加や変更といった通常の操作(DML)だけでなく、ユーザーの作成や権限の変更といった管理イベント(DDL)をきっかけにして起動するトリガーもサポートされています。そのため、管理系のイベントで起動すること自体はトリガーの説明として誤りではありません。

トリガーは、アプリケーションプログラムからの明示的な関数呼び出しによって任意のタイミングで手動実行される。

アプリケーションから関数やプロシージャのように「今からこのトリガーを実行してね」と名指しで呼び出すことはできません。トリガーはあくまでもデータベース内部で特定のイベントが起きたときに「勝手に裏で発動する」のが最大の特徴であり本質です。手動で呼び出す必要があるものは、通常はストアドファンクスやストアドプロシージャと呼ばれる別のプログラム部品になります。