応用情報技術者 2023年 春期 午前2 問27
問題文
クライアントサーバシステムにおけるストアドプロシージャの記述として、誤っているものはどれか。
選択肢
ア:アプリケーションから一つずつSQL文を送信する必要がなくなる。
イ:クライアント側のCALL文によって実行される。
ウ:サーバとクライアントの間での通信トラフィックを軽減することができる。
エ:データの変更を行うときに、あらかじめDBMSに定義しておいた処理を自動的に起動実行するものである。(正解)
クライアントサーバシステムにおけるストアドプロシージャの記述【午前2 解説】
要点まとめ
- 結論:ストアドプロシージャはクライアントのCALL文で実行され、通信負荷軽減やSQL文の一括処理が可能だが、自動起動はトリガーの役割である。
- 根拠:ストアドプロシージャはDBMS内に保存され、必要に応じて明示的に呼び出すものであり、自動実行はトリガーが担当する。
- 差がつくポイント:ストアドプロシージャとトリガーの違いを正確に理解し、用途や実行タイミングを区別できるかが重要。
正解の理由
選択肢エは「データの変更時に自動的に起動実行する」とありますが、これはストアドプロシージャの特徴ではなくトリガーの機能です。ストアドプロシージャは明示的に呼び出されるものであり、自動実行は行いません。したがって、エが誤りです。
よくある誤解
ストアドプロシージャとトリガーを混同し、どちらも自動実行されると思い込むことがあります。実際にはトリガーのみが特定のイベントで自動的に起動します。
解法ステップ
- ストアドプロシージャの定義と役割を確認する。
- 各選択肢がストアドプロシージャの特徴に合致するか検証する。
- 自動実行の有無に注目し、ストアドプロシージャとトリガーの違いを思い出す。
- 自動実行を誤って説明している選択肢を特定する。
- 正解として誤った記述の選択肢を選ぶ。
選択肢別の誤答解説
- ア: 正しい。ストアドプロシージャにより複数のSQL文をまとめて実行でき、クライアントからの個別送信が不要になる。
- イ: 正しい。クライアントはCALL文でストアドプロシージャを呼び出し、サーバ側で処理が行われる。
- ウ: 正しい。複数のSQL文をまとめて処理するため、クライアントとサーバ間の通信量が減少する。
- エ: 誤り。データ変更時に自動的に起動するのはトリガーであり、ストアドプロシージャは明示的に呼び出す必要がある。
補足コラム
ストアドプロシージャはデータベース内に保存される一連のSQL文や制御構造を持つプログラムで、パフォーマンス向上や保守性の向上に寄与します。一方、トリガーはINSERT、UPDATE、DELETEなどの特定のイベント発生時に自動的に実行されるため、データ整合性の維持や監査に利用されます。
FAQ
Q: ストアドプロシージャはどのように実行されますか?
A: クライアントからCALL文で明示的に呼び出され、サーバ側で処理が行われます。
A: クライアントからCALL文で明示的に呼び出され、サーバ側で処理が行われます。
Q: トリガーとストアドプロシージャの違いは何ですか?
A: トリガーは特定のデータ操作イベントで自動実行され、ストアドプロシージャは明示的に呼び出す必要があります。
A: トリガーは特定のデータ操作イベントで自動実行され、ストアドプロシージャは明示的に呼び出す必要があります。
関連キーワード: ストアドプロシージャ、トリガー、クライアントサーバシステム、SQL, DBMS, 通信トラフィック

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

