【2/17】今年は「濃厚」技術トーク!@ITメールセミナー スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷

第7回 Rubyで作るデータベースCGI

日本発のオブジェクト指向スクリプト言語RubyとMySQLは非常に相性がいい。今回はこのRubyを使ってデータベースアプリを作ってみよう。

鶴長 鎮一(MySQLユーザ会
渡辺 恭弘
2001/5/7

日本発のスクリプト言語、Ruby

 Rubyは、まつもとゆきひろ氏が開発されたオブジェクト指向スクリプト言語です。Rubyを紹介する際は、このように単なるスクリプト言語ではなく「オブジェクト指向」が枕言葉のように付いてきます。「オブジェクト指向」というとVisual C++の悪夢から敬遠したくなりますが、Rubyは本当に「楽しくプログラミングできる」言語です。

 Perlと同様に変数宣言が不要なのにシンプルな文法が使えることから、可読性の高いソースにすることができます。またメモリ管理も考慮されており、Javaのようなガベージコレクションを備えているため、メモリリークなどにプログラム作業の時間を割かれることも少なくなります。そのため、「Ruby = Perl + Java」と考える方も少なくないようです。

 国産言語ですから、ドキュメントも当初から日本語で整備されていますし、日本語で質問もできます。また、MySQLへの対応も万全です。RubyからMySQLへの操作を可能にする「MySQL拡張ライブラリ」は、MySQLの大御所とみたまさひろ氏が開発したものです。

 では、日本人に生まれた幸せをかみしめつつ、Rubyを試してみましょう。

Rubyと拡張ライブラリのインストール

 RubyからMySQLを利用するには以下のファイルが必要です。

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」がどの程度かかるものなのかが気になるところです。

 
1/3

Index
快速MySQLでデータベースアプリ!
日本発のスクリプト言語、Ruby
  Rubyと拡張ライブラリのインストール
 Rubyのインストール
 MySQL拡張ライブラリのインストール
  簡単なサンプルとRubyスクリプトのテスト
  Webアプリケーションの作成
 CGI呼び出し用Webフォーム
 Rubyで作るCGI
  将来も期待できるRuby
  Appendix

連載 快速MySQLでデータベースアプリ!


 Linux Squareフォーラム データベース関連記事
連載:快速MySQLでデータベースアプリ!(全11回)
軽快な動作で知られるRDBMS、MySQLでDBアプリの構築を行う。MySQLのインストールに始まり、PerlやRubyなどのスクリプトでデータベースを操作する方法までを完全解説
連載:今から始める MySQL入門(連載中)
定番のLAMP(Linux+Apache+MySQL+PHP)構成でWebアプリケーション開発に挑戦! サンプルアプリの構築を進めながら、基礎知識や操作方法について詳しく解説する
連載:Oracleマイスター養成講座(全6回)
本連載では、Oracleの管理・チューニング方法を紹介していく。これからOracleを始める人、そしてOracleをより深く理解したい人のための、一歩踏み込んだ実用講座
連載:DB2マイスター養成講座(全7回)
本連載では、DB2 UDBの実践的な運用・管理方法を紹介していく。DB2を利用するうえで必要な知識を、実運用を前提にDB2のプロが解説
特集:エンタープライズ市場に向かうMySQL 5.0[前編]
MySQL 5.0の新機能をアルファ版でチェック
1月に公開された5.0アルファ版は大幅に拡張されており、エンタープライズ市場への進出を予感させる
特集:Linuxで動くリレーショナルデータベース・カタログ
データベースサーバのOSとしてLinuxを採用するケースが増えている。Linuxで動作する7つの主なリレーショナルデータベースを紹介する。製品導入の際の参考にしてほしい

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します

ホワイトペーパーTechTargetジャパン

Linux Square フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)



- PR -
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  企業の仮想化に足りない“発想”とは?
仮想化運用管理のキモは意外なところに!

New!
  操作もマニュアルも分かりやすい!
ユーザー視点で開発されたPC管理ツール

New!
  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  セキュリティを知り尽くす上野氏が登壇!
@ITメールソリューションLive! in Tokyo

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  世界に通用するストレージの作り方とは?
製品に込めた思いを富士通の開発者に聞く

  OSSで手間も時間も、障害も減った――
「マピオンの事例」オープンソース活用法

  「ノートPCの持ち出し禁止」で大丈夫?
情報漏えいを防ぐ管理手法とインフラは?

  1日の処理を1秒に――MySQLの達人が語る
「コスト削減」できるチューニング

  ドキュメント作成を自動化して、SEの作業
効率を大幅アップ! Visio 2007の魅力

  急速に広がるHyper-Vでのサーバ仮想化
そのベストプラクティスをデルが解説

  @IT主催セミナーで語られた、「担当者に
求められるセキュリティ対策」をレポート

  @IT「Windows 7」 特設サイトオープン!
最新情報・移行ノウハウを公開しています