データベース
ストアドプロシージャの説明として適切なものはどれか。
ア.ストアドプロシージャはクライアント側で実行されるSQL文の集合であり、ネットワーク経由でサーバに順次送信して実行する。
イ.ストアドプロシージャはデータベースサーバ内に保存された名前付きSQL処理の集合であり、呼び出し時にサーバ側で実行される。正解
ウ.ストアドプロシージャはデータベースの特定の操作(INSERT/UPDATE/DELETE)が実行された際に自動的に起動する仕組みである。
エ.ストアドプロシージャはデータベースのバックアップと復元の自動化専用に設計された機能であり、通常の業務処理には使用できない。
解説
ストアドプロシージャは「レストランの定番メニュー」のようなもの。「ランチBセット(プロシージャ名)」と言うだけで、厨房(DBサーバ)側が全部準備してくれる。一から「ごはん、味噌汁、おかず...」と全部注文しなくていいので効率的です。
なぜ イ が正解か
ストアドプロシージャはDBMSサーバ内に保存されたSQL文の集合です(コンパイル済みの実行計画として保持するかはDBMSの実装に依存します)。メリット:①実行時のネットワーク通信量削減(呼び出し一回で複数SQLを実行)、②事前コンパイルに対応するDBMSでは実行速度向上、③ビジネスロジックのDB側集約、④内部でパラメータ化されていればSQLインジェクション対策にもなります。イが正解です。
出典: AI生成問題(学習用)
この分野の解説記事
SQLは3つの単語から — データベース分野の最短路