Ⅲ. データベースの保守①

 Raspberry Pi上のデータベースにWindows PCからコンタクトするために、第Ⅰ章でインストールしたMySQL用のODBCドライバーを利用します。そこで、まずODBCドライバーの設定を行います。これを利用してMicrosoft Accessなどからアクセスできるようになりますが、ここではフリーソフトのLibreOfficeを導入して、データベース管理ソフトのBaseを使用します。BaseからRaspberry Piのデータベースworld_heritageにリンクを張ると、データベースのデータを表示したり追加・修正・削除をしたり、自由に操作できるようになります。

1.MySQL用ODBCドライバーの設定

 ODBCについては簡単に説明しましたが、アプリケーションプログラムからDBMS(Database Management System:データベース管理システムまたはソフト)に接続して、基本的な機能を操作できるようにするものです。Microsoft社によって制定され、DBMS製作会社からドライバーソフトが提供されています。MySQL用ODBCドライバーはすでにインストール済みなので、以下の手順に沿って設定を行ってください。

①MySQL環境の編集

 /etc/mysql/my.cnfの bind-address行を、行頭にコメント記号「#」を付けてコメントアウトします。
# # Instead of skip-networking the default is now to listen only on# localhost which is more compatible and is not less secure. #bind-address = 127.0.0.1 # <=== これをコメント化! #

②更新権限の付与

 MySQLにログインして、ユーザーrootとpiの更新権に「すべての権限」を与えるよう指示します。
GRANT ALL PRIVILEGES ON *.* TO root@'192.168.%' IDENTIFIED BY '**1' WITH GRANT OPTION; GRANT ALL PRIVILEGES ON *.* TO pi@'192.168.%' IDENTIFIED BY '**2' WITH GRANT OPTION;
  ※ここに **1はユーザーrootのパスワード、**2はユーザーpiのパスワードを指定します。

③ODBCアドミニストレーターの起動

 Windows OSが32ビット版か64ビット版であるかによって起動方法が異なります。
 ・64ビット版
   画面左下の[スタート]ボタンをクリックして、「プログラムとファイルの検索」窓に
     \Windows\SysWOW64\odbcad32.exe    と入力して[Enter]キーを押下します。
 ・32ビット版
   画面左下の[スタート]-[コントロールパネル]で「管理ツール」を選択し、
  「データソース(ODBC)」を選択します。

④ODBCアドミニストレータの設定

 ・「ODBC データソース アドミニストレータ」ダイアログが表示されるので、
  [システム DSN]タブに切り替えて[追加]ボタンをクリックします。
 ・「データソースの新規作成」ダイアログが表示されるので[MySQL ODBC 5.3 Unicode Driver]を選択して
  [完了]をクリックします。
 ・「MySQL Connect/ODBC」ダイアログが表示されるので、次の項目を入力します。
    Data Source Name: WorldHeritage
    TCP/IP Server: 192.168.0.22  <=== Raspberry PiのIPアドレス
    User: pi
    Password:            <=== piのMySQLログインパスワード
    Database: world_heritage   <=== リストボックスを開いて選択します
   次に[Details]ボタンをクリックして、「Character Set」で[utf8]を選択して[OK]をクリックします。
   [Test]ボタンをクリックします。設定が正しければ次のダイアログが表示されます。
   次のように WorldHeritageが追加されてODBCの設定が完了です。

2.LibreOfficeの導入

 LibreOfficeはOpenOffice.orgから提供されているフリーでオープンなオフィススイートで、Microsoft Officeに類似した機能をもっています。

①LibreOfficeのダウンロード

 LibreOfficeの最新バージョンをLibreOffice公式サイトからダウンロードします。
     LibreOffice(http://ja.libreoffice.org/)
 [ダウンロード]ボタンをクリックして次の画面に進め、利用できるバージョンから最新のバージョン番号をクリックします。

②LibreOfficeのインストール

 ダウンロードした「LibreOffice_5.0.5_Win_x86.msi」を実行するとインストーラが起動し、すべて既定値を選択してインストールします。


3.LibreOfficeのBaseの設定

 画面左下の[スタート]から[すべてのプログラム]をクリックして、プログラム一覧から「LibreOffice 5.0」を選択します。LibreOfficeの構成プログラムが展開されるので[LibreOffice Base]をクリックします。

①ODBCとの接続設定

 「データベースウィザード」のステップ1で、「既存のデータベースに接続」をチェックして、リストボックスから[ODBC]を選択し[次へ]をクリックします。
 ステップ2ではODBC接続のセットアップを行います。[参照]ボタンをクリックするとデータソースの一覧画面が開きます。先ほどODBCのData Source Nameで設定したWorldHeritage選択して[OK]をクリックします。
 「システム上のODBCデータソースの名前」にWorldHeritageが設定されたので、[次へ]をクリックします。
 ステップ3はユーザー認証のセットアップです。「ユーザー名」にpiを入力して[接続テスト]をクリックします。WorldHeritageデータベースにコンタクトできると「接続が正常に確立できました」とメッセージ表示されるので[OK]をクリックして閉じ、[次へ]をクリックします。
 これでLibeOfficeのBaseからWorldHeritageへの接続情報の設定が完了しました。最後のステップでは、設定情報に名前を付けてLibreOfficeに登録します。ラジオボタンやチェックボタンは既定の状態のままで[完了]をクリックします。
 「名前を付けて保存」ダイアログが開くので、適当なフォルダーに保存してください。
 LibreOffice Baseに切り替わってWorldHeritage.odbの画面が現れます。左欄の「テーブル」をクリックすると、データベース名と構成テーブルのツリーが表示されます。この状態でテーブル名をダブルクリックするとテーブルの内容を一覧表示できるのですが、日本語が文字化けしています。これは文字セットのミスマッチが原因です。
 文字セットを正しく設定するために、データベース名world_heritageを右クリックして表示されるメニューの[データベース]から、次のメニューの[プロパティ]を選択してください。
 「データベースプロパティ」ダイアログの[追加設定]タブを開いて、「文字セット」のリストボックスから[Unicode(UTF-8)]を選択して[OK]をクリックします。
 念のために接続情報を確認しておきましょう。先と同様にデータベース名を右クリックして[データベース]をポイントし、次のメニューの[接続タイプ]を選択します。
 「データベースプロパティ」のダイアログが現れるので、[次へ]ボタンで「追加設定」まで進めると、「文字セット」に[Unicode(UTF-8)]が設定されているのが確認できます。
 すぐにでもテーブル内容の表示などを行えるのですが、いったん画面を閉じましょう。


4.Baseを使ってみる

 前節と同じように[スタート]-[すべてのプログラム]でLibreOfficeのBaseを起動します。データベースウィザードが開くので、「既存のデータベースファイルを開く」をチェックします。直下の「最近使用されたもの」には[WorldHeritage]が表示されていると思いますが、そうでなければリストボックスを開いて[WorldHeritage]を選択してください。[完了]をクリックするとBase画面に移動します。

①テーブルの表示と編集

 Base画面左欄の「テーブル」をクリックして構成テーブルのツリーを表示させてください。
 次にheritage_tableをダブルクリックしてください。「テーブルデータビュー」が開いて、テーブルデータを一覧表形式で閲覧することができます。
 ただ閲覧するだけでなく、カーソルを移動してデータ(列またはフィールド)の内容を修正したり、最終行に移動してデータ(行またはレコード)を追加したり、データを削除することができます。SQL文を作成することなく簡単にテーブルの内容を更新できるわけです。
 さらに進んで、テーブルを新設したり削除することも可能です。またLibreOfficeはオフィススイートなので、表計算ソフトのCalc(Microsoft Excelに類似)などと組み合わせて利用することも考えられます。
 テーブルの新設で注意しなければならないのは、テーブル名や項目名(列名)に日本語を使用しないことです。日本語を使用すると文字化けが起きたり、文字化けに起因するエラーが発生します。

②クエリーで結合表を扱う

 ツールバーの[挿入]をクリックして[クエリー(SQLビュー)]を選択すると、クエリーデザイン画面が開きます。
 試しに表結合のSQL文を入力してみましょう(表結合については「Ⅴ.Webアプリケーションの基礎知識」で概説)。
 [F5]キーでクエリーを実行させると、SQL文の上部にクエリー実行結果が表示されます。
 「名前を付けて保存」でクエリー名(ここではListAll)を入力して[OK]で保存します。
 Base画面のクエリーに、保存したListAllが追加されています。
 クエリー名のListAllをダブルクリックすると、「テーブルデータビュー」が開いて結合表が表示されます。このようにクエリーを登録しておくと、登録名をクリックするだけで結果を取りだすことができます。ここではSQL文を入力しましたが、先の[クエリー(SQLビュー)]の代わりに[クエリー(デザインビュー)]を選択して、表や列、結合方法などをインタラクティブに指示しながら設定する方法もあります。
 ListAllを右クリックして[編集]を選択すると「クエリーデザイン」画面が現れます。上部のウィンドウを広げるとテーブルの結合関係がダイアグラムで表示されて、どのように関連づけられているかを視覚的に確認することもできます。