メインコンテンツへ
データベースストアドプロシージャ

ストアドプロシージャの説明として適切なものはどれか。

ア.ストアドプロシージャはクライアント側で実行されるSQL文の集合であり、ネットワーク経由でサーバに順次送信して実行する。
イ.ストアドプロシージャはデータベースサーバ内に保存された名前付きSQL処理の集合であり、呼び出し時にサーバ側で実行される。正解
ウ.ストアドプロシージャはデータベースの特定の操作(INSERT/UPDATE/DELETE)が実行された際に自動的に起動する仕組みである。
エ.ストアドプロシージャはデータベースのバックアップと復元の自動化専用に設計された機能であり、通常の業務処理には使用できない。

解説

ストアドプロシージャは「レストランの定番メニュー」のようなもの。「ランチBセット(プロシージャ名)」と言うだけで、厨房(DBサーバ)側が全部準備してくれる。一から「ごはん、味噌汁、おかず...」と全部注文しなくていいので効率的です。

なぜ イ が正解か

ストアドプロシージャはDBMSサーバ内にコンパイルされた状態で保存されたSQL文の集合です。メリット:①実行時のネットワーク通信量削減(呼び出し一回で複数SQLを実行)、②事前コンパイルによる実行速度向上、③ビジネスロジックのDB側集約、④SQLインジェクション対策。イが正解です。

なぜ ア は間違いか

ストアドプロシージャはクライアント側ではなくサーバ側(DBMS)で実行されます。クライアントは「プロシージャ名(引数)」を呼び出すだけです。

なぜ ウ は間違いか

これはトリガ(TRIGGER)の説明です。トリガはDML操作(INSERT/UPDATE/DELETE)の発生を契機に自動実行される処理です。ストアドプロシージャは明示的に呼び出す必要があります。

なぜ エ は間違いか

ストアドプロシージャはバックアップ専用ではありません。注文処理・在庫更新・帳票生成など一般的な業務処理に広く使用されます。

出典: AI生成問題(学習用)