戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

基本情報技術者 2019年 春期 午前(科目A)30


問題文

ビッグデータの処理で使われるキーバリューストアの説明として、適切なものはどれか。

選択肢

“ノード”、“リレーションシップ”、“プロパティ”の3要素によってノード間の関係性を表現する。
1件分のデータを“ドキュメント”と呼び、個々のドキュメントのデータ構造は自由であって、データを追加する都度変えることができる。
集合論に基づいて、行と列から成る2次元の表で表現する。
任意の保存したいデータと、そのデータを一意に識別できる値を組みとして保存する。(正解)

🔒 解説は解答すると表示されます

キーバリューストア【午前解説】

正解の理由

選択肢の中で、キーとそれに対応する値を「組」として保存する説明が該当するため、正解は です。
キーバリューストアは「キーで一意に識別されたエントリ(値)を格納」するモデルであり、値の構造に制約がなくバイナリデータやシリアライズ済みオブジェクトも扱えます。これにより高速な読み書きとスケールアウトが可能となり、ビッグデータ用途で採用されます。

解法ステップ

  1. 問題文で注目すべきキーワードを探す:「キー」「値」「一意識別」などの語句を確認します。
  2. 各選択肢をDBモデルの特徴に照らし合わせる:グラフ/ドキュメント/リレーショナル/キー・バリューそれぞれの代表的記述を思い出します。
  3. 最も単純に「キーと値の組で保存」と説明している選択肢を選ぶ:それがキーバリューストアの本質です。
  4. 迷ったら「クエリの柔軟性(スキーマ)」「主要要素(ノード等)」で除外していきます。

選択肢別の誤答解説

  • ア: “ノード”、“リレーションシップ”、“プロパティ”の3要素によってノード間の関係性を表現する。
    → これはグラフデータベース(例:Neo4j)の特徴で、キーバリューストアとは異なります。グラフは関係性の表現と経路探索が得意です。
  • イ: 1件分のデータを“ドキュメント”と呼び、個々のドキュメントのデータ構造は自由であって、データを追加する都度変えることができる。
    → これはドキュメント指向データベース(例:MongoDB、CouchDB)の説明で、KVより複雑な構造の文書データを格納・クエリできます。
  • ウ: 集合論に基づいて、行と列から成る2次元の表で表現する。
    → これはリレーショナルデータベース(RDBMS)の説明です。行列構造や正規化・関係演算が特徴でKVとは設計思想が異なります。
  • : 任意の保存したいデータと、そのデータを一意に識別できる値を組みとして保存する。
    → 正解。キー(識別子)と値(任意データ)をペアで保存するという定義はキーバリューストアそのものです。

よくある誤解

  • 「ドキュメントとキーバリューは同じ」と考える誤解:両者は近いがドキュメントは構造化(JSONなど)でクエリが可能、KVは単純なキー参照が中心です。
  • 「グラフDBの要素説明を見てキーバリューと思う」:ノード・リレーションシップ・プロパティはグラフDB固有の概念で、KVとは別物です。
  • 「RDBの表(行列)形式がキーバリューだ」と混同する:行と列の2次元表はリレーショナルや列指向データベースの説明です。

補足コラム

  • 代表的なキーバリューストアには Redis、Memcached(インメモリ)、Amazon DynamoDB、Riak などがあり、用途に応じて永続化や分散特性を選べます。
  • KVの利点:シンプルなAPI(get/put/delete)による高速アクセス、水平スケール、柔軟な値の取り扱い。短所:複雑な検索や結合、部分的なフィールド検索は苦手で、キー以外でのクエリが必要なら別のDBが向きます。
  • 実用例:セッションストア、キャッシュ、構成情報の保存、インデックスや簡易データの高速参照などに適しています。
コード例(Pythonの辞書でKVイメージ):
# 簡単なキーバリューストアのイメージ
kv_store = {}
# 保存
kv_store["user:1001"] = {"name":"山田太郎", "age":30}
# 取得
user = kv_store.get("user:1001")
print(user)  # {'name': '山田太郎', 'age': 30}
# 削除
kv_store.pop("user:1001", None)

FAQ

Q1: キーバリューストアとドキュメントDBはどう使い分けますか?
A1: キーで高速参照が主目的ならKV、JSONのフィールド単位で検索や部分更新を多用するならドキュメントDBが向きます。
Q2: キーバリューストアはトランザクションをサポートしますか?
A2: 実装によります。Redisは単一コマンド原子性やトランザクション機能(MULTI/EXEC)を持ちますが、分散トランザクションの保証はDBごとに異なります。
Q3: 大量データの集計はKVでやるべきですか?
A3: 単純集計やキーごとの集計は可能ですが、複雑な分析や結合処理は列指向DBやデータウェアハウス、分散処理フレームワークが適しています。

関連キーワード: キーバリューストア、キー・バリュー、NoSQL、Redis、DynamoDB、ドキュメント指向DB、グラフDB、列指向DB、スケーラビリティ、CAP定理、キャッシュ、データモデリング
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

基本情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について