📝NoSQL
No SQL.
cf. 🏷RDB
NoSQLとは #
非リレーショナルデータベースの総称.
それぞれの設計思想があるが, だいたい以下の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で読むという冗長化の考え方がある. これはアプリケーションのユースケースに大きく依存する.