5
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【swift4】Firebaseのデータベース「Firestore」の解説

Last updated at Posted at 2018-10-06

はじめに

どうも。とがみんです。

現在セブ島のNexSeedというプログラミングと英語を勉強できる学校で、ティーチングアシスタントとして、インターンしています。

生徒が作りたいアプリを開発するにあたって、つまりそうな点や必要な機能を先回りして実装して、ヒントをあげたり、授業として解説したりしています。

今回は、「Firebase」に関して調べたこと、また、そのサービスの一つである、「Firestore」について紹介しようと思います。

Firebaseとは

FirebaseとはGoogleが提供するサービスの一つで、iOSアプリ等のアプリケーションを作成する際に、主にユーザーから見えない処理をクラウド上で提供してくれるサービスです。

アプリを使う上で、ユーザーを識別するための「ユーザー認証機能」、あらゆる情報を保管しておく「データベース」、アプリユーザーに対して、様々な情報を送ることができる「プッシュ通知機能」がアプリを開発する上で、よく使う機能だと思います。

このFirebaseというサービスを使うことによって、上記のような、ユーザーから見えない処理を簡単に実装することができ、個人でわざわざサーバーのセットアップやメンテナンスをする必要がありません。

>Firebase

今回はFirebaseがもつ機能の中で、「Firestore」というデータベースについて書いて行こうかと思います。

Firestoreとは

Firestoreは、NoSQLドキュメント指向データベースです。これについて詳しく書いていきます。

1.SQLとNoSQLについて

そもそもSQLとは何か。SQLとは、Structured English Query Languageの略で、**RDB(Relational Database:リレーショナルデータベース)**を操作するための言語のことです。

RDBはデータを複数の表として管理し、表と表の間の関係を定義することで、複雑なデータの関連性を扱えるようにしています。

4.jpg

上記のような、表形式でまとめられたRDBを操作するための言語がSQLですが、この世の中には、全てのデータが表形式で保存することができるとは限りません。

表にしやすいデータであれば、RDBで効率良くデータを管理することができるのですが、表にしにくいデータも存在するわけで、

それらのデータを効率良く扱えるようにしようということで、NoSQLデータベースというものが出てきました。

NoSQLとはNot only SQLの略で、NoSQLデータベースとは非リレーショナルデータベースのことであり、RDBが持つ制限を緩和したものです。

このNoSQLのデータのモデルには大別して、

  • キー・バリュー型
  • カラム指向型
  • グラフ型
  • ドキュメント指向型

の4つの種類があり、Firestoreドキュメンと指向型のデータベースです。次にこのドキュメント指向型のデータベースについて詳しく書いていきます。

2.ドキュメント指向データベースとは

ドキュメント指向データベースとは、自由な形式のデータを保存することができるデータベースです。SQLデータベースと違って、テーブルや行はなく、代わりにデータは「ドキュメント」に格納され、それが「コレクション」にまとめられます。

イメージとしては、以下の図のように、「フォルダ」があって、その中に複数の「ファイル」があって、それぞれのファイルに、自由な形式で「データ」が保存されているようなイメージです。

Firebaseで使われている、ドキュメント指向データベースでは、この「フォルダ」に値するものを「コレクション」、ファイルに値するものを「ドキュメント」ファイルに書かれたものに値するものを「データ」と言います。

少し違う点としては、「フォルダ」の中には「フォルダ」を入れる事ができ、ファイルにはデータを書き込む事しかできませんが、

「コレクション」の中にはコレクションを持つことができず、また、ドキュメントは、データだけでなく、「コレクション」を持つことができます。

フォルダのイメージと、階層構造の作り方は少し違います。

5.jpg

3.ドキュメント型データベースとRDB(リレーショナルデータベース)の比較

違いは調べているとたくさん出てくるのですが、メインの違いだけ説明します。ドキュメント指向のデータベースでは、柔軟なデータ構造を扱えるのに対し、RDBはデータベースの要素が厳密に定義されているので、非構造化のデータを管理することが苦手です。

ドキュメント型データベース RDB(リレーショナルデータベース)
データモデル 柔軟。自由なデータ構造を扱える。 テーブル、行、列、インデックス、テーブル間の関係などのデータベースの要素が厳密に定義されている。非構造化データが苦手。

最後に

Firebaseというサービスで提供されているデータベースFirestoreについて説明しました。

Firestoreを使いこなす事ができるようになると、開発できるアプリの種類が一気に広がるので、iOSアプリエンジニアを目指す人にとっては、勉強必須の機能かと思います。

もし何か、不明点等あれば、教えていただけると幸いです。

このFirestoreを使って、簡単なToDoアプリを作ったので、それについて書いていこうかと思います。

また、以下は自分が運営している「とがみんブログ」です。

  • 時間、場所、お金に縛られない自由な生き方を目指した様々な経験

  • 就職活動の中で、自己分析に嵌り、脳科学や心理学の本を読み漁りアウトプットしたもの

  • 量子力学の考え方に基づいた、この世界の仕組み

と言った変な事を考えては、記事にして投稿しているので、よければこちらもブックマークお願いします(笑)。

>とがみんブログ

参考文献

5
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?