SQL デベロッパー向けの Firebase Realtime Database(動画シリーズ)
SQL データベースと Firebase Database
この最初の動画では、従来の SQL データベースにデータを格納する方法と、Realtime Database のような NoSQL データベースにデータを格納する方法の主な違いについて説明します。
SQL 構造から Firebase 構造への変換
この動画では、SQL データベースで一般的なリレーショナル データベース モデルを取り上げ、このモデルを Firebase Realtime Database で適切に動作する NoSQL モデルに変換します。
Firebase Database のクエリの基礎
NoSQL データベースへのクエリは、従来の SQL データベースへのクエリほど強力であるとは言えません。しかし、データを正しく構成すれば、実現できることはまだたくさんあります。この動画では、基本的なクエリと、Realtime Database における動作を見ていきます。
Firebase Database 用に変換された一般的な SQL クエリ
この動画では、まず一般的な SQL クエリを 8 つ取り上げ、Realtime Database で動作するクエリに 1 つずつ変換します。身につけた理論的な知識を実践に移しましょう。
Firebase Database での結合
Realtime Database には特定のデータを結合する方法はありませんが、ある場所からデータを取り込み、別の場所にある関連データと結合することはできます。このレッスンでは、その方法を説明します。
Realtime Database では非正規化が通常の設定です
非正規化は、クエリを減らしたり単純化したりするためにデータを複製する処理です。SQL の背景知識をお持ちの方には奇妙に思われるかもしれませんが、NoSQL データベースでは一般的な手法であり、読み取り効率が高くなり、作業が大幅に楽になります。このレッスンでは、データを非正規化する利点と取り組み方法について説明します。
マルチパスの更新によるデータ整合性
非正規化は読み取りとクエリのパフォーマンスを向上させるのに最適ですが、データ整合性が犠牲になります。ただしマルチパスの更新により、非正規化されたデータの整合性を保つことができます。この動画では、検索パスを使用して複数の場所にデータをコピーし、そのすべての整合性を保つ方法について説明します。
セキュリティ ルールによるデータ構造の保護
Realtime Database はスキーマレスではありますが、データ構造を保護できないわけではありません。Realtime Database ではスキーマの代わりに、セキュリティ ルールと呼ばれる宣言型サーバーサイド ルール言語を使用します。この動画では、セキュリティ ルールを使用してデータ構造を保護し、外部キーのような構造を作成する方法について説明します。