NoSQLとは

非リレーショナルデータベースの総称. No SQL.

それぞれの設計思想があるが, だいたい以下の4つに分類できる.

  • 列ファミリー
  • ドキュメント
    • Firestore
  • Key-Value
  • グラフ

NoSQLの特徴

スキーマレスDB

スキーマが必要ではないデータベース. 暗黙スキーマ.

投入したデータに合わせてデータカラム(フィールド)の形式を自由に変更できる. データを投入する前のスキーマ設計に関わる手間を減らすことが可能.

Application Side Join

Application Side Join, またはClient Side Joinともいう.

JoinはNoSQLではほとんどサポートされない. そのため2つの集合のデータはアプリケーションて行う.

ドキュメントデータベース

ref: Cloud Firestore の使用経験がないユーザー向けの Firestore の説明 | Google Cloud Blog

NoSQLのDB設計

NoSQLデータモデリング技法

💡Application Side(Client Side) Join vs 冗長化モデリング

複数のコレクションの情報を元にデータを処理したい場合, Firestoreではクライアントから2つのクエリでデータを取得して処理する方法が考えられる. RDBのようにサーバ側でSQLの中でマージ処理ができないので.

または別の考え方で1つのコレクションにデータの冗長を許して別のコレクションの情報を予めいれておき1回のreadで読むという冗長化の考え方がある. これはアプリケーションのユースケースに大きく依存する.


cf. 🔖RDB