DB

RDB入門講座(PostgreSQL)

どうも、つよぽん(@tsuyopon_xyz)です!

データベースの勉強をしたいけど、何から始めれば良いかわからない
データベースの機能いろいろとあるけど、まずは何をおさえておくべき?
実務ではNoSQLよりもRDBの方が圧倒的に使うことが多いと聞いたけどRDBって何?
FirebaseのFirestore(NoSQLの一種)しか使ったことないけど、Firestoreとの違いって何?

 

今回、こんな悩みを持っている方向けに「RDB入門講座」というものを作りました!

RDB入門講座の資料はメールで配布しているので、受け取りたい方は以下のボタンをクリックした先の入力フォームから受け取っていただけたらと思います。

RDB入門講座の資料を受け取る

RDB入門講座の紹介動画

入門講座で学ぶ内容は以下の動画で話しているので、興味のある方はまずはこちらの動画をご覧ください。(2分31秒の短い動画)

2024年3月5日現在、8章全ての資料が完成しています。

RDBとは?

RDBとは「リレーショナルデータベース(Relational DataBase)」の略で、エクセル・スプレッドシートのような表形式でデータを管理する場所と認識して問題ありません。

以下の2枚の画像はスプレッドシートでデータを管理している様子と、RDBでデータを管理している様子を表したものです。

スプレッドシートでのデータ管理スプレッドシートでのデータ管理

 

データベース(テーブル)でのデータ管理データベース(テーブル)でのデータ管理

 

RDBは厳格にデータ管理をしたり、効率的なデータ取得ができる

上の画像でも示したように、エクセル(スプレッドシート)とデータベースでは同じような形式でデータ管理をしていることがわかったかと思います。

ここで1つ以下の疑問が出てくるかもしれません。

RDBを使わずにスプレッドシートを使えば良くない?

実際のところ、アプリで使うデータがシンプルであれば、スプレッドシートを使ってデータ管理するのも選択肢の1つとして全然ありです。(スプレッドシートのAPIを使えば、プログラムを通してスプレッドシートにデータ保存・取得が可能)

ただ、それでも実務レベル(会社レベル)でアプリ開発をする際は、現実のところRDBを使うことが最も一般的です。

その理由としては、スプレッドシートに無くてRDBには有る機能がいろいろとあるからです。

その機能の一例として以下のようなものがあります。

RDBの機能の一例
  • 型による厳格なデータ管理
  • データが膨大になっても効率的に指定したデータを取得(インデックス)
  • 別々のテーブルに管理したデータ同士を結合(JOIN)
  • 一連のデータ保存処理の途中で失敗したら、それまでに保存に成功したものも失敗扱いにしたい(トランザクション。よく見かける例として銀行の振り込み処理がある)

RDBとNoSQLの違い

Webフロントエンド・スマホアプリの個人開発者や学習者から使われることが多いデータベースにFirebaseの「Firestore」というものがあります。

こちらは「NoSQL」と呼ばれる種類のデータベースになります。

一般的にNoSQLには先ほど紹介した「RDBの機能の一例」で紹介したような機能が用意されてないことがしばしばあります。(特にJOIN, トランザクション)

「NoSQLにRDBに備えついている機能が用意されていない」と書きましたが、一部のNoSQLではトランザクションやJOIN的なことができるものもあります。

ただ、それでも全てのNoSQLデータベースでそれらの機能がついているというわけではありません。

このトランザクションやJOINといった機能は、アプリ開発をする際にはそれなりの頻度で必要となる場面が現れます。

そういった要件もあり、実務レベル(会社レベル)で使うデータベースにはRDBを使うことが一般的です。

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の知識を効率よく身につけていただけたらと思います!

RDB入門講座の資料を受け取る

【3つの特典付き】Webエンジニアに必要な基礎スキルを体系的に効率良く身につけたいですか?

LINE登録で無料特典を受け取る

次のような方向けに、学習をサポートするコンテンツを無料プレゼントしています。

  • Webエンジニアになりたいけど何から学習を始めれば良いかわからない
  • 今まで独学で頑張ってきたけど、独学に限界を感じてきた
  • プログラミングは出来るけど、大きめのコードが書けない

「プレゼント詳細が知りたい」「プレゼントを受け取りたい」といった方は、以下のボタンをクリックして詳細ページをご確認ください。

無料特典を受け取る

 

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です