庶民にとってデータベースとはどのような存在なのか

普段コンピューターの話になると、主にハードウェアや事務系のアプリケーションをいかに操るかといった話題になることが多いように感じます。

そんななかでも、ワープロや表計算ソフトについて語られることはあってもデータベースとなると一般的には関心が薄いようです。

私なども、PCの知識は人並み以上にあるつもりですが他人から相談されるのはWindowsの基本操作やMS_Excelについてのことばかりでデータベースの話題はほとんどありません。
世の中PCと言えばExcelのことなのかと少々考えさせられるほどです。

そもそもデータベースとは何なのか?

単にデータベースと言えば、その詳細は知らなくても言葉では聞いたことがある。別に詳しく知ろうとも思わない。

多くの人がデータベースと聞いて感じる印象はそんなものでしょう。

ただし、一度でもデータベースの利便性に気づく場面に遭遇できれば意識は変わるはずです。

コンピュータ関連の用語であることは知っている

データベースという言葉自体を知らないという大人は割と少数派であることは間違いないでしょう。しかし、データベースとは何かと問われたとき正確に答えられる人は多くはありません。

情報関連の用語であることは知っているが、主に何のことを指すのかについては関心がないというのが世間的なデータベースの立ち位置なのは間違いないようです。

データベースの一般的な捉え方

データベースのイメージに似ているお菓子

情報関連のサイトでよく見かけるデータベースを表す図形やアイコンは写真のお菓子のような見た目です。

データを格納しているディスクを重ねたイメージですね。
辞書などによればデータベースとは「情報機器を用いて人が利用しやすい形で整理したデータの集まり」とかそういった表現をしています。

ものによっては「有機的に整理…」とか言われていますが、意味合いを考えれば甚だ無機質なものであるのは間違いないでしょう。

簡単に言うならば、電子的な情報を利用しやすいように整理して格納してるものがデータベースであると言えます。

ポイントは「人が利用しやすいように整えられている」ということです。

表計算ソフトでまとめられたデータは、整理はされていますが万能な用途に整えられているわけではありません。
ある特定の社員や顧客へ分かりやすく綴った特定の情報でしかなく、後々別な用途に使うには補足や修正をともなうもので、そこがデータベースとは異なります。

一方データベースが人へ吐き出すデータは、必要な数値の羅列であったり固有名詞であったりと単純なものが多いです。

これが役立つのはリアルタイムに答えだけが欲しい場合です。
ワープロや表計算に多いグラフなどの補足や解説は二の次な場面ではデータベースを活用した方が便利なわけです。

データベースを知ることで広がる世界

日々繰り返されてきた単純な仕事の記録から、その事象が発生したのは何時だったのか、あるいは収益や支払いがいくらだったのか時刻や数値だけを知りたい場合、あるいは取引の相手が誰だったのかという人の名前だけを瞬時に引き出したいときデータベースシステムが役に立ちます。

ここで私がいくら熱く語っても実際にデータの引き出し方の手法に触れて体験してみないことには理解はしにくいかもしれません。

事実、私もその手の話を同僚にしても関心は持っていただけないのが状況です。

データベースというのは、物を変え形を変えそれ自信が大きな付加価値を持っているとも言えます。
それが、データベースを独自に構築する習慣が世に広まらない原因かもしれません。

多くの会計ソフトや宛名を印刷するために特化した住所管理ソフトなどはデータベースアプリケーションの要素を多く含んでいます。
それらを開発・販売することは大手のソフトウェア会社にとっては利益につながるものです。

そう考えると、特定のノウハウを世に知らすより、そのノウハウを飯の種として利益を捻出した方が業界にとっては美味しい訳であって、それがデータベースが世に広がらない理由かなと勝手に想像してしまいます。

データベースの仕組みは、基本を身につけ順立てて学んでいけば難しいものではありません。
自前でデータベースを構築し利用することで得られる利益を体感できればPCはデータベースを活用するために使うものと考えることができるようになるでしょう。

大げさかもしれませんが、データベースシステムの多様性は表計算の比ではないとさえ思います。

欲しいデータは個人によって異なる

情報化社会といわれ久しい現代ではありますが、未だ情報は個人に特化しているとは言い難いです。

独自の経験や知識を情報として積み重ね自ら利用していくことはデータベースシステムの本来の狙いであると言えることでしょう。

ハードウェアが著しく進化する世界の中で、SQLデータベースというものが古くならないのは、それを活かすことで開ける未来が多く残っているからにほかなりません。

そして、データベースそのものに興味を持ち自ら必要なデータを活かしていくことができれば、その人自身にとって多くの希望を満たしてくれる可能性が広がることでしょう。

優れ物ツール「phpMyAdmin」でデータベース作成【MariaDB】

職場での導入や家庭での学習など、実務上の経験のない人がSQLを用いサーバーへデータベースを作成するとなると、専門知識を持った人のアドバイスがなければ困難に近い作業です。

MariaDBやMySQLの場合、そんな難題もphpMyAdminを使うことで格段にハードルが下がります。

データベースの新規作成

Linuxでデータベースを扱うための環境整備については当サイトでも実践してきましたが、いよいよデータベースそのものの作成に入ります。

phpMyAdminのデータベースタブ

MariaDBインストール後に設定したパスワードを使いphpMyAdiminにログインします。
データベースタブをクリックするとデータベースの作成画面になります。

空欄のデータベース名

データベース名を入力して作成をクリックします。

データベース名を入力したところ

文字コードは「utf8mb4_general_ci」にしました。

テーブルの作成

画面が切り替わり「テーブルの作成」へと移ります。

テーブル名を入力

作成するテーブルの名前と、カラム数を入力し実行を押します。

カラムのデータ型を指定

作成したカラム数分の名前とデータ型を指定し「保存する」をクリック。

この際、作成したカラムのうちどれか一つをPRIMARYキー(主キー)に設定します。
用途によっては必要ないように感じますが、クライアントのアプリとの連携で必要な場合があるので今回は主キーを用意しました。

インデックスを追加するの画像

PRIMARYキーに設定するカラム(ここではNo.)をAIに設定します。AIとはオートインクリメントのことで、ここでは自動でナンバリングする機能と理解しておいた方が分かりやすいでしょう。

テーブルの構造

テーブルの作成が終了すると画面上に「構造タブ」ができています。

文字データが入る「名称」と「説明」の各カラムはデータ型にvarchar、照合順序をutf8mb4_general_ciにしました。
この辺は、データベースの基礎知識が少しだけ必要かも知れません。

テーブルが完成したらデータを入力してみる

挿入タブをクリック

phpMyAdminではデータ型の指定によるテーブル作成だけでなく、実際にレコードを追加しデータを入力することがで可能です。操作は画像のように挿入タブをクリックします。

作成した3つのレコード

画像は3つのレコードが作成されたところです。主キーに設定したカラムは1、2、3と自動でナンバリングされています。

あらゆる基本操作が可能な「phpMyAdmin」

ユーザーの作成から権限の設定、データベースの新規作成まで基本的な操作はphpMyAdminで作業を行うことができます。

しかも、ほとんどの操作がグラフィカルな環境で実現できコマンドを入力する必要がありません。

phpMyAdminを使えば、難しいSQLコマンドを覚える前にデータベースとはどのようなものなのか、ある程度イメージで理解することが可能です。
これは、データベース初心者にとって最強の優れ物ツールと言えるでしょう。

MariaDBで文字コードの設定

MariaDBとphpMyAdminのインストールが済んでサーバーでのLAMP環境が整えば、早速データベースの作成に移りたいところです。

MariaDBで文字コードを設定

しかし、後にクライアントのWindowsPCからアプリケーションを使い作成したデータベースへのアクセスを想定するならば先にMariaDBで文字コードを設定しておいたほうが良いでしょう。

文字コードを設定する理由

接続したPCのアプリケーションでデータベースに接続が成功すれば、当然レコードの編集が可能であるはずですが、スムーズに目的が達成するとは限りません。

クライアントPCからデータベースへ接続してデータを入力(編集)後にアプリケーションで次のエラーがでる場合があります。

Unknown column ' ?? ' in 'field list'

このエラーが出るのは文字コードが合っていないケースなのだそうです。

上のエラーはOpenOffice_Baseで確認したエラーでしたが、このようにクライアントでのデータベース活用まで進んだところでサーバー側の設定に後戻りするのも面倒なので先に済ませておくことにします。

文字コードの設定方法

文字コードの変更は基本的に「viエディタ」を使うのが便利ですが、慣れていない場合は他のエディタでも編集できる場合があります。

コマンドラインから次の通り入力します。

$ sudo vi /etc/my.cnf.d/server.cnf

文字コード設定用の記述を追加

エディタで[mysqld]の下に次の一行を追加。

character-set-server = utf8mb4

追加後のエディタのキャプチャー

追加記述が済んだら上書き保存してエディタを終了しMariaDBを再起動します。

$ sudo /etc/init.d/mysql restart

ブラウザからphpMyAdminにログインしてコンソールへ次の通り入力。

コンソールの起動アイコン

画面下のConsoleと書いてあるアイコンをクリックしてコマンドを入力します
show variables like "chara%";

入力後に「Ctrl+Enter」を押してMariaDBの文字コードを確認します。

phpMyAdminで文字コードを確認

ちなみに設定前は「database」と「server」のところがutf8mb4ではなく「latin1」になっています。

文字コードについて解説しているサイトでは多く「utf8」を指定して文字コードを設定していますが、アプリケーションでの応用を考えた場合「utf8mb4」のほうが柔軟性がありそうなので今回は「utf8mb4」を使っています。

さて、文字コードの設定が済めばサーバー環境につては、ほぼ作業が終了と考えて良いでしょう。

次は、いよいよデータベースの作成へと進みます。

なぜCentOS6へMariaDBなのか

将来的にデータベースを本気で扱いたいと考えるなら、DBMSの基本知識は身につけておきたいところです。

CentOS6でもMariaDBを使う

当サイトではMariaDBをメインに扱いますが、動作の確認に用いるCentOS6に標準で入っているのはMySQLのほうになります。

当然、置き換えには一手間必要になりますが、わざわざ小技を用いてまでMariaDBにこだわる理由についてあげてみます。

DBMS界の巨人「MySQL」の存在

「SQLと言えばMySQL」情報処理の知識がある人なら、そんな話を耳にした記憶があることでしょう。MySQLはそれほど名前が通っている実績のあるDBMSです。

しかし、最近になってデータベースに興味をもち自分でも実際にサイトからODBC接続に使うドライバなどをダウンロードするようになって気づいたのが、MySQLは現在オラクルの配下で開発が進められているということ。

それに至った経緯やMySQLの将来的な動向など、数宇年前には様々な話題が飛び交っていたようで、現在はややほとぼりが冷めて落ちついた状況のように見受けます。

なぜMariaDBを選ぶのか

特に理由がなければ、私もMySQLを使用してデータベースを学ぼうとしたことでしょう。

とは言っても、たまたま身の回りのネットワークやサーバー環境からMariaDBに好印象を抱いたのがきっかけと言えますが、いかんせん初心者なもので、これといって判断に特別な事情を考慮した訳ではありません。

初めて触れたDBMSがMariaDBだった

たぶん、MySQLほどのメジャーなシステムであれば、レンタルサーバーを契約したことがある人なら意識せずに過去にお世話になっているかもしれません。

そうした意味での経験を除いて、私にとって「これがDBMSなんだな」と意識して初めて触れた(使用した)データベースシステムがMariaDBでした。

たまたま、職場にあったネットワークデバイスが拡張機能でデータベースシステムをインストールできたのですが、興味本位でインストールしたそのDBMSがMariaDBだったというわけです。

名前がお洒落だ

MySQLとMariaDB、どちらも同じ開発者の娘さんの名前が由来になっているのは有名な話ですが、個人的にはMariaDBという名称のほうが柔らかい印象を受けます。

人の名前が由来と聞いてあれこれ言うのも気が引けますが、MySQLには正にSQLの3文字がしっかり入っていて、いかにも専門用語的な固いイメージです。

このように初心者目線から、名前の馴染み安さという意味ではMariaDBに軍配があがると思います。

この先安心して使えるのはどちらか

私の周りの環境では身近にあったビジネスサーバーのOSがたまたまCentOS6だったのですが、その後継バージョンのCentOS7では、やはりMariaDBが採用されています。

そんなことからも、MariaDBにはついつい親近感を抱いてしまいます。

広くサーバーで普及しているRedHat系のOSでもMariaDBが多く採用されてきていて、大手のGoogleもMariaDBに切り替えたとの話からも、MariaDBは将来性が評価できるように感じます。

一方、Oracleのもとで開発が継続しているMySQLも安定性や信頼性といった面で充分評価できることでしょう。

結局は、個人や組織の管理者の好みの問題かもしれません。

ただし、気になるのは初代の開発者がMySQL側に属していないことと、メジャーなディストリビューションがMariaDBへ移行していることなどを考えると、データベースの知識が浅い初心者が向いてしまう方向は自ずと決まってしまうことでしょう。