初級者~中級者向け 基本

【基本】データベースって何?

データベース
この記事は約7分で読めます。

文中の説明画像をクリックすると拡大します。

Pocket

データベースって何?

データベースを一言で表現すると「ある条件に当てはまるデータを集めて、使いやすい形式に整理された情報の集まり」と言えます。

データベースというと、コンピュータで構築されたものを指す場合が多いのですが、紙媒体の電話帳や住所録も、広い意味でデータベースということができますが、ここでは、コンピュータで扱うデータベースを対象とします。

データベースといっても様々な種類があるのですが、現在最も普及している形式のデータベースが「関係データベース」です。

関係データベースとは、リレーショナルデータベース(Relational Database)とも言われ、その構造はExcelの表のような形をしています。

そして、データベースに含まれているExcelの表のようなものを「テーブル(table)」と呼びます。

一つのデータベースには、複数の表が含まれています。

ここまでの情報を図にすると、下図のようになります。

この図では、一つのデータベースに以下の4つのテーブルが含まれています。

  • スタッフテーブル
  • 部署テーブル
  • 会社テーブル
  • 役職テーブル

そのうち、「部署テーブル」と「役職テーブル」に関しては、テーブルの構造を表現しています。

テーブルがExcelの表のようなものだとお分かりいただけると思います。

データベースって、どんなサイトで使われているの?

データベースが使われているサイト

データベースが使われているサイトは、たくさんあります。

身近なところだと、例えばTwitterやFacebookのようなSNS、商品を登録して表示する通販サイト、コンテンツが大量にある大型サイト、CMS(Contents Management System)であるWordPressなどもそうです。

閲覧者は、Webサイトを見るときにブラウザを使いますが、Webサイトがブラウザで表示されるまでには、目に見えないところでいろいろなプログラムが動いています。

この「目に見えないところ」を一般的に「サーバ」と呼び、閲覧者の目に見える部分(ブラウザなど)を「クライアント」と呼びます。

この関係を図にすると、下図のようになります。

この図からわかるように、サーバにはデータベースサーバだけでなく、アプリケーションサーバやWEBサーバが動作していることがわかります。

サーバとは、「サービスを提供するプログラム」のことですが、これら3つのサーバが連携することでWebサイトを表示させることが可能になっています。

WEBサーバには「Apache(アパッチ)」が、アプリケーションサーバには「PHP(ピーエイチピー)」が、データベースサーバには「MySQL(マイエスキューエル)」というソフトウェアが、サーバとして動作しています。

サーバとして動作するプログラムは他にもいくつかあるのですが、「Apache」「PHP」「MySQL」がそれぞれのサーバプログラムの代表のような立場で使われています。

データベースが使われていないサイト

一方で、データベースを使用しないWebサイトも存在します。

HTMLやCSS、そして画像だけから構成されるWebサイトは、表示されるデータがサーバにアップロードされた状態で決まっており、データベースを必要としません。

このようなWebサイトは、「静的サイト」と呼ばれます。

一方で、ブログやTwitter、Facebookなど、ブラウザから入力されたデータを使いWebサイトで表示されるデータが変化するようなWebサイトは「動的サイト」と呼ばれます。

動的サイトでは、データを管理するためにデータベースが用いられることが一般的です。

データベースのメリット

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

「データならファイルに保存できないの? なんでデータベースを使うの?」
こんな風に疑問を感じるかもしれませんね。

確かに、単純なデータを操作するだけなら、ファイルに記載するので十分です。

ところが、データの量が増えてきたり、データとデータの関係が複雑になってきたりすると、単純なファイルでデータを管理することが困難になります。

そこで、データベースの出番というわけです。

データベースを使わずにファイルでデータを管理する方法として、CSV(Comma-Separated Values:カンマ区切り)でデータを管理する方法があります。

これは、古くから使われている方法ですが、複数のデータをカンマ区切りで繋げただけの形式のファイルです。

先ほどの例で言うと、「部署テーブル.csv」や「役職テーブル.csv」を用意するといった具合です。

テーブル同士に関係性を持たせて、必要なデータを取得する

CSVファイルで管理する方法では、それぞれのCSVファイルの間には何も関連はありません。

しかし、データベースを用いることで、テーブルとテーブルの間に関連(リレーションといいます)を持たせることが可能になります。

データベースを用いる理由は、そこにあります。

ここで別に「部長テーブル」という、部長IDと部長名が設定されたテーブルを用意するとしましょう。

用意した部長テーブルと、もともとあった部署テーブルを結合することで、部署テーブルに記載されている「部長ID」から「部長名」を引っ張ってくることができます。

このように、特定のテーブルと別のテーブルに関連を持たせることで、必要なデータを必要な時に取得できるのが、データベースを採用する大きなメリットです。

他にも、データベースを使う事で以下のようなメリットがあります。

メリット1 データに権限を付与できる

データベースでは、テーブルの追加や削除など様々な操作ができますが、それぞれの操作に対してユーザごとに権限を付与することができます。

メリット2 同時にアクセスしても大丈夫

データベースには、複数のユーザがアクセスしてもデータが壊れないような仕組みが設けられています。これを排他制御と呼び、データベースを用いるメリットの一つとなっています。

メリット3 保存するデータの種類を指定できる

データベースで管理する、テーブルに格納するデータの種類(型)を指定できます。

例えば、「金額」なら「数字」だけ保存させるとか、日時なら「日付」だけ格納できるといった具合です。指定できる型は様々であり、これによりプログラムで処理するデータの整合性を維持できます。

このようなメリットがあるため、特に大量のデータを取り扱う大規模なWebサイトでは、データベースが使われています。

WordPressとデータベース

WordPressのデータベースの構造がどのようになっているのか、簡単に紹介します。

これは、データベース管理ソフト「phpMyAdmin」を使ってWordPressのデータベースのテーブル一覧を表示させたものです。

「wp_commentmeta」から「wp_users」まで、全部で12個のテーブルで構成されていることがわかります。これは、WordPressを動作させるために必要最低限なテーブル構成です。

プラグインなどを導入することで、テーブル数が増えることもあります。

12個あるテーブルのうちの一つ「wp_options」を見てみましょう。

「wp_options」テーブルでは、WordPressのサイトの「URL」や「サイト名」などのWordPressサイトの主要なデータが保存されています。

WordPressでWebサイトを構築するときには、WordPressが用意している各種のPHPの関数を使ってデータベース上のデータを取得します。

例えば、WordPressサイトの「サイト名」を取得するためにはPHPでこのようなコードを書きます。

【PHP】

<?php bloginfo('name'); ?>

WordPressでこのようなコードを書くと、「wp_options」テーブルの「blogname」に保存されているデータを取得して表示します。

このように、WordPressではPHPというプログラミング言語を使って、データベースに格納されているデータにアクセスできるようになっています。

そして、例えば「 <?php bloginfo('name'); ?> 」を表示している箇所は、データベースを更新すればその更新は全てに反映されます。

静的サイトでは、基本的には一つずつ手動で更新をしていくしかありません。

こうした「一括更新作業」も、データベースを利用したサイトならではの利点です。

 

まとめ

  • データベースは、Excelの表のようにデータを管理している。
  • データベースを使う事で、ファイルよりも便利にデータを操作できる。
  • TwitterやFacebookそしてWordPressにも、データベースは使われている。
Pocket