1. NoSQL入門 MOC

2. NoSQLデータベースの種類 (データモデルによる分類) MOC

  • キーバリューストア (Key-Value Stores) MOC
    • [[キーバリューストアのデータモデル (単純なキーと値のペア)]]
    • [[キーバリューストアの特性 (シンプル、高速、高いスケーラビリティ)]]
    • [[主な操作 (Get, Put, Delete)]]
    • [[ユースケース (キャッシュ、セッション管理、設定情報保存)]]
    • [[代表的な製品 (Redis, Amazon DynamoDB, Riak)]]
  • ドキュメントデータベース (Document Databases) MOC
    • [[ドキュメントデータベースのデータモデル (JSON/BSON形式のドキュメント)]]
    • [[ドキュメントの構造 (ネストされたオブジェクト、配列)]]
    • [[ドキュメントデータベースの特性 (柔軟なスキーマ、豊富なクエリ機能)]]
    • [[クエリ言語 (ドキュメント内のフィールドに対するクエリ)]]
    • [[ユースケース (Webアプリケーション、コンテンツ管理、プロファイリング)]]
    • [[代表的な製品 (MongoDB, Couchbase, Amazon DocumentDB)]]
  • Wide-Column Stores) MOC
    • [[カラム指向データベースのデータモデル (行キー、カラムファミリ、カラム)]]
    • [[カラム指向データベースの特性 (大量書き込み、高いスケーラビリティ、疎なデータ)]]
    • [[データ配置 (列指向ストレージとの違い)]]
    • [[ユースケース (大規模時系列データ、IoT、ログ分析)]]
    • [[代表的な製品 (Apache Cassandra, HBase, Google Cloud Bigtable)]]
  • グラフデータベース (Graph Databases) MOC
    • [[グラフデータベースのデータモデル (ノード、エッジ、プロパティ)]]
    • [[グラフデータベースの特性 (リレーションシップの高速なトラバース)]]
    • [[クエリ言語 (Cypher, Gremlinなど)]]
    • [[ユースケース (ソーシャルネットワーク、推薦エンジン、不正検知、ナレッジグラフ)]]
    • [[代表的な製品 (Neo4j, Amazon Neptune, JanusGraph)]]
  • (オプション) 時系列データベース (Time-Series Databases) (InfluxDB, Prometheus)
  • (オプション) 検索エンジンデータベース (Search Engine Databases) (Elasticsearch, Apache Solr)

3. MongoDB MOC (ドキュメントデータベース)

3.1. MongoDB入門 MOC

  • [[MongoDBの概要と特徴 (柔軟なドキュメントモデル、高いスケーラビリティ、豊富なクエリ)]]
  • MongoDBのデータモデル
    • [[BSON (Binary JSON) フォーマット]]
    • [[データベース (Database), コレクション (Collection), ドキュメント (Document)]]
    • [[ドキュメント内の埋め込みドキュメントと配列]]
    • [[_idフィールドとObjectId]]

3.2. MongoDBのクエリとデータ操作 MOC

  • MongoDB Query Language (MQL)
  • インデックス (Indexes) MOC
    • [[インデックスの役割と重要性]]
    • [[シングルフィールドインデックス]]
    • [[複合インデックス (Compound Index)]]
    • [[マルチキーインデックス (Multikey Index)]] (配列フィールド)
    • [[テキストインデックス (Text Index)]] (全文検索)
    • [[地理空間インデックス (Geospatial Index)]]
    • [[インデックスの作成と管理 (createIndex, getIndexes)]]
    • [[クエリの実行計画 (explain())]]
  • 集計フレームワーク (Aggregation Framework) MOC
    • [[集計パイプラインの概念]]
    • [[主要なステージ (group, sort, unwind, $lookup)]]
    • [[集計演算子 (avg, min, $pushなど)]]

3.3. MongoDBのアーキテクチャと運用 MOC

4. Apache Cassandra MOC (カラム指向データベース)

4.1. Cassandra入門 MOC

  • [[Cassandraの概要と特徴 (分散型、高い可用性と耐障害性、線形スケーラビリティ、チューニング可能な一貫性)]]
  • Cassandraのアーキテクチャ MOC
    • [[分散リング構造とノード]]
    • [[ゴシッププロトコル (Gossip Protocol)]] (ノード間通信)
    • [[スニッチ (Snitch)]] (トポロジ認識)
    • [[レプリケーション戦略 (Replication Strategy)]] (SimpleStrategy, NetworkTopologyStrategy)
    • [[パーティショナ (Partitioner)]] (データの分散方法)
    • [[マスターレスアーキテクチャ (リーダーなし)]]

4.2. CassandraのデータモデルとCQL MOC

4.3. Cassandraの内部動作と運用 MOC

5. Redis MOC (キーバリューストア / インメモリデータ構造サーバー)

5.1. Redis入門 MOC

  • [[Redisの概要と特徴 (インメモリ、高速、豊富なデータ構造、単一スレッド)]]
  • Redisの主要なユースケース MOC
    • [[キャッシュ (Caching)]]
    • [[セッションストア (Session Store)]]
    • [[メッセージブローカー (Message Broker) / Pub/Sub]]
    • [[リアルタイム分析 (カウンター, ランキング)]]
    • [[キュー (Queue)]]
    • [[分散ロック (Distributed Lock)]]

5.2. Redisのデータ構造 MOC

  • Strings (文字列、数値、ビットマップ)
  • Lists (両端キュー、スタック)
  • Hashes (オブジェクトのフィールド格納)
  • Sets (一意な要素の集合)
  • Sorted Sets (スコア付きのソートされた集合、ランキングやリーダーボードに利用)
  • Streams (ログ形式のデータ構造、Kafkaライク)
  • HyperLogLogs (巨大な集合の濃度を推定)
  • Geospatial Indexes (地理空間データ)
  • [[各データ構造の主要コマンド]]

5.3. Redisの機能と運用 MOC

6. NoSQLデータモデリング MOC

7. NoSQLデータベースの選択と利用 MOC

  • プロジェクト要件に基づくデータベース選択
    • [[データモデルの適合性]]
    • [[読み書きのパターンとパフォーマンス要件]]
    • [[一貫性の要件 (強整合性 vs. 結果整合性)]]
    • [[スケーラビリティと可用性の要件]]
    • [[運用コストとチームのスキルセット]]
  • ポリグロットパーシステンス (Polyglot Persistence) MOC
    • [[複数のデータベースを適材適所で使い分けるアプローチ]]
    • [[マイクロサービスアーキテクチャとポリグロットパーシステンス]]
  • NoSQLデータベースの移行戦略
  • NoSQLデータベースの監視とチューニング

8. NoSQLの将来とトレンド MOC