SQL デベロッパーのための Firebase Realtime Database(動画シリーズ)

Realtime Database に興味があり、従来の SQL に関する背景知識をお持ちの方には、Firebase YouTube チャンネルの動画シリーズをおすすめします。

この最初の動画では、従来の SQL データベースにデータを格納する方法と、Realtime Database のような NoSQL データベースにデータを格納する方法の主な違いについて説明します。

この動画では、SQL データベースで一般的なリレーショナル データベース モデルを取り上げ、それを Firebase Realtime Database でうまく動作する NoSQL モデルに変換します。

NoSQL データベースへのクエリは、従来の SQL データベースへのクエリほど強力であるとは言えません。しかし、データを正しく構成すれば、実現できることはまだたくさんあります。この動画では、基本的なクエリと、Realtime Database における動作を見ていきます。

この動画では、一般的な SQL クエリを 8 つ取り上げ、Realtime Database で動作するクエリに 1 つずつ変換します。身につけた理論的な知識を実践に移しましょう。

Realtime Database には特定のデータを結合する方法はありませんが、ある場所からデータを取り込み、別の場所にある関連データと結合することはできます。このレッスンでは、その方法を説明します。

非正規化は、クエリを減らしたり単純化したりするためにデータを複製する処理です。SQL の背景知識をお持ちの方には奇妙に思われるかもしれませんが、NoSQL データベースでは一般的な手法であり、読み取り効率が高くなり、作業が大幅に楽になります。このレッスンでは、データを非正規化する利点と取り組み方法について説明します。

非正規化は読み取りとクエリのパフォーマンスを向上させるのに最適ですが、データ整合性が犠牲になります。ただしマルチパスの更新により、非正規化されたデータの整合性を保つことができます。この動画では、検索パスを使用して複数の場所にデータをコピーし、そのすべての整合性を保つ方法について説明します。

Realtime Database はスキーマレスではありますが、データ構造を保護できないわけではありません。Realtime Database ではスキーマの代わりにセキュリティ ルールと呼ばれる宣言型サーバーサイド ルール言語を使用します。この動画では、セキュリティ ルールを使用してデータ構造を保護し、外部キーのような構造を作成する方法について説明します。