WordPressなどの CMS(コンテンツマネジメントシステム)を利用する際には、データベースが必要だという記述をどこかで見たことがあるかもしれません。
なんとなくデータが集まったもの、という程度の認識はあるかもしれませんが、いったいデータベースというのは何でしょうか。
ここでは、レンタルサーバー・CMS(コンテンツマネジメントシステム)とデータベースの関係について簡単に説明してみたいと思います。
データベースとは
データベースとは、ざっくりと言ってしまうと、データの集合体です。
そして、そのデータを複数のアプリケーションやユーザーで上手に、同時に利用できるように整理分別されて格納し、外部からの要求に従って、簡単に検索・抽出したり、書き込んだりすることができるようにしたものです。
自宅の本棚と図書館とを比較してみましょう。
ただ無作為に収納した自宅の本棚の場合、自分ではある程度どこに何があるかは把握しているかもしれませんが、他人にはどこに何があるかわかりませんね。
一方、図書館の場合は、ジャンルなどの分類ごとに書棚が分かれているので、大量の本があってもどこに目的の本があるか簡単に探せるようになっています。
データベースはある意味、この図書館のようなものと言えます。どこに何を格納するのかあらかじめ決めて置き、その該当する箇所に特定のデータを格納し、検索効率を上げることができます。
もう少し実際のデータに近い具体的な例として、店舗における顧客データを挙げてみましょう。
顧客データには、顧客の氏名・住所・電話番号・これまでの購入商品などの履歴が登録されています。この顧客データの中から特定の人のデータを検索し、抽出することができます。
また、住所で並べ替えをすると、同じ地域の人のデータだけを簡単に抽出することができます。新規顧客のデータを書き込むこともできますし、既存の顧客のデータを増やしていくこともできます。
これがデータベースと言われるものですが、データベースの一番の利点は、複数のユーザーが同時にデータベースを利用できるという点です。
パソコンで利用する一般的なファイルは、同時に一人の人しかアクセスし、書き込むことができません。しかし、このデータベースは複数の人が同時にアクセスし、書き込んだり編集などを行うことができます。
データベースとデータベースソフトウェア
「データベース」という言葉は、一般的に 2つの意味を指し、1つは上にあげたデータの集合体自体、もう 1つはデータベースの管理システムを指すことがあります。
データベースの管理システムの中で、一番多く利用されているのは RDBMS(リレーショナルデータベース管理システム)と呼ばれるものです。
この「リレーショナルデータベース管理システム」は、データの集合体を表の形で表現しています。
もし、Microsoft Access について知っていればよくわかると思いますが、Accessを使用したことがない人であれば、私たちが日常的によく使用している Excelの表のイメージといえばわかりやすいでしょう。
データベースの管理システムとしてのデータベースソフトウェアには、前述の Microsoft Accessをはじめ、Oracleや Microsoft SQL Serverなどがあります。
そして、レンタルサーバーで一番身近に利用されているデータベースソフトウェアが、MySQL(マイエスキューエル)と PostgreSQL(ポストグレエスキューエル)です。
このデータベースソフトウェアが、データの集合体であるデータベースと外部のソフトウェアとの橋渡しをしています。
レンタルサーバーにおけるデータベースとは
大規模なデータベースを利用している企業などでは、前述の Oracleなどを利用していますが、私たちが利用するのは小規模なデータベースなので、MySQLや PostgreSQLといった無料のデータベースソフトウェアを利用することになります。
WordPressなどの CMSで主に利用するのも、この MySQLや PostgreSQLです。
共用サーバーの場合は、ユーザーの利用するサーバーにはあらかじめこの MySQLや PostgreSQLがインストールされていて、設定さえ行えばすぐに利用できるようになっています。ユーザーが行う設定は、MySQLなどのデータベースソフトウェアにデータを格納するための土台を作ることです。
Excel に例えて説明すると、レンタルサーバー側であらかじめ Excelをインストールしてくれている状態にありますので、ユーザーはデータを書き込んだり保存したりするためにExcelを起動してファイルを開き、名前を付けるような感じです。
Excelの場合は、ユーザー自身がデータを記入してく必要がありますが、データベースの場合はそのデータベースソフトウェア自体があらかじめ決められた箇所に、必要なデータを書き込んでいったり、必要なデータを検索して拾ってくれたりします。
Excel を自動的に使ってデータを記録したり、検索してくれるロボットがいるような感じですね。
レンタルサーバーの仕様一覧には、データベース(設置可能)数や MySQL数などと書かれていることがあると思いますが、これはこのロボットを一度に何台同時に起動しておけるか、という限界値と言ってもいいかもしれません。
CMS(WordPress)とデータベースの仕組み
CMSがデータベースを利用していることは書きましたが、実際に CMSがどのようにデータベースを利用して Webサイトを表示しているか、その仕組みを簡単に説明してみます。
ここでは WordPressを例として解説します。
Webサーバー(Apache など)
↓ ↑
WordPress←→テーマ・CSSなど
↓ ↑
データベースソフトウェア(MySQL・PostgreSQL など)
↓ ↑
データベース(データの集合)
上記のように、Webサイトを閲覧すると Webサーバーが WordPressにデータを要求します。そして、WordPressはデータベースソフトウェアに該当するデータを要求し、さらにデータベースソフトウェアがデータベースから必要なデータを検索して、抽出します。
データベースから必要なデータを取り出せたら、データベースソフトウェアは WordPressにデータを返します。
また、WordPressは同時に CSSを含めたテーマのデータを別途読み込んで、データベースのデータとミックスして Webサイトを構成し、Webサーバーにデータを返します。
そして最後に、Webサーバーが閲覧者に Webサイトのデータを渡すことにより、Webサイトを表示することができます。
上記は WordPressの例ですが、WordPressは上記のように閲覧者からのリクエストごとに Webサイトのデータを構築してデータを渡します。この仕組みは「動的」と呼ばれています。
リアルタイムで処理を行う分だけ、一般的な HTMLサイトよりも表示に時間がかることになってしまいます。また、サーバーにもそれだけ負担がかかることになります。
逆に Movable Typeなどの CMSの場合は、記事を更新する度に CMS自体が Webサイトのデータを作成してしまい、HTMLファイルとして格納しておきます。閲覧者からリクエストがあった場合は、Webサーバーが単にその HTMLファイルを送り出すだけで終わることができます。
この仕組みは「静的」と呼ばれ、「動的」よりもサーバーの負荷は低いわけです。
なお、「Sirius(シリウス)」などのホームページ作成ソフトにも、データベースが利用されています。
ただ、この Siriusの場合は、データベースやデータベースを管理するソフトウェア自体がユーザーのパソコンの中で動作します。そして、構築された HTMLファイルだけをサーバーにアップロードするため、サーバー内のデータベースには一切触れることはありません。そのため、最もサーバーへの負担が軽いといえますね。
レンタルサーバーのデータベースの設置可能数と容量
レンタルサーバーでデータベースを利用する場合、前述のようにデータベースの設置可能数というものがあらかじめ決められていることが多いです。
例えば、「MySQL 10個まで」などと書かれていれば、MySQLを同時に起動して使える数が 10個までということになります。
こちらはわかりやすいのですが、中にはデータベース自体に容量の上限が決められているところもあります。MySQL データベース1個につき 50MBまでといった感じです。
データベース数が無制限というところも中にはありますが、設定できる独自ドメイン数(マルチドメイン数)に上限があるような感じなので、実質はデータベース数も制限されていると言えます。
また、Webデータやメール容量を含めた、トータルのディスク容量上限内に収まれば、特に制限はないというところもありますが、それでもデータベースが膨大になるとサーバーへの負荷が非常に大きくなるので、「100MB/個」など、ある程度の目安を提示しているところもあります。
WordPress のデータベースに格納されているデータと容量
では、データベースの中には、一体何のデータが格納されているのでしょうか。
WordPressを例にすると、以下のようなものが挙げられます。
- 投稿した記事のデータ
- リンクデータ
- オプションのデータ
- WordPressに登録されているユーザーのデータ
逆にデータベースに含まないデータには、以下のようなものがあります。
- テーマ(CSSを含むサイトデザインや枠組みのデータ)
- 画像データ
- プラグイン自体のデータ
上記を見る限りでも、大容量のデータはデータベースには含まれていないということがわかると思います。
実際に私が所有している150ページ弱ほどのサイトのデータベース容量を確認してみましょう。
このサイトは記事数はそれほど多くはありませんが、画像を非常に多用していますので、ページ自体にはそれなりのサイズがあります。
しかし、上記のとおりデータベース容量自体は 5.1MBと非常に少ないですね。
ですから、ディスク容量が 100GBというような時代でも、データベース容量の上限が 100MBであっても問題ないわけですね。
レンタルサーバーのデータベースの使い方とバックアップ
私たちが WordPressなどを通してデータベースを使用する場合、CMS を通して自動的にデータベースにデータが書き込まれたり、抽出されたりしますが、直接データベースにアクセスすることもできます。
多くのレンタルサーバーには、ブラウザを通してデータベースに直接アクセスできる「phpMyAdmin」といわれるソフトが用意されています。(phpMyAdminは MySQL用、PostgreSQL用には phpPgAdminというものが使われています)
phpPgAdminを使用することで、データベースのデータを直接書き換えたり、データベースのデータをバックアップしたりすることができます。
WordPressを他のサーバーに引っ越す際にも、この phpPgAdminを使ってデータをバックアップし、新しいサーバーの phpPgAdminにデータをインポートすることで移行することができます。
もちろん、上に書いたようにデータベースにはすべての WordPressのデータが含まれるわけではありませんので、テーマや画像データなどは別途バックアップして移行する必要があります。