本稿で扱う「データベース」とは、主にレンタルサーバーにおける「リレーショナルデータベース管理システム」について解説します。
レンタルサーバーにおいては、PHPやCGIなどで作られるWebアプリケーション ― 特にCMSにおいて、設定データやコンテンツデータを管理することに利用されることが多い、バックエンドの1つです。
WordPressとデータベース
例として代表的なCMSであるWordPressとデータベースとの関わりを解説します。
WordPressが利用するデータベースに保存されるデータには、次のようなものがあります。
・投稿、固定ページなどのコンテンツ(記事データ)
・コメント
・メディアの格納場所、カテゴリーやタグなどの情報
・ユーザー情報
・WordPressサイトの全体設定
・プラグインの設定
もしWordPressを運用する目的でレンタルサーバーを探している場合は、適切なデータベースに対応しているのかも調べる必要があります。
【初心者向け】WordPress設置に適したレンタルサーバーの選び方 | レンタルサーバーのSpeever
データベースを利用するメリット
WordPressを始めとする多くのCMSが、なぜデータベースを利用しているのかというと、これに様々な理由があります。
高速性
その一番の利点はデータはデータベースで取り扱った方が高速であるというところにあります。
データがもしCSVなどのテキストデータである場合、そのデータが膨大であればあるほど、読み込みや書き込みなどの取り扱いがあるたびに時間がかかってしまいます。これはアクセスのたびにフロントエンドを生成するようなCMSにとって枷となってしまうので、代わりに高速なデータベースが利用されています。
同時アクセス性
データベースはまた、複数のユーザーが同時にアクセスしても基本的に大丈夫なようにできています。一つのデータを複数人が同時編集する場合でも、コンフリクトが生じることも基本的にありません。
データベースを利用するデメリット
データの修正が容易でない
CMSの外側からデータベースの内容を書き換えたい場合、例えばWordPressユーザーのパスワードがわからなくなってしまい、登録メールアドレスも受信できないような状態になった場合など、データベース内の設定データを書き換えなければいけませんが、これには専用のツール(後述)とそれを扱う適切なスキルが必要となります。
データの移行が容易でない
レンタルサーバーを変更する時など、ウェブを移行せざると得なくなった場合、静的なページであればFTPソフトを利用し。データを右から左に移していけば問題ありません。
しかしデータベースを利用しているとなると、やはり専用のツールで一度ファイルの形にエクスポートしてあげた上で、移行先にインポートするなどの手順が必要になります。
データベースの種類
MySQLおよびMariaDB
MySQLは、おそらく世界でもっとも普及しているオープンソースのデータベースです。
また2008年にMySQLがオラクルに買収されたことを受け、MySQL5.5からMariaDBが派生(フォーク)しました。
この2つは互換性があり、例えばPHPからMariaDBに接続するにはMySQL用の拡張ライブラリがそのまま利用できます。一般的なCMSを利用する場合であれば、両者の違いはほぼありません。
WordPressを始め多くのCMSが、MySQLかMariaDBを利用します。
PostgreSQL
PostgreSQLもまたオープンソースのデータベースの1つで、MySQLに次いで普及しています。
PostgreSQLはMySQLに比べ高機能であり、またより大規模なデータの取り扱いに長けていると言われています。一方でPostgreSQLを採用しているCMSは少ないようです(Drupalなど)。
SQLite
SQLiteは簡易的なデータベースです。
MySQLやPostgreSQLはサーバーを必要としますが、SQLiteはライブラリとして利用できます。データは単体のファイル(大抵は拡張子.sqliteとして)であり、FTPでも簡単にデータ移行できます。
小規模なCMSやBBSなどの利用に向いています。
データベース内のデータを取り扱うためのツール
前述の通り、データベースのデータを修正や、エクスポートまたはインポートなどを行うためには、適切なツールが必要となります。
代表的なツールにMySQL/MariaDBを取り扱う”phpMyAdmin”や、PostgreSQLを取り扱う”phpPgAdmin”があります(その名の通り、いずれもphpプログラムです)。これらはレンタルサーバーのサーバー管理画面などに組み込まれていることも多いです。
もし、phpMyAdminなどがレンタルサーバー側で用意されていなければ、利用の際にはまず自力インストールする必要がありますが、もし簡易的なデータ修正や、データのインポート/エクスポート程度であれば”Adminer”というツールもおすすめです。Adminerは単一のPHPファイルであるため、設置が非常に用意であるという利点があります。
Adminer – Database management in a single PHP file