今回は、少しデータベースに挑戦してみます。といってもあまり複雑なものないし実用的なものは、苦手なので、「百人一首」をデータベース化したいと思います。ネットには、「百人一首」のリソースとして、
・This is の田の資料集
・学ぶ・教える.COM
・学校で使える各種文書
などあり、そのほとんどが、Excel ファイルです。今回は、そのエクセルを、LibreOffice Calc にて、CSVファイルに加工しました。
それを、MySQLに取り込みます。そのためには、下準備も含めて、phpmyadmin が便利なのですが、その前提として、様々なアプリケーションをインストールします。
$ sudo apt-get install mysql-server
$ sudo apt-get install apache2
$ sudo apt-get install php5
$ sudo apt-get install phpmyadmin
$ sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
で、http://localhost/phpmyadmin で、MySQL に接続できます。それを使って、新しいデータベース「100nin」とユーザー「100nin」(パスワードは無しの方が便利でしょう。)を追加します。加工済みのCSVファイルを、データベースに入力しますが、とりあえず、phpmyadmin の「インポート」(CSVファイル)を利用し、後で項目を付け加えたり加工します。最終的には、テーダ構造は、図のようになりました。
次に、LibreOffice Base の方のインターフェイスを準備しますが、JDBCとか、ODBC接続とか話がややこしいので、直接、MySQLに接続するドライバをインストールします。
$ sudo apt-get install libreoffice-mysql-connector
それを使って、LibreOffice Base を使い、MySQL に接続します。インターフェイスとして、Form を作りますが、原型は、Wizart を使ったほうが速いでしょう。それを少し修正したのが、図3と図4です。そのフォームで、足らない部分は、インターネットのリソースを利用しながら、コピー&ペーストなどで埋めてゆきます。画像は、データタイプとして、longblob を設定しましたが、画像入力は、250kb あたりが限界なようで、それ以上だと、Libreoffice Base が落ちます。
以上で、「百人一首データベース」の完成です。
・MySQL ファイル
http://www.nishinari.coop/db/100nin.sql
シェルにて
$ mysql -u 100nin 100nin < 100nin.sql
でインポートされます。
・LibreOffice Base ファイル
http://www.nishinari.coop/db/100nin.odb
http://www.nishinari.coop/db/100nin.odt
同一ディレクトリに置いて、100nin.odb の方を、LibreOffice でオープンして下さい。
- 図1
- 図2
- 図3
- 図4