どうも、つよぽん(@tsuyopon_xyz)です!
今回、こんな悩みを持っている方向けに「RDB入門講座」というものを作りました!
RDB入門講座の資料はメールで配布しているので、受け取りたい方は以下のボタンをクリックした先の入力フォームから受け取っていただけたらと思います。
RDB入門講座の紹介動画
入門講座で学ぶ内容は以下の動画で話しているので、興味のある方はまずはこちらの動画をご覧ください。(2分31秒の短い動画)
2024年3月5日現在、8章全ての資料が完成しています。
RDBとは?
RDBとは「リレーショナルデータベース(Relational DataBase)」の略で、エクセル・スプレッドシートのような表形式でデータを管理する場所と認識して問題ありません。
以下の2枚の画像はスプレッドシートでデータを管理している様子と、RDBでデータを管理している様子を表したものです。
RDBは厳格にデータ管理をしたり、効率的なデータ取得ができる
上の画像でも示したように、エクセル(スプレッドシート)とデータベースでは同じような形式でデータ管理をしていることがわかったかと思います。
ここで1つ以下の疑問が出てくるかもしれません。
RDBを使わずにスプレッドシートを使えば良くない?
実際のところ、アプリで使うデータがシンプルであれば、スプレッドシートを使ってデータ管理するのも選択肢の1つとして全然ありです。(スプレッドシートのAPIを使えば、プログラムを通してスプレッドシートにデータ保存・取得が可能)
ただ、それでも実務レベル(会社レベル)でアプリ開発をする際は、現実のところRDBを使うことが最も一般的です。
その理由としては、スプレッドシートに無くてRDBには有る機能がいろいろとあるからです。
その機能の一例として以下のようなものがあります。
- 型による厳格なデータ管理
- データが膨大になっても効率的に指定したデータを取得(インデックス)
- 別々のテーブルに管理したデータ同士を結合(JOIN)
- 一連のデータ保存処理の途中で失敗したら、それまでに保存に成功したものも失敗扱いにしたい(トランザクション。よく見かける例として銀行の振り込み処理がある)
RDBとNoSQLの違い
Webフロントエンド・スマホアプリの個人開発者や学習者から使われることが多いデータベースにFirebaseの「Firestore」というものがあります。
こちらは「NoSQL」と呼ばれる種類のデータベースになります。
一般的にNoSQLには先ほど紹介した「RDBの機能の一例」で紹介したような機能が用意されてないことがしばしばあります。(特にJOIN, トランザクション)
「NoSQLにRDBに備えついている機能が用意されていない」と書きましたが、一部のNoSQLではトランザクションやJOIN的なことができるものもあります。
ただ、それでも全てのNoSQLデータベースでそれらの機能がついているというわけではありません。
このトランザクションやJOINといった機能は、アプリ開発をする際にはそれなりの頻度で必要となる場面が現れます。
そういった要件もあり、実務レベル(会社レベル)で使うデータベースにはRDBを使うことが一般的です。
RDBの種類
よく聞くことが多いRDBには以下のようなものがあります。
- PostgreSQL
- MySQL
- MariaDB
今回作成したRDB入門講座では上記の内「PostgreSQL」を使って解説します。
RDBではSQLという言語を使ってデータベース操作を行います。
SQLは「PostgreSQL」でも「MySQL」でも、他のRDBでも基本的に同じような文法となるため、仮に仕事でPostgreSQL以外のデータベースを使うことになっても、今回のRDB入門講座で学ぶ内容は別のRDBでも流用できます。
RDBによって微妙に使うキーワードが異なることもありますが、方言の違い程度と認識で問題ないです。
例えば、プログラミング言語でも、言語によってif文の書き方やforループの書き方が異なることがありますが、それと似たようなものと思っていただいて問題ありません。
RDB入門講座の学習資料の受け取り方
RDB入門講座の資料はメールで配布しています。
学習資料では実務でアプリ開発する際に、最低限押さえておくべき内容を絞り込んで解説しています。
また、メール登録された方向けに以下のような学習サポートも行う予定でいます。
- RDB勉強会の開催して学習のサポート
- RDBの学習でつまづいている方の個別サポート
RDBの知識を身につけたい方は、学習資料と一緒に学習サポートも活用していただき、実務のアプリ開発に必要なRDBの知識を効率よく身につけていただけたらと思います!