初級者~中級者向け

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

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

LINEで送る
Pocket

この記事は約7分で読めます。

データベースって何?

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

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

ここではコンピュータで扱うデータベースを対象とします。データベースといっても様々な種類があるのですが、現在最も普及している形式のデータベースが「関係データベース」です。

関係データベースとはリレーショナルデータベース(Relational Database)とも言われ、その構造はExcelの表のような形をしています。そしてデータベースに含まれているExcelの表のようなものを「テーブル(table)」と呼びます。一つのデータベースには複数の表が含まれています。

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

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

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

そのうち「部署テーブル」と「役職テーブル」に関しては、テーブルの構造を表現しています。テーブルがExcelの表のようなものだとお分かりいただけると思います。

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

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

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

身近なところだと、例えばTwitterやFacebookのようなSNS、商品を登録して表示する通販サイト、コンテンツが大量にある大型サイト、当サイトで使われている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というプログラミング言語を使ってデータベースに格納されているデータにアクセスできるようになっています。

 

まとめ

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