QUIZ 30分

合格基準

8問中7問正解(80%以上)で合格


Q1: NoSQLのカテゴリ

MongoDBが属するNoSQLのカテゴリはどれか?

  • A) Key-Value Store
  • B) Document Store
  • C) Column-Family Store
  • D) Graph Database
回答と解説

正解: B

MongoDBはDocument Store(ドキュメントデータベース)に分類される。JSONライクなBSONドキュメントでデータを格納し、柔軟なスキーマとリッチなクエリ機能を提供する。


Q2: MongoDBのモデリング

MongoDBで「ユーザーと住所」の関係を設計する際、住所を埋め込む(Embedding)のが適切なケースはどれか?

  • A) 1ユーザーが1万件の住所を持つ
  • B) 住所が頻繁に独立して更新される
  • C) 1ユーザーが2-3件の住所を持ち、常に一緒に取得する
  • D) 住所データを複数ユーザーで共有する
回答と解説

正解: C

埋め込みは「常に一緒に取得するデータ」「1対少数の関係」「データサイズが小さい」場合に適切。1ユーザーが2-3件の住所を持ち、ユーザー情報と一緒に取得するケースは埋め込みの典型的なパターン。


Q3: Redisのデータ構造

リアルタイムランキング機能を実装するのに最適なRedisのデータ構造はどれか?

  • A) String
  • B) Hash
  • C) List
  • D) Sorted Set
回答と解説

正解: D

Sorted Setはスコア付きの順序付き集合。ZADDでスコア設定、ZREVRANGEでスコア順の取得、ZRANKで順位の取得が効率的にできる。ランキング機能に最適なデータ構造。


Q4: CAP定理

CAP定理において、分散システムで同時に保証できないのはどれか?

  • A) 一貫性と可用性と分断耐性のすべて
  • B) 一貫性と可用性の両方のみ
  • C) 可用性と分断耐性の両方のみ
  • D) 一貫性と分断耐性の両方のみ
回答と解説

正解: A

CAP定理は、分散システムにおいてConsistency(一貫性)、Availability(可用性)、Partition Tolerance(分断耐性)の3つすべてを同時に保証することはできないという理論。実際にはネットワーク分断は避けられないため、CPかAPの選択になる。


Q5: Redisのキャッシュパターン

Cache-Asideパターンの正しい流れはどれか?

  • A) DB更新 → キャッシュ更新 → レスポンス
  • B) キャッシュ確認 → ミスならDB取得 → キャッシュ格納 → レスポンス
  • C) キャッシュに常時書き込み → DBは非同期で同期
  • D) DB取得 → 常にキャッシュを無視
回答と解説

正解: B

Cache-Aside(Lazy Loading)パターンは、まずキャッシュを確認し、ヒットすればそのまま返却。ミスした場合にDBから取得し、結果をキャッシュに格納してからレスポンスを返す。最も一般的なキャッシュパターン。


Q6: RDB vs NoSQL

以下のうち、RDBが最も適しているユースケースはどれか?

  • A) IoTセンサーの大量時系列データ
  • B) SNSのフォロー関係の探索
  • C) 銀行の口座間送金処理
  • D) CMSの柔軟なコンテンツ管理
回答と解説

正解: C

銀行の送金処理はACIDトランザクションが絶対に必要。残高の一貫性を保証し、中途半端な状態(片方だけ引き落とされた等)を許さない。RDBのトランザクション機能が最適。


Q7: Redisの分散ロック

Redis で分散ロックを実装する際、SET コマンドに使うオプションの組み合わせとして正しいものはどれか?

  • A) SET key value EX ttl XX(キーが存在する場合のみ)
  • B) SET key value EX ttl NX(キーが存在しない場合のみ)
  • C) SET key value PX ttl(ミリ秒TTLのみ)
  • D) SETNX key value(TTLなし)
回答と解説

正解: B

分散ロックは SET key value EX ttl NX を使う。NX(Not eXists)でキーが存在しない場合のみ設定し、EXでTTLを設定してデッドロックを防ぐ。XXだと既存のロックを上書きしてしまい、SETNXのみだとTTLがないためデッドロックの危険がある。


Q8: ポリグロットパーシステンス

ポリグロットパーシステンスの説明として正しいものはどれか?

  • A) 1つのデータベースで全データを管理する設計
  • B) データの特性に応じて複数のデータストアを組み合わせる設計
  • C) すべてのデータをNoSQLに移行する設計
  • D) データベースを使わずファイルシステムで管理する設計
回答と解説

正解: B

ポリグロットパーシステンスは、データの特性に応じて最適なデータストアを選択し、複数を組み合わせる設計思想。例えば商品カタログにMongoDB、決済にPostgreSQL、キャッシュにRedisなど、適材適所でストアを使い分ける。


結果

合格(7問以上正解)

NoSQLの世界をしっかり理解しています。Step 4「トランザクションとデータ整合性」に進みましょう。

不合格(6問以下)

Step 3 のレッスンを復習してから再挑戦してください。特に以下を重点的に:

  • NoSQLの4カテゴリの特性
  • MongoDBの埋め込み vs 参照の判断基準
  • Redisのデータ構造と活用パターン

推定所要時間: 30分