フルスタックエンジニアのノウハウ
2020.01.14    2020.03.25

データベースの基礎知識【実例を交えて説明】

データベースの基礎知識【実例を交えて説明】

こんにちは、徳田 啓です。
Webプログラマー歴20年、【フルスタックエンジニア マスター講座】を運営しています。(生徒数1,800名突破)

皆さんは「データベース」という言葉を聞いたことがありますか?

このブログでも度々出てきている言葉ですが、プログラミングとデータベースは切っても切れない関係にあります。

今回は「データベースとは何か?」について、実例を交えながらわかりやすくご説明します。

  • この記事で分かること
  • ・データベースとは何か?なぜ必要なのか?
  • ・データベースのキホン
  • ・実際のWebサービスでの使用例
  • ・データベース設計とは?


この記事の動画版はこちら

チャンネル登録お願いします!



結論から言うと


  • データベースとは、データを「永続的に保存しておく場所」


なぜデータベースが必要なのか?


Webサービスでは、ユーザー情報を登録したり、ブログ記事を投稿したり、商品を注文した履歴を残したりといったように、さまざまな情報を保存(記録)しておく必要があります。

しかし、プログラムだけでは情報をずっと覚えておくことが出来ません。

  • データベースは、こういった情報を「永続的に保存しておくため」に使います。


Amazonに掲載されている商品も、Twitterに投稿されたツイートも、このブログ記事も、全てデータベースの中に保存されています。(全てが1つの同じデータベースに保存されている訳ではなく、それぞれのサービスごとにデータベースを持っています)

ほぼ全てのWebサービスで、データベースを使っていると言っても過言ではありません。


データベースはどこにある?


データベースは、物理的には「サーバー」と呼ばれるコンピューターの中にあります。

サーバーの中に、データベース管理システム(DBMS)と呼ばれるソフトをインストールして、それを常に稼働させておくことで、データベースが使えるようになります。

データベース管理システム(DBMS)には、以下のようなさまざまな製品があります。

  • MySQL(無料)
  • MariaDB(無料)
  • PostgreSQL(無料)
  • Oracle(有料)
  • SQL Server(有料)
※料金体系は、使用形態によって変わる場合があります。



通常、レンタルサーバーを借りると、上記のうちどれかのDBMSが最初からインストールされ、すぐに使えるようになっています。


データベースの構造を知る


データベース管理システム(DBMS)の中には、複数の「データベース」を作ることが出来ます。

通常は、サービスごとに1つのデータベースを作ります。


  • 例えば、ネットショップを作る場合を考えてみましょう。

①まず、サービス用の「データベース」を1つ作ります。


②次に、データベースの中に複数の「テーブル」を作っていきます。サービスの中で扱うデータは種類ごとにテーブルに保存します。
③さらに、テーブルの中には複数の「カラム」を作ることが出来ます。カラムには、そのデータ持つ様々な属性値を保存します。

  • このように、データベースの中身は「データベース>テーブル>カラム」といった構造体になっています。


実際のWebサービスでの使用例


実際のWebサービスの画面で、データベースがどのようになっているのか見てみましょう。

例えば、このような「商品一覧」を表示する画面があります。




このWebサービスのデータベース(テーブルの中身)はこのようになっています。

これは、商品を保存しているテーブルの実際の画面です。

テーブルは、このように表形式で管理されており、表の1行1行が「1商品」になっています。


データベース設計とは?


Webサービスを作るときに「どういうテーブルを作って、その中にどんなカラムが必要か」を考えることを「データベース設計」と呼び、これもプログラマーの仕事の1つです。

無駄のあるデータの持ち方になっていると、プログラムからデータを操作する際に非効率になってしまうため、データベースの設計次第でWebサービスの動作速度や、今後の拡張のしやすさなどが変わってくる重要なスキルです。

  • 現場のコツ
  • 設計にはコツがあり、慣れてくるとあまり考えなくてもサクサク出来るようになります。

最後に、僕がいつも行っているデータベース設計の流れを書いておきます。

  • ①Webサービスの画面設計を起こす。
  • ②画面設計を見ながら、このWebサービスに登場するデータを種類ごとに分類(例えばユーザー、商品など)し、それをそのままテーブルとする。
  • ③画面設計の表示/入力項目を見ながら、各データに必要なカラムを決めていく。
  • ④テーブル間のつながりの設計や、正規化を行う。
    ※正規化とは、複数のテーブルで同じデータを持たないように整理する作業。

この流れで設計すれば、大体外れのないデータベース設計が完成します。

フルスタックエンジニアを目指す上では、データベースのスキルもとても重要となりますので、しっかり理解していきましょう!


なお、PHPからデータベースを操作する手順については、以下の記事で解説しています。

関連記事

PHPからデータベースを操作する手順


おすすめ記事
無料メルマガ配信中