Rubyで作るデータベースCGI:快速MySQLでデータベースアプリ!(7)(1/3 ページ)
日本発のオブジェクト指向スクリプト言語RubyとMySQLは非常に相性がいい。今回はこのRubyを使ってデータベースアプリを作ってみよう。
日本発のスクリプト言語、Ruby
Rubyは、まつもとゆきひろ氏が開発されたオブジェクト指向スクリプト言語です。Rubyを紹介する際は、このように単なるスクリプト言語ではなく「オブジェクト指向」が枕言葉のように付いてきます。「オブジェクト指向」というとVisual C++の悪夢から敬遠したくなりますが、Rubyは本当に「楽しくプログラミングできる」言語です。
Perlと同様に変数宣言が不要なのにシンプルな文法が使えることから、可読性の高いソースにすることができます。またメモリ管理も考慮されており、Javaのようなガベージコレクションを備えているため、メモリリークなどにプログラム作業の時間を割かれることも少なくなります。そのため、「Ruby = Perl + Java」と考える方も少なくないようです。
国産言語ですから、ドキュメントも当初から日本語で整備されていますし、日本語で質問もできます。また、MySQLへの対応も万全です。RubyからMySQLへの操作を可能にする「MySQL拡張ライブラリ」は、MySQLの大御所とみたまさひろ氏が開発したものです。
では、日本人に生まれた幸せをかみしめつつ、Rubyを試してみましょう。
Rubyと拡張ライブラリのインストール
RubyからMySQLを利用するには以下のファイルが必要です。
- Ruby本体(ruby-1_6_3_tar.tgz)
http://www.ruby-lang.org/ja/ - MySQL拡張ライブラリ(mysql-ruby-2.3.2a.tar.gz)
http://www.tmtm.org/ja/mysql/ruby/
Rubyのインストール
まずRubyのインストールです。ソースコードを使う場合は、次のようにインストールします。
$ tar xvzf ruby-1_6_3_tar.tgz $ cd ruby-1.6.3/ $ ./configure $ make $ make test $ su # make install
MySQL拡張ライブラリのインストール
Rubyのインストールが終了したら、RubyでMySQLを操作するための拡張ライブラリをインストールします。手順は以下のとおりです。
$ tar xvzf mysql-ruby-2.3.2a.tar.gz $ cd mysql-ruby-2.3.2a/ $ ruby extconf.rb $ make $ ruby -I. test.rb サーバ名 ユーザー名 パスワード (データベース名) $ su # make install
注:test.rbの引数にはMySQLが動作しているサーバ名、接続するユーザー名、パスワードを入力します(ユーザーはMySQL上でデータベースを作成することができるユーザーです)。仮のデータベースを作成して削除するだけの、文字どおりMySQL拡張ライブラリのテスト用スクリプトです。データベース名は何でも構いません。「rubytest」という名前の既存データベースがなければ、空欄でOKです。
RubyのコマンドラインオプションはほぼPerlに準拠しています。
-I.はファイルの読み込みパスの指定です。test.rbの中にrequire "./mysql.o"という行があり、コンパイルが終わったばかりのオブジェクトファイルをカレントディレクトリから読み込むために-I.でロードディレクトリを“.”(カレント)に指定しています。
そのほかに、-SでWindows版Rubyなどのように#!/usr/local/bin/rubyを認識しないOSで代わりをさせたり、-Kで漢字コードを指定(EUCなら-Ke)したりできます。
今月のMySQL
4月末現在では3.23.37がリリースされています。3.23.36からのバグフィックス以外に大きな変更は特に行われていません。
以前よりうわさの4.0.0ですが、開発は進んでいるようです。今後4.0.0ヘシフトしていくことで、「高速なMySQL」から「高速で高機能なMySQL」へ変化していくことでしょう。現在4.0.0(Development; Alpha)をダウンロードすることはできませんが、4.0.0で何を目指しているか下記URLで確認できます。
http://www.mysql.com/documentation/mysql/bychapter/manual_TODO.html#TODO_MySQL_4.0
この文章の最後、
H.4 Some things we don't have any plans to do
Nothing; In the long run we plan to be fully ANSI 92 / ANSI 99 compliant.
を読む限りまだまだMySQLの面白みは尽きないようです。あとは「long run」がどの程度かかるものなのかが気になるところです。
Copyright © ITmedia, Inc. All Rights Reserved.