【3/18〜】Amazon、VMwareが語る『クラウドの未来』 スラッシュドット    はてなブックマーク  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-
  TomcatやJBossなどAPサーバ環境に関する
情報を集約! “業務”用APサーバ大百科

New!
  一気に解説! 最新のクラスタストレージ
「RAIDを超えたストレージ基準」……など

New!
  クラウド的ユーザー体験の変化は脅威か?
仮想化技術を使いこなす運用管理術を紹介

New!

  上司や部下、部署内メンバーとの情報共有
を“ガラッ”と変えるコラボツールとは?

New!
  おばかアプリ選手権、第4弾開催中!!
ムダにカッコよくてくだらない作品求ム!

  社内ファイルサーバを“クラウド”に統合
VPN直結「クラウド型ストレージ」を紹介

  Twitterのアカウントはなぜ突破された?
メールによる新手の攻撃手法とその対策

  もう仮想化のお試しフェイズは終わりだ!
Hyper-V 2.0が基幹システムも仮想化

  美人!? まあまあ? 気になる いやし系!!
PV急増で「美人時計」がとった手段とは?

  クライアント企業から求められる人材
⇒IT技術と経営戦略を併せ持つ「戦略家」

  .NET編集長が実践する「技術情報検索術」
サンプル・コードを簡単に探す“技”は?

  業務効率と情報セキュリティ対策を両立!
手間なく確実に機密情報を守る方法とは?

  進化を続ける富士通ストレージETERNUS DX
製品開発者の自信を裏付けるものとは何か

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

  【CTC事例】約30の基幹システムを統合!
膨大なバッジジョブを制御した方法は?

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

  その数、なんと400台以上! グループ内
サーバの「統合管理」によるメリットは?