エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


WordPress初心者向け講座・詳細解説データベースとは何か?

      2017/03/12

初心者向け講座・データベースとは何か?

 
データベースは、具体的なファイルの中身を見ることが難しいため、プログラムの開発経験がない方にとってデータベースはちょっと取っつきにくい存在だと思います。
 
ですが、最初の取っつきにくささえクリアできれば、それ以降は比較的すんなり理解が進むのではないか、とも思っていますので、たぶんこんなところが分かりにくさの原因なんじゃないか、と考えつつ解説をしていきます。
 
データベースは難しくないですよ。
なぜなら、エクセルを使ったことがある方なら、データベースの仕組みも基本的に同じなんだ、ってわかってもらえると思いますから。
 
まずはじめに、データベースの取っつきにくさの原因となる言葉の説明から始めましょう。
 
 

データベースとは何か?言葉の意味の説明

 
まずはじめに「データベースとは何か?」という話から始めましょう。
 
データベースは、データのベース、つまり、データの基地、データの拠点といった感じの意味です。
つまりは、データがいっぱい集まっているもの、ということです。
 
広い意味でデータベースとは、上記の通り、データの集まりのことを言いますので、例えば、エクセルに交通費の一覧表を作ってその中にデータを書き込んでいったものもデータベースですし、名刺を集めた名刺入れのファイルもデータベースと言えます。
 
ですが、WordPressを含めたシステム開発の現場においてデータベースという場合は、狭い意味でのデータベースのことを言っていまして、RDBMS(Relational DataBase Management System、リレーショナルデータベースマネジメントシステム)を指しています。
 
WordPressのユーザの方であれば、WordPressで標準的に利用するデータベースである MySQLという名前を聞いたことがあると思いますが、この MySQLこそがここでいう狭い意味でのデータベースです。
WordPressのユーザであれば、「データベースは MySQLなどの RDBMSのこと」という理解で問題ありません。
 
「MySQLなどの」という表現をしましたが、RDBMSであるデータベースには WordPressの標準データベースである MySQLの他に、プラグインをインストールすることで使えるようになる SQLiteというものや、Oracleや PostgreSQL、MS-SQL(Microsoft SQL Server)、MS-Access(Microsoft Access)など様々なデータベースがあります。(「Oracle」は会社名も「Oracle」のためややこしいですが。)
 
20140729_wp_01
 
いくつか名前は聞いたことがあるのではないでしょうか。
データベースは、それぞれが一つの製品(有料のものやオープンソースのものなど様々ですが)として提供されていまして、それぞれアプリケーションとして名前が付けられています。
そして、それをサーバにインストールすることで、サーバでアプリケーションである MySQLなどのデータベースを利用できるようになるのです。
 
例えば、
「データベースは何を使いますか?」
「WordPressで使うデータベースは MySQLです。」
といった表現の時に使われる「データベース」は、この RDBMSのシステム(プログラム、製品)のことをさして「データベース」と言っています。
 
 
ここでは、RDBMS(リレーショナルデータベースマネジメントシステム)としていますが、DBMS(データベースマネジメントシステム)は、意味合いとしては同じです。
「RDBMS」の方が「R」が付いているだけ条件を制限した DBMSなのですが、一般的な Webサイト構築などでは RDBMS ≒ DBMSなので、同じと思っておいて問題ありません。
 
 

データベースの中にデータベースが

 
改めて「データベース」ですが、データベースの理解を妨げる一つとして、言葉の問題があります。
 
先に述べたように、MySQLや SQLiteなども「データベース」と表現しますが、データベースで管理している中身も「データベース」と言います。
そのため、どれのことを言っているのか分からなくなることなどが取っつきにくさの原因になりますので、ここではそれについて説明します。
 
20140729_wp_02
 
RDBMSの仕組みとしては、データが入っている入れ物としての「データベース」と、その「データベース」を管理する管理アプリケーションとに分かれます。
まず一点、「データベース(RDBMS)」で管理されているものも「データベース」というのが分かりにくくなる点ではないでしょうか。
 
ここでいうところのデータが入っている「データベース」の意味で使われる例として、
「このレンタルサーバで利用できるデータベースの数は 5個です。」といった場合や、
WordPressのインストール時に「データベース名」の入力を求められますが、ここでいう「データベース名」というのがデータを入れておく「データベース」の名前の意味になります。
 
ここでの意味は、MySQLといったアプリケーション、RDBMSの意味での「データベース」ではありません。
 
 
そして、さらに「データベース」の中は、実際にデータを入れる入れ物である「テーブル」というものに分かれています。
「テーブル」は「表」という意味で、エクセルの一覧表のような状態でデータが入っているものを想像してもらうといいでしょう。
WordPressの場合は、wp_posts、wp_postmetaといった「テーブル」が作成され、その中には、投稿データが「投稿者」「投稿日」「タイトル」「本文」といった項目に分かれて保存されています。
 
20140729_wp_03
【上記は phpMyAdminの画面です】
 
 
先ほど説明したように、「テーブル」の中にはデータが入っているのですが、このデータを取り出すには取り出すためには決められた手続きを踏む必要があります。
 
その手続きというのが SQLなのです。
SQLは、データベースを操作するデータベース言語で、厳密にはプログラム言語ではありませんが、プログラムのような感じの SQL文を記述することで、その記述内容に基づいてテーブルからデータを取り出したり、データを更新したりすることができるようになっています。
 
そして、この SQL文を受け付けて処理を行ってくれるものが、データベースのマネジメントシステムである RDBMSと呼ばれるアプリケーションの部分なのです。
 
RDBMSに対して SQLを送ると、その SQLを解釈してデータベースに対してアクセスをしてデータを取得します。
そして、取得したデータを私たちが利用しやすい形で画面に表示してくれたり、csvファイルとしてダウンロードできる状態にしてくれるのです。
 
また、SQLは ISO(国際標準化機構)で標準化されていますので、基本的にどのデータベース(RDBMS。MySQLとか SQLiteとか。)で利用する場合も同じ記述方法で同じ結果を得ることができます。
 
 
ただ、実際の作業を行う際は、RDBMSに対して直接 SQLを入力するのは面倒ですので、多くの作業をブラウザの画面から操作できるようにするツールが用意されています。
WordPressで利用される MySQLには、phpMyAdminという管理ツールが用意されていて、MySQLを使うユーザには広く使われていますし、多くのレンタルサーバでも導入されています。
 
ちなみに、phpMyAdminのインストールは、WordPressをインストールするくらい簡単....というのはちょっと言い過ぎですが、一部の設定をする際に DBの仕組みの理解が必要になる個所はありますが、時間としては数分でインストールできてしまいます。
 
 


 

データベースの仕組みをエクセルに置き換えて説明

 
20140729_wp_04
 
これまで説明した内容を分かりやすくエクセルで説明をすると、エクセルの本体プログラムが、RDBMSのデータベースを管理する管理プログラム(MySQLなど)となります。
そして、エクセルのファイル一つ一つが、RDBMSで管理されている「データベース」となります。
さらに、エクセルファイルの中の実際のデータは、それぞれシートごとに分かれて入力されていますが、これがデータベースの中に入っている「テーブル」ということになります。
 
また、各シートに記述されているデータは、エクセルのシート内に式や関数などを記述することでいろいろな加工をして、希望のシートに値を編集することができるようになっていますが、これが RDBMSでいうところの SQLの役割ということになります。
 
 
20140729_wp_05
 
ちなみに、実際のデータはどんな感じになっているか、というと、MySQLをインストールすると、サーバ上に「mysql」というフォルダが作成され、プログラム一式が設置されます。
そして、例えば「wordpress」という「データベース」を作成すると「mysql」フォルダの中の「data」フォルダの中に「wordpress」というフォルダが作成されます。
そして、「wordpress」の中に「wp_posts」「wp_postmeta」というテーブルを作成すると「wordpress」フォルダの中に「wp_posts」「wp_postmeta」というファイルが生成され、データを入力するとそのファイルの中に保存されていきます。
 
MySQLの場合は、「wp_posts」ファイルはオリジナルのフォーマットで保存されていますので、中身を見ても何が書いてあるのか分かりませんが、昔の PostgreSQLという RDBMSは単純にカンマ区切りのデータとして保存されている時期がありました。
MySQLは独自のフォーマットで保存されているため、テキストエディタで簡単に中身を見ることはでき前sンが、「wp_posts」ファイルの中身もカンマ区切りのような感じでデータが保存されていることには変わりありません。
 
 
実は、難しいように見えるデータベースも、エクセルファイルの各シートにデータが入っていて、そのデータを SQLというデータベース言語を用いて取得している、と考えることで理解が進むんじゃないかと思います。
 
いかがだったでしょうか?
少しでもデータベースって?という部分が減っていけば嬉しいですね。
 
 

データベース・RDBMSにアクセスするために ID、PASSが必要

 
少し視点を変えたデータベースの説明をしてみます。
また、WordPressは MySQLという RDBMSで動いていますので、ここでは RDBMSと同じ意味で MySQLと書いていきます。
 
MySQL(および、関連するファイル)は、一般的に FTPで接続してみることができるような場所にはおいてありません。
 
また、MySQLはそれ自体で一つのアプリケーションとして動いていて、アプリケーション自体は一つのサーバには一つしか入っていません。
それを複数人で使うこともできるようになっていますので、MySQLを使う際にはログイン認証を受ける必要があるわけです。
 
20140729_wp_06
 
そのため、phpMyAdminなどで MySQLにアクセスする際には ID、PASSを入力してログインをする必要があります。
これは、FTPでファイルをアップロードするプログラムとはまた別のアプリケーションとして動いていますので、別途ログインをする必要があるわけです。
 
そして、ログイン認証を受けると、MySQLを利用できるようになり、また、あなたの IDにヒモづいている「データベース」および「テーブル」を利用できるようになるワケです。
 
 
また、phpMyAdminなどの管理画面からアクセスする際だけではなく、WordPressなどのアプリケーションからデータベースにアクセスする際も MySQLを使う際にはログイン認証を受ける必要があり、それらデータベースに接続するための情報は、WordPressの場合は、WordPressがインストールされているルートフォルダの中にある「wp-config.php」に記述されています。
 
 
下記は、この記事を書いている Windowsの PC上に設定しているテスト環境の WordPressの設定ファイル「wp-config.php」の一部です。
———————–

———————–
 
このような形で、WordPressから MySQLにアクセスできるような設定がファイルに保存されているわけです。
 
 


 

簡単な SQL文の解説

 
データベースからデータを取得するには SQLを使います、と説明しましたが、ここでは SQLについて簡単に説明をしておきます。
SQL文は簡単な構造でできていますので、理解ができれば、「何だそんなことか!」と思えるのではないでしょうか?
 
よく使う SQL文は、下記の 4つです。
 
  Select
  Insert
  Update
  Delete
 
それぞれ何となく意味は分かりますよね?
 
  Select  選択(取得)
  Insert  挿入
  Update  更新
  Delete  削除
 
Selectは、データを取得する際に使います。
Insertは、データを新規追加する際に使います。
Updateは、データを更新する際に使います。
Deleteは、データを削除する際に使います。
 
このうち、圧倒的に使う頻度が多いのは Selectなので、それについて説明しておきます。
 
例えば、下記のような SQL文。
 

 
これは「wp_posts」というテーブルから「post_title, post_content, post_date」の 3項目を取得して一覧表示させてください、というメッセージになります。
 
 

 
少し長くなりましたが、これは「wp_posts」というテーブルから「post_title, post_content, post_date」の 3項目を取得して一覧表示させてください、という部分は上記と同じです。
加えて、取得する条件は「post_date」の項目が「2014-01-01 12:00:00」より小さいもので、「post_date」の項目で降順(日付が新しい方が上)に並べてください。というメッセージになります。
 
このように、データを取得するときは、「SELECT」に続いて取得する項目、取得するテーブル名で記述します。
さらに取得する条件があるときは続けて条件を記述する、という方法形式になります。
 
そして、これらの SQL文を MySQLに渡すと、その条件にマッチするデータを指定された順番で表示してくれます。
 
 

レンタルサーバの機能一覧のデータベースの数

 
レンタルサーバなどの機能一覧などで、「データベースの数」が書かれている場合があります。
 
http://lolipop.jp/service/about/
 
例えば、上記のロリポップサーバ。
 
「データベース(MySQL5)」の欄ですが、「コロリポ」では「-」、「ロリポ」では「1」、「チカッパ」では「30」となっています。
 
これは、MySQL(RDBMS)で管理するデータの入れ物としての「データベース」の数が書かれています。
 
例えると、エクセルのファイルをいくつ用意しましょうか?ということです。
 
 
「ロリポ」プランは、データベースは 1つです。
イメージとしては、エクセルファイルが一つで、その中にシートを複数設置して利用する、というイメージです。
 
このブログは、「ロリポ」プランで運営していますので、利用できるデータベースは 1つです。
ですが、WordPressの場合は、テーブル名称の最初に付ける接頭辞(デフォルトは「wp_」)を自由に設定できますので、これをインストールする WordPressごとに違うものを設定することで、データベースは 1つでも複数の WordPressをインストールすることができます。(1つのデータベースの中に名前が同じテーブルは作成できません。)
 
テーブル一覧を表示した際に、多くのテーブル名が並びますので、管理は多少面倒にはなりますが、データベースが 1つであっても複数の WordPressを運用する上では何の問題もありません。
(どんな感じで面倒なのかは、1つのエクセルファイルに 100個くらいのシートが入っていて、それを管理する感じになりますので、シートを探すのが面倒になる、といった感じです。)
 
サブドメインを設定し、複数のサイトとして WordPressを運用していますし、コーポレートサイトや自社メディアなども 1つのデータベースで運用していますが、全く問題はありません。
理由の一つとして、現時点では、全く問題にならない程度のアクセスしかないから。ということですけどね。
 
※「ECCUBE」は、1つのデータベースに一つしかインストールできませんので、ECCUBEを運用する場合は、複数のデータベースを利用できるレンタルサーバを利用するしかありません。
※「ECCUBE」は、簡単に ECサイトが作れるオープンソースのプルグラムです。

 - WordPress

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

WordPressのPing・更新情報サービス設定方法とPingサーバ

WordPressのPing機能、更新情報サービスの設定方法の解説と Pingサーバのリストを提供しています。

WP Reviewを使ってWordPressのレビューサイトを構築

レビューサイトを構築するプラグインです。複数の評価者による評価点投稿やページごとに配色を変更する機能、機能満載なウィジェットなどレビューサイト構築に最適です。

Broken Link Checkerのリンク生死チェックでサイトの品質向上!SEO対策!

Broken Link Checkerは記事内のリンクのリンク切れチェックをし自動的にリンク切れの対処をします。リンク切れは一覧表示されますので手動での処置も可能です。

Theme My Loginの旧バージョン(V6.4.17)のダウンロード場所の紹介
Theme My Loginの旧バージョン(V6.4.17)のダウンロード場所の紹介

Theme My Loginのバージョンアップ(V6.4系→V7.0系)で不具合が発生!問題を解消するには元バージョンにダウングレードだ!そんな時に必要となるV6.4系をダウンロードできるURLを紹介!

AddQuicktagを使って WordPressの投稿を楽にする

投稿時にタグの入力を楽にしてくれるプラグイン「AddQuicktag」の使い方の説明です。クリック一つでタグを編集できます。

FC2からWordPressに引越でcanonicalとmeta refreshで転送設定

FC2からWordPressに引越する際の転送設定はcanonicalとmeta refreshの設定でユーザへもGoogle検索エンジンにも引越し情報を伝えられます。

Advanced Custom Fieldsのカスタムフィールドの登録上限が max_input_varsに影響する問題の対処方法

Advanced custom Fieldsには登録できるフィールド数に上限があります。php.iniのmax_input_varsによる制限ですが、フィールドグループを分割することで解決できます。

Edit Author Slugで WordPressの不正ログイン・不正アクセスを回避

WordPressのセキュリティ強化に Edit Author Slugを使う理由と設定方法の解説をしています。

WordPressの投稿データ(記事データ)の管理方法

投稿の登録の方法、投稿データの管理方法の解説。MetaManagerなどのプラグインを入れた場合の入力ボックスを表示させる方法についても解説します。

Custom Post Type UIでカスタム投稿を設定し編集する方法解説

カスタム投稿を追加、管理するプラグインCustom Post Type UIの使い方の解説です。プラグインの解説ではあるものの、カスタム投稿の仕様の解説でもあります。