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設計
💡Application Side(Client Side) Join vs 冗長化モデリング
複数のコレクションの情報を元にデータを処理したい場合, Firestoreではクライアントから2つのクエリでデータを取得して処理する方法が考えられる. RDBのようにサーバ側でSQLの中でマージ処理ができないので.
または別の考え方で1つのコレクションにデータの冗長を許して別のコレクションの情報を予めいれておき1回のreadで読むという冗長化の考え方がある. これはアプリケーションのユースケースに大きく依存する.
Related
cf. 🔖RDB