第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-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 |
■MySQL拡張ライブラリのインストール
Rubyのインストールが終了したら、RubyでMySQLを操作するための拡張ライブラリをインストールします。手順は以下のとおりです。
$ tar xvzf mysql-ruby-2.3.2a.tar.gz |
注: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)したりできます。
以前よりうわさの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つの主なリレーショナルデータベースを紹介する。製品導入の際の参考にしてほしい |
|
|
ホワイトペーパー(TechTargetジャパン)
- natテーブルを利用したLinuxルータの作成 (2010/2/9)
natテーブルを用い、市販のブロードバンドルータと同等かそれ以上の機能を備える「Linuxルータ」を作成してみましょう - Web監視機能を賢く利用する (2010/2/2)
プロセスの稼働確認だけでは、サービスが正常に提供できているか分からないことも。そこで使いたいのがWeb監視です - ものいわぬOpenLDAPサーバのログ管理 (2010/1/20)
不満をいわないコンピュータが相手だからこそ、常にログが確認できる状態を整備することが重要になります - ネットワークアクセス権も放棄せよ (2010/1/12)
新しいセキュリティ機構「disablenetwork」を提案する1通のメールから始まった議論が、LSMも巻き込む話へと拡大しました
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | 企業の仮想化に足りない“発想”とは? 仮想化運用管理のキモは意外なところに! New! |
| ◆ | 操作もマニュアルも分かりやすい! ユーザー視点で開発されたPC管理ツール New! |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |

| ◆ | セキュリティを知り尽くす上野氏が登壇! @ITメールソリューションLive! in Tokyo |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
| ◆ | 世界に通用するストレージの作り方とは? 製品に込めた思いを富士通の開発者に聞く |

| ◆ | OSSで手間も時間も、障害も減った―― 「マピオンの事例」オープンソース活用法 |
| ◆ | 「ノートPCの持ち出し禁止」で大丈夫? 情報漏えいを防ぐ管理手法とインフラは? |
| ◆ | 1日の処理を1秒に――MySQLの達人が語る 「コスト削減」できるチューニング |

| ◆ | ドキュメント作成を自動化して、SEの作業 効率を大幅アップ! Visio 2007の魅力 |
| ◆ | 急速に広がるHyper-Vでのサーバ仮想化 そのベストプラクティスをデルが解説 |
| ◆ | @IT主催セミナーで語られた、「担当者に 求められるセキュリティ対策」をレポート |

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






