基本情報

基本情報 平成25年度 秋期 問28|テクノロジ系に関する問題

問題

基本情報 | 平成25年度 秋期 | 分野:テクノロジ系

クライアントサーバシステムにおいて,利用頻度の高い命令群をあらかじめサーバ上のDBMSに用意しておくことによって,データベースアクセスのネットワーク負荷を軽減する仕組みはどれか。

キーボード:1〜4で選択・Enterで次へ

タップするとすぐ答え合わせ

答え合わせ

正解は D
  • A
  • B
  • C
  • D

自信の3択

えらぶと、この端末に記録します(登録はいりません)

解説

答えは d「ストアドプロシージャ」 です。

クライアント(PC)からサーバ(データベース)に「これやって、次はこれ」と毎回個別命令を送ると通信回数が増えて遅くなります。そこで、よく使う命令のセットをサーバ側に保存しておく仕組みがストアドプロシージャ。

たとえばよく使う計算をマクロにしてExcelに保存しておき、ボタン一押しで実行するイメージ。

👉 覚え方:「ストアド=Stored=保存済みの処理。サーバ側で実行」。

ほかの選択肢:a 2相コミットは分散DBの整合性/b グループコミットは複数の更新を一括/c マルチスレッド化は処理の並列化。

なぜこれが正解か

正解は d。ストアドプロシージャは、複数のSQL文や処理ロジックをDBMS上に事前登録しておく機能。クライアントは1つの呼び出しで複数処理を実行できるため、SQL文ごとの通信が不要となりネットワーク負荷を軽減できる。

各選択肢の解説

  • a 2相コミット:分散トランザクションでの整合性保証技法(複数DBに対する一貫したコミット)。
  • b グループコミット:複数トランザクションのコミット処理をまとめて実行しディスクI/Oを削減する技法。
  • c マルチスレッド化:サーバプロセスを複数スレッドで並列処理する技法(スループット向上)。
  • d ストアドプロシージャ:サーバ側に処理を保存しネットワーク負荷軽減。

覚え方・ひっかけ注意

「ストアドプロシージャ=サーバ側に保存された手続き=呼び出し1回で複数処理」。利点は (1)ネットワーク負荷軽減、(2)処理高速化(プリコンパイル)、(3)セキュリティ(直接SQL公開不要)、(4)ロジック集約。欠点はDBMS依存(移行困難)。トリガー(自動実行)、ストアドファンクション(戻り値あり)と区別すること。

理論的背景

ストアドプロシージャはRDBMS内に格納される手続き型コードで、SQL拡張言語(Oracle PL/SQL、SQL Server T-SQL、PostgreSQL PL/pgSQL、MySQL Stored Procedure)で記述される。事前にDBMS内部表現にコンパイル/解析されるため実行効率が高く、ネットワーク往復削減でレイテンシ短縮効果が大きい。関連機能として ストアドファンクション(戻り値あり、SELECT文中で利用可)、トリガー(INSERT/UPDATE/DELETEイベントで自動起動)、パッケージ(複数プロシージャをまとめる、Oracle PL/SQL)がある。

実務での使われ方

金融機関・大規模基幹系で長年活用されてきた中核技術。バッチ処理、複雑なビジネスロジック、トランザクション境界制御を一元化。マイクロサービス時代は ストアドプロシージャ批判(DBMS依存・テスト困難・スケール難)も強まり、ビジネスロジックをアプリケーション層に移す設計が主流化。それでもデータ整合性が最優先される領域(会計・在庫・決済)では現役技術。NoSQL/分散DBでは類似機能として MongoDBのAggregation Pipeline、Cassandraのユーザ定義関数、Redis Luaスクリプト等が用意される。

試験での位置づけ

FE・APデータベース分野で頻出。SQL基礎、トランザクション制御、分散DB、レプリケーション、データベースチューニングと併せて押さえる。応用情報・データベーススペシャリストでは具体的なPL/SQL・T-SQL構文、カーソル処理、例外処理、トランザクション分離レベルまで踏み込む。

選択肢の発展補足

2相コミット(a:2PC, Two-Phase Commit)は分散トランザクションの古典プロトコルで、準備フェーズ(PREPARE)→ コミットフェーズ(COMMIT)の2段階で全ノードの合意を取る。XA仕様(X/Open)が標準だが、ブロッキングと単一障害点が課題で、近年はSagaパターン(補償トランザクション)や結果整合性(Eventual Consistency)が代替手法として採用される。グループコミット(b)はWAL(Write-Ahead Logging)の書き込みを集約してディスクI/Oを削減する技法でPostgreSQL/MySQLで実装済み。マルチスレッド化(c)はOracle MTS(Multi-Threaded Server)が古典例で、コネクションプールと組み合わせ多数クライアント対応の標準アーキテクチャ。

この問題の根拠出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成25年度 秋期 問28
訂正の記録この問題の訂正はありません(サイト全体の記録)
出典と作り方

出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成25年度 秋期 問28/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビ独自の3段階の解説(初級・標準・上級)です。