質問: プログラミングを始めて約半年の初心者です。 最初はiPhoneアプリ開発のためSwiftの文法を学び、続いてHTMLとCSS、さらにPHPの文法を学びました。 現在は教本にあるサンプルアプリを10個ほど作り終え、ようやくXcodeの使い方が身についてきたところです。 そこで次にiPhoneアプリとデータベースの連携を一度体験してみたいと思い**データベース**や**SQL**について調べたところ、それぞれの意味は **データベース** データを保存したりそのデータに対してクライアントから操作ができる場所。 **SQL** データベースの一種であるリレーショナルデータベースに対して操作するためのプログラミング言語。 と、このように理解しました。 しかし、iPhoneアプリとデータベース、SQLを繋げる道筋が分かりませんでした。 例えば *まずデータベースを手に入れ、次にXcodeでSQLと連携させる指示を出し、Xcodeの中にSQL(私はプログラミング言語と捉えています)でコードを書きデータベースを操作する。* このような理解がしたいです。(例は適当に考えました) また、 データベースやSQLには色々製品があるようでiPhoneアプリにはどのデータベースいいのか、、、 「SQLをインストール」などというがSQLはプログラミング言語なのでインストールする必要はないのではないか、、、 など基本的な構造や概念に対する疑問が多く、実際にアプリとデータベースを連携して行く際に何から手をつけて良いのか分かりません。 学習し始めたばかりで全く的外れなことを言っているかもしれませんが、丁寧に教えていただければ嬉しいです。
回答: 初心者ですので、間違っていたらすみません。 データベースにもリレーショナルデータベース(RDB)とNoSQLというものがあります。違いはググっていただきたのですが、RDBとしてはMySQLなど、NoSQLとしてはGoogleのFirebaseが挙げられると思います。 swift(view)側と、データベースを直接繋ぐというのは違うと思います。 アプリやwebページなどは、view -- server -- db という3つの要素の繋がりを持って構成されているので、サーバーを介在させなければ、viewとデータベースを繋げることはできません。 (僕のイメージでは、viewが黒板、データベースがプリントなどをしまっているファイル。サーバーが人間だと考えています。黒板とファイルだけを用意しても、実際にファイルからプリントを取り出して、黒板に貼り付けてくれる人間がいないと両者は機能しませんよね。) 多くの場合は、Ruby on RailsをつかってサーバーとAPIを構築し、iosやandroid側でそのAPIを叩くという方法が用いられていると思います。しかし、それは初学者にとっては非常にハードルが高いと思います。 そこで、サーバーとデータベースの役割をまるっと果たしてくれるFirebaseというものがあります。これを使えば、一からサーバーやAPIを作成する必要はなく、ドキュメントに従い、自らのプロジェクトに組み込むことで手軽に素早くアプリが作れると思います。 自分の知識を整理する意味も含めて回答させていただいたので、間違ったところがあればご指摘お願いしたいです。