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

フルスタックエンジニアのためのデータベースの知識【基礎編】

フルスタックエンジニアのためのデータベースの知識【基礎編】

こんにちは、徳田です。

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

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

今回は、そんなデータベースについて、初心者の方向けにご説明します。

この記事を読むと


・データベースとは何か?を知ることが出来ます。
・実際のWebサービスでの使用例を見ることが出来ます。

【目次】
  • ・結論から言うと
    ・なぜデータベースが必要なのか?
    ・データベースはどこにある?
    ・データベースの中身はどうなっているのか?
    ・実例
    ・現場の知識

結論から言うと


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

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


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

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

※変数というものを使って一時的に覚えておくことは出来ます。
変数についてはこちらの記事で詳しく解説しています。

関連記事

変数とはプログラムを汎用的に動かすためのマジックアイテム
2020.01.07
プログラミングには欠かせない「変数(へんすう)とは何か?」について解説しています。変数をいまいちよく理解できていない…という方は、ぜひ一度読んでみてください。


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

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

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

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


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

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

データベース管理システムには様々な製品が出ており、有名なところでは、無料で使える「MySQL」「MariaDB」「PostgreSQL」、有料の「Oracle」「SQL Server」などがあります(使用形態によって料金体系が変わる場合があります)


なお、規模の大きなWebサービスでは、データベース専用のサーバーを何台も設置して、プログラムのサーバーとは分けて稼働させている場合もあります。

データベースの中身はどうなっているのか?


MySQLなどのデータベース管理システムの中には、複数の「データベース」(=データを保存しておく場所)を作ることが出来ます。

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


例)ネットショップを作る場合

まず、データベースを作ります。




さらに、データベースの中には、複数の「テーブル」を作ることが出来ます。
サービスの中で扱うデータは、種類ごとにテーブルに保存します。



そして、テーブルの中には複数の「カラム」を作ることが出来ます。
カラムには、そのデータ持つ様々な属性値を保存します。




データベースの中身は、このような構造体になっており、Webサービスを作るときに「どういうテーブルをいくつ作って、その中にどんなカラムを作れば良いか」を考えることを「データベース設計」と呼び、これもプログラマーの仕事の1つです。

無駄のあるデータの持ち方になっていると、プログラムからデータを操作する際にも非効率になってしまうため、データベース設計はWebサービスのパフォーマンスにもつながる重要なスキルです。


プログラムからデータベースに対して行う操作は、主に以下の4種類です。
  • 検索して読み出し
  • 新規に登録
  • 登録されているものを編集
  • 登録されているものを削除

操作を行う際は、「SQL(エスキューエル)」という専用の命令を使って行います。

実例


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

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



このWebサービスのデータベース構造はこのようになっています。

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

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

現場の知識


データベースの設計次第で、Webサービスの動作速度や、今後の拡張のしやすさなどが変わってきます。

ただ、設計にはコツがあり、慣れてくるとあまり考えなくてもサクサク出来るようになってきます。

データベース設計は大体このような流れで行います。

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


これらについての詳しい話は「データベース設計」の記事にて、また別の機会に書きたいと思います。

無料メルマガ配信中