関連記事
データベースの基礎知識【実例を交えて説明】
この記事の動画版はこちら(画像クリックでYoutubeに飛びます)
皆さんは「データベース」という言葉を聞いたことがありますか?
このブログでも度々出てきている言葉ですが、プログラミングとデータベースは切っても切れない関係にあります。
今回は「データベースとは何か?」について、実例を交えながらわかりやすくご説明します。
データベースとは
データベースとは、データを「永続的に保存しておく場所」
なぜデータベースが必要なのか?
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からデータベースを操作する手順については、以下の記事で解説しています。