DBデータベーススペシャリスト試験 午前Ⅱ

令和6年度秋期 データベーススペシャリスト 午前Ⅱ 問2

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

クライアントサーバシステムにおけるストアドプロシージャに関する記述のうち,適切でないものはどれか。

選択肢

  1. ア
    機密性が高いデータに対する処理を特定のプロシージャ呼出しに限定することによって,セキュリティを向上させることができる。
  2. イ
    システム全体に共通な処理をプロシージャとして格納しておくことによって,処理の標準化を行うことができる。
  3. ウ
    データベースへのアクセスを細かい単位でプロシージャ化することによって,処理性能(スループット)を向上させることができる。
  4. エ
    複数のSQL文から成る手続を1回のプロシージャ呼出しで実行することによって,クライアントとサーバの間の通信回数を減らすことができる。
解き方のヒントを見る

ストアドプロシージャの役割を見極める視点

この問題では、ストアドプロシージャがクライアントサーバシステムのどの処理を担い、処理の配置や通信との関係にどんな影響を与えるかという観点に絞って、各記述の説明対象を読み分けてください。

この問題で問われていること

確認の中心は、記述がストアドプロシージャそのものの役割を述べているのか、それともクライアント側・サーバ側の別の仕組みや一般的なデータベース機能を混同していないかを見分けることです。

視点

ストアドプロシージャは、データベースに関係する処理をひとまとまりの手続として扱う考え方です。検討時は、処理をどこに置くか、呼び出す側と実行する側を区別し、説明がその概念に対応しているかを整理します。

確認ポイント

  • 処理の実行場所を説明しているか確認する
  • クライアントとサーバの役割を区別する
  • 別のデータベース機能と混同していないか確認する
正解と解説を見る

正解

ウ

解説

不適切なのはウです。ストアドプロシージャにはアクセス制御、処理の標準化、通信回数削減などの効果がありますが、処理を細かく分割してプロシージャ化すれば、常にスループットが向上するとは限りません。

理由

ストアドプロシージャは、データベース内の処理を呼び出し単位にまとめることで、権限を限定したり、共通処理を標準化したりできます。また、複数のSQL文をまとめて実行すれば、通信回数の削減にもつながります。

比較

一方、プロシージャを細かい単位に分けること自体が、処理性能やスループットの向上を保証するわけではありません。呼出し回数や処理内容、データ量などによって性能は変化するため、ウの記述が不適切です。

選択肢ア

これは不正解だよ。機密性の高いデータに対する操作を特定のストアドプロシージャ経由に限定し、利用者に直接の表アクセス権を与えない構成にすれば、実行可能な処理や対象データを制御できるため、セキュリティ向上につながる。

選択肢イ

これは不正解だよ。システム全体で共通して利用する処理をストアドプロシージャとしてデータベース側に一元化すると、各クライアントが個別に処理を実装する必要がなくなり、処理内容や手順の標準化を図ることができる。

選択肢ウ(正解)

これは正解だよ。データベースへのアクセスを細かい単位でプロシージャ化しても、呼出し回数や処理の分割によって通信や管理の負担が増える場合があり、処理性能(スループット)の向上を一律に保証できないため、不適切な記述である。

選択肢エ

これは不正解だよ。複数のSQL文から成る手続をデータベース側のストアドプロシージャにまとめれば、クライアントは一度の呼出しで処理を依頼できる。その結果、SQL文ごとに送受信する場合と比べて通信回数を減らせる。

学習のポイント

安全性や再利用性と、処理性能への影響を区別して理解する。

出典:独立行政法人 情報処理推進機構(IPA)令和6年度秋期 データベーススペシャリスト試験 午前Ⅱ 問2(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針