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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

NECのLavieLight_PC-BL300/TA6にはmSATAスロットがある

PCの自作などをやっていると空いているスロットは自然に埋めたくなってしまう習慣みたいなものがあります。

NECが発売していたミニノートLavieLight_PC-BL300/TA6BはCPUにAtom_N280を搭載しWindowsXPがインストールされていたマシンですが、この世代のPCからすでにmSATA_SSDというのは存在したようです。

上位機種でSSD搭載済みなら認識可能か

このLavieLightは発売当時、上位機種の「PC-BL350/TA6」で実際にmSATA_SSDが採用されていました。

このSSDとHDDの両方を搭載しているというのが当時としては話題にもなっていたとのことです。

手元のPC-BL300/TA6は2GBメモリへの換装作業の際にmSATAスロットが存在するのを確認しています。

ならば、当然考えられるのがBL350/TA6とBL300/TA6はマザーボードが共通で組み立てるときにSSDを入れるか入れないかだけの違いでハードウェア的な差別化をしている可能性が高いでしょう。

これは、製造コストとマーケティングの両面からみればPCメーカーの常套手段とも言えます。

SanDiskの32GB_mSATA_SSD

PC-BL300/TA6は発売当初のレビューなどを見ると、上位機種BL350/TA6に搭載されていたのは16GBのSSDでした。

SanDiskのSSD

OSがXPでも16GBという容量は少ない感じがします。今回は32GBのmSATA_SSDをオークションで調達しました。
なお、64GBを採用しようとすると今でもお手頃な価格ではなく用途がLinuxなので32GBで妥協します。

マザーボードへのSSD搭載

この機種は、メモリスロット(mSATAスロットも同じく)までのアクセスが難易度の高い機種です。また、分解作業は保証がなくなり事故の危険も伴うので全て自己責任で行うものです。

既存HDDの取り外し

引き出した2.5inchHDD

分解作業は、画像のように2.5inchHDDの取り出しから始めます。バッテリーを外し固定されているネジ2本を取ってしまえば水平に引き出せる仕組みになっています。

分解作業は、メモリ交換の記事に画像を掲載しているので、ここでは省略します。

PC-BL300/TA6BにあるmSATAスロット

取り外したPC-BL300/TA6のマザーボード

メモリ交換のときは、マザーボードを浮かせた状態でメモリの載せ替えを行いましたが、今回はマザーボードを完全に取り外しました。
画像はマザーボードを裏返した状態です。

空になったノートPCのケース

マザーを取り外してしまうと、下側のケースにはスピーカーしか残りません。

マザーボードを取り外すには左上に位置する電源コネクタの固定ネジをはずし左の冷却ファン側から取り出すと素直にはずれます。

mSATAスロットのアップ画像

2.5inch用のSATAコネクタの下にある黒いシートが張られている部分がSSDが入る場所で右側に黒いソケットがあります。

SSDを刺したところ

SanDiskの32GBSSDを装着してみるとピッタリでした。写真では片方でしか固定されていませんがネジ2本で確実に固定します。

SSD装着後は分解と逆の手順で組み立てていきます。

BIOSで認識されたSSD

BIOSで認識されたmSATA_SSD

BIOSで認識されているのが確認できた

SSDの詳細

SSDの部分を表示

元通りに組んだ後、BIOSメニューを起動してみると「>SSD [32017MB]」の部分が追加表示されています。

SSD装着前には「内蔵HDD」の部分しか記載がない状態でした。

起動順位の設定画面

続いて起動順位の設定メニューを確認してみると、「SSD:SanDisk SSD P4 32GB-(S3)」と認識されています。

この部分は、mSATASSDの装着前にも「SSD:」とだけは表示があって、丁度取り出したままのHDDが同じくSSDの上に「内蔵HDD:」とだけ表示されています。

このHDDを抜いたままの状態でSSDにOSをインストールすれば、起動順位が上のHDDは無視されてSSDから起動できます。

OSは現状のHDDに同じくCentOS6を入れてみましたが、たぶん当時のmSATA_SSDとうのはこんなモノなのでしょう。特に起動の早さは実感できません。

PC-BL350/TA6のレビューからもHDDと比較して起動速度が20%早くなった。とありますからmSATA_SSDの性能は「この当時のHDD」と比較して20%しか速度が違わないということになります。

正直、2.5inchのドライブを起動ドライブとしてSATA2あたりのSSDに換装したほうが速度は向上するかもしれません。

ただ、今回の目的は発見してしまった空きスロットを埋めたいというのが目的でしたので、この世代のPCに起動速度の向上を求めるものではないため一応腑に落ちた結果ではあります。

しかし、この世代にサイズのコンパクトなPCで内蔵ストレージを2つ搭載(2.5インチ側もSSDにすればSSDが2台搭載になる)とはなかなかのものですね。

Raspberry_PiでphpMyAdminを使う【ミニサイズのデータベースサーバー】

ハードウェアの処理能力としては貧弱なスペックのRaspberry_Pi3_Model_Bですが、MariaDBのインストールまで済んだところでシステム構成的にはデータベースサーバーの機能を備えたことになります(OSはCentOS7をインストール済み)。

そこで、SQLの専門知識がなくてもデータベースの管理がグラフィカルなUIで楽に行えるようphpMyAdminをインストールします。

Raspberry_PiへphpMyAdminをインストール

phpMyAdminのインストール方法は通常通りApacheのドキュメントルートへダウンロードしてきたphpMyAdminを解凍するだけです。

インストールするバージョンはPHPとMariaDB(MySQL)のバージョンにより適正に選定する必要がありますが、今回は既にダウンロード済みでネットブックへ使用しいるphpMyAdminをコピーしそのまま配置したら、なんと動作してくれました。

バージョンが合っていない可能性はありますが、このRaspberry_Piは仕事に使用するわけではなく動作検証専門ですので、エラーが出たらそのときインストールし直しても問題ないと考えます。

phpMyAdminでのエラー対処

インストールが済んだphpMyAdminですが、WindowsPCからのアクセスで次のエラーが出たので対応しています。

mbstringエラーの修正

ブラウザでのmbstringエラー

このmbstringエラーについてはPHPのインストールについて書いた記事で書いている通りで「php-mbstringとphp-intl」の追加インストールと「php.ini」ファイルの編集で解決しました。

この赤い帯に白字で表示される「phpMyAdmin-エラー」というメッセージはphp関連の環境が完全に整っていないことでphpMyAdminが出すメッセージです。
ちゃんとシステムにアクセスできているのに初期画面(ログイン画面)すら表示せず赤のエラーというのは、phpとMariaDBを関連づけるために重要な部分が整っていないということなのでしょう。

mysqli拡張がありません

mysqliエラーでphpMyAdminへアクセスできない

mbstringエラーが回避できれば、ようやくログイン画面が見れるかと期待していたら、また赤い見出しのエラーが出てしまいました。

「mysqli拡張がありません。PHPの設定をチェックしてみてください。」とのことです。

# yum innstall php-mysql

「php-mysql」をインストール後にApaheを再起動します。

# systemctl restart httpd.service

これらの「systemctl」を使ったコマンドはCentOS7から利用することになったものでCentOS6では別なコマンドでした。

アクセスが成功したphpMyAdmin

phpMyAdminの初期画面

ようやくログインできたphpMyAdmin

目的のシステムが全部無事に整ったところで、小さな巨人Raspberry_PiでもクライアントPCからのアクセスでphpMyAdminのログイン画面が表示されました。

MariaDBのバージョン表示等

ここのバージョン情報の類がMySQLではなくMariaDBと記載されているところに達成感があります。

CentOS6ではリポジトリを使用したのでバージョンが更に新しいものでしたが基盤ペラペラ一枚のRaspberry_Piで検証できたこと自体が成果だと思っています。

データベースをインポートしてみる

phpMyAdminにはデータベースのインポートとエクスポートの機能があります。自分も以前にWordPressのバックアップでレンタルサーバーにあるphpMyAdminのエクスポート機能を使用したことがありますが、CMSのバックアップだとデータベースを扱っている感じがまるでしませんでした。

インポートとエクスポートのタブ

エクスポート・インポートの手順は簡単です。バックアップの場合はエクスポートのタブをクリックし保存する場所とファイル名を指定してバックアップデータを保存します。

サーバーでもクライアントPCでもどちらでも実行可能な機能です。

エクスポートも要領は同じで、インポートをするサーバーのphpMyAdminにアクセスし今度はインポートタブをクリック後に、保存したファイル(拡張しがsql)がある場所(USBメモリでも可)を指定しインポートします。

このとき、インポート側が新規で構築したシステムならインポート先になるデータベースを新たに作成しておかなければエラーが出てしまいます。

インポートした検証用データ

実際に検証用ネットブックサーバーからインポートしたデータベース

このデータも勿論WindowsPCなどのローカルPCからアクセス・編集が可能です(低スペックサーバーなので結構モッサリしますが)。

手順が分かれば簡単に構築できるRaspberryPiミニサーバー

実証できたRaspberryPiミニデータベースサーバー

こうして手のひらサイズの学習用コンピュータ「Raspberry_Pi3_Model_B」にデータベースサーバーを構築することができました。

こうした手順というのは、Linuxエンジニアや専門技術者にとっては基本知識ですが、書籍などで一般に身につけることが難しいテクニックでもあります。

前回のネットブックにしろ今回のRaspberry_Piにしろ、必要な知識量といういのは該当記事に記した程度のものです。

データベースを操るためのテクニックに興味を持つことが出来れば、仕事に限らず趣味や日常生活でも自分の持っている既存データをもっと生かせる機会ができるはずです。

なお、検証に用いたRaspberry_Piですが時間が合ればCUIでのデータベースサーバー化にも挑戦してみたいと考えています。そちらのほうが、きとサクサク動作することでしょう。

CentOS7のRaspberry_Pi3_Model_BへMariaDBをインストール

小さな筐体のRaspberry_PiへGUI環境のLinuxOSを入れApacheとPHPもインストールが出来たところに、いよいよMariaDBをインストールします。

CentOSが最小インストールでなかったのでMariaDBは既に入っているのかと思ったら少し違うようでした。PCでのインストール手順と同様に作業を進めていきます。

Raspberry_PiへMariaDBをインストール

yumを使用してのインストールはCentOS6のときと一緒でした。

このバージョンからはMySQLは入っていないはずなので削除の行程はは要らないでしょう。

# yum install mariadb mariadb server

「mariadb client」を忘れていましたが、その後のサーバー用途の検証では特に問題はありませんでした。

続いてMariaDBの起動の設定です。

# systemctl enable mariadb service

これでOSの起動時にMariaDBがスターとします。

即スタートさせたい場合は次のコマンド。

# systemctl start mariadb

自動起動を設定していないとき、その場でデータベースシステムをスタートさせたい場合に使用します。

システムの状況を表示させたいときは次の通りです。

# systemctl status mariadb

なにやら色々と表示されていますが、MariaDBが起動出来ていればOKでしょう。

status実行後の表示

MariaDBのインストールについては以上の手順ですが、基本的にyumでインストールして自動起動させるだけです。

初期設定の実行

次に実際にデータベースを運用するための初期設定を行います。

# mysql_secure_installation

これもMySQLとは完全互換ですね。

「mysql_secure_installation」を実行すると、いくつかの設定について良否を問われます。

ここでrootのパスワードなどを設定します。

今回は外部のネットワークに接続していないので、最初にEnterを押した後に全てyを入力して済ませました。

ちなみに全部Yで済ませると、クライアントのアプリケーションからrootでのアクセスが禁止されMariaDBでのユーザー作成が必須になります。

文字コードの設定

クライアントPCからデータベースサーバーへアクセスしたときに、文字コードの設定が実行環境に合ってないとデータの文字列が文字化けしたり特定の記号が表示されたりしてしまいます。

# vi /etc/my.cnf.d/server.cnf

viエディタを使いファイルを編集して文字コードを設定します(設定ファイルの場所がたまたまCentOS6のときと同じでした)。

詳しい手法についてはCentOS6で実施したときのリンクを貼っておきますが、これもMariaDBやMySQLのバージョンで違いがあるようです。

db.danman.jp

なお設定後のMariaDBの再起動はコマンドが異なります。

# systemctl restart mariadb

CentOS7では「systemctl」が多用されるようですね。

小さなデータベースサーバー【Raspberry_Pi】

Raspberry_Pi3_Model_Bの基盤

こうして、MariaDBのインストールが済めば小さな「Raspberry_Pi3_Model_B」も機能的には立派なデータベースサーバーです。

ただし、このままではSQLの知識がない人にとってデータベースサーバーとして扱うことができないため、当然phpMyAdminをインストールしていきます。

Raspberry_Piは、そもそも学習用の端末というかペラペラの小さな基盤一枚です。これが、能力がさほどでなくてもDBMSの機能を持っているとなると「基盤好き」な私にとっては何処かワクワクさせられる魅力を感じるものです。

好きこそものの上手慣れ、との通りこうした楽しみを通じて実用的なデータベースの知識が身につけば少し得した気分にもなれそうです。