« Home | TOC(Table Of Contents:目次) » | Table Functions » | Data Pump:Not Just for Data Moves » | A command line history for Linux users » | DBMS_PROFILER: PL/SQL Performance Tuning » | Thanks for the question regarding "anydata type" » | Undocumented secrets for super-sizing your PGA » | Oracle SQL Injection Attacks » | How to unwrap Oracle PL/SQL » | Using an Oracle database link to connect to Excel »

Ruby on Rails on Oracle: A Simple Tutorial

登録・解除はこちらから
http://www.mag2.com/m/0000200441.htm

今までの目次です。
http://imoment.blogspot.com/2006/11/toctable-of-contents.html

こんにちは。いつもご購読ありがとうございます。
新しくご購読いただいた皆様始めまして^^

今日は久々にOTN(Oracle Technology Network)から引用します。
Ruby on Railsに関するSimple Tutorialです。

Tutorialという言葉は日本でもおなじみですね。
とりわけITの世界においてはマニュアル代わりの
利用方法学習システムを意味しています。

Tutorが個人教師を意味するのと同様に
Tutorialは本来は個人指導を意味しています。


Rubyという言語は日本人である「まつもとゆきひろ」さんによって
開発されたことは有名ですが、Ruby on Rails(通称RoR、Rails)は
DenmarkのDavid Heinemeier Hanssonさん(27)によって開発されました。

公開(2004/7)からわずか2年で旋風のように
広まっているRubyによるWEBアプリ開発フレームワークです。

かのTim O'Reilyさん(オライリー本のお方)もRoRの上昇に
興味を抱いています。ご本人のブログでも示されている通り、
既にPythonとPerlを抜き去って、JavaScript、C#と同じ上昇カーブを
描いています。この流れに反してJava、C++、PHPは下降線です。
<Tim O'Reilyさんのブログ>
http://radar.oreilly.com/archives/2006/08/programming_language_trends.html

■ OTN (Oracle Technology Network)
http://www.oracle.com/technology/index.html
■ 引用ページ
http://www.oracle.com/technology/pub/articles/haefel-oracle-ruby.html
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
記事本文
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
◆ What is Rails For?

Rails is designed from the ground up to create dynamic Web sites that
use a relational database backend. It adds key words to the Ruby
programming language that make Web applications easier to configure.
In addition, it's designed to automatically generate a complete, if
somewhat crude, Web application from an existing database schema.

The latter is both Ruby's greatest strength and its Achilles' heel.
Rails makes assumptions about database schema naming conventions that,
if followed, make generating a basic Web site a matter of executing
single command. But to do this may require additional configurations
or in some cases may not be possible at all.

You're also likely to find that just about every database convention
that Rails expects can be overridden, but the more overriding that
is needed, the less productive the platform becomes. This is why
Rails is great when developing "green-field" applications with new
databases. Unfortunately, it's not a great solution when dealing
with legacy systems.

___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
英語の解釈
※自然な語順で解釈する癖をつけるために敢えて不自然な日本語に
なっているところがあります。 ()書きは後続修飾節の修飾対象です。
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
◆ What is Rails For?
Railsの適正は?

Rails is designed from the ground up to create dynamic Web sites that
use a relational database backend.

RailsはバックエンドにRDBを利用する動的なWebサイトを
ゼロから構築するために設計されています。

It adds key words to the Ruby programming language
それはRubyにキーワードを追加します。

that make Web applications easier to configure.
それ(キーワード)はWebアプリの構成をより簡単にします。

In addition, it's designed to automatically generate
その上、それは自動的に生成するように設計されています。

a complete, if somewhat crude, Web application from an existing database schema.
完全な、ちょっと雑な、Webアプリを既存のDBスキーマから(自動生成するよう)

The latter is both Ruby's greatest strength and its Achilles' heel.
後者はRuby(Rails)の最大の強みであり弱点でもあります。

Rails makes assumptions about database schema naming conventions
Railsは仮定します。DBスキーマの命名規約について

that, if followed, make generating a basic Web site a matter of executing
single command.
もしその規約が守られたなら、基本的なWebサイトの生成を1コマンドで可能にしてしまいます。

But to do this may require additional configurations
しかし、それを行うことは(DB側の)追加の構成を必要とする可能性があります。

or in some cases may not be possible at all.
または場合によっては全く不可能にしてしまうかもしれません。

You're also likely to find
また、あなたは見つけるかもしれません。

that just about every database convention
ほとんど全てのDB規約

that Rails expects
Railsが期待する(DB規約)

can be overridden,
無効化させることができることを(見つけるかもしれません)

but the more overriding that is needed,
しかし、必要とされるオーバーライドをすればするほど、

the less productive the platform becomes.
そのプラットホーム(Rails)生産性低下をどんどん招いてしまいます。

This is why
これが理由です。

Rails is great
Railsが素晴らしい(理由です)

when developing "green-field" applications with new databases.
新規アプリと新規DBの開発をするとき(素晴らしい)

Unfortunately, it's not a great solution
残念なことに、それは素晴らしくありません。

when dealing with legacy systems.
レガシーシステムを扱うとき(素晴らしくありません)


------------------------------------------------------
★ 英語の語順での解釈の元祖はこちら

SIM:スーパーエルマー
http://jpan.jp/?simurl

通常の体験CDよりも豪華な体験版CDが手元にあるので
ご希望の方はこのメールのreplyにて希望の旨お知らせ下さい。
------------------------------------------------------

___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
英語解説
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

from the ground up

※基礎(土台)から
from scratchの方が良く聞くかもしれませんが、「新規」の代替表現です。


dynamic Web sites

※RailsはAjaxを簡単に実装するための機能が盛り込まれています。

(ajaxについては以前の発行とりあげています)
【Building an Ajax Memory Tree】AjaxによるOracleアプリstep by step
http://imoment.blogspot.com/2006/11/building-ajax-memory-tree_07.html


that make Web applications easier to configure.

※make ~ 形容詞で、~を形容詞の状態にさせるという使役動詞のケースです。
ここではWebアプリを簡単にしています。
thatは直前の文章である、RailsがRubyに追加したキーワード
(もしくは追加されたことそのもの)を指しています。


a complete, if somewhat crude, Web application from an existing database schema.

※間に「if somewhat crude」が入っているので少し難しくなっています。
completeはWebアプリを形容しています。

crude:原油、原料などの名詞ですが、シンプルとか洗練されていないという
ニュアンスもあります。


The latter is both Ruby's greatest strength and its Achilles' heel.

※Achilles' heel:アキレス腱(発音はカタカナと異なるのでご注意ください)
(e)kili:z (kiがアクセントで(e)はschwa(あいまい母音)です)


Rails makes assumptions about database schema naming conventions

※assumption:仮定、想定
naming conventions:命名規約
conventionは慣習、(大きな)集まり、規約の3種類の意味を持っています。
「複数の人間の間での暗黙の決まりごと」だとイメージするといいと思います。


that, if followed, make generating a basic Web site a matter of executing
single command.

※ここでも「if followed」が割り込んでいるので難しくなっています。
しかもここのmakeを使った使役動詞は、目的語が「generating a basic Web site」
で、補語が「a matter of executing single command」とそれぞれが長くなっており、
さらに難しくなっています。

matter of ~:~の問題


You're also likely to find

※likely:期待や可能性を表現したい場合に使用します。


that just about every database convention

※just about:ほとんど(=almost,very nearly)


can be overridden,

※override:優先させる。無効化させる。
オブジェクト指向の用語で、同じ処理名で本来の処理と別の
処理を作成する場合などを指してこの用語を使用します。


but the more overriding that is needed,
the less productive the platform becomes.

※the 比較級1,the 比較級2で、比較級1すればするほど、
比較級2になるという表現になります。

platform:Railsのようなフレームワークの代替表現です。


when developing "green-field" applications with new databases.

※"green-field" app~:草原、これも新規開発の代替表現です。


___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
★ 英語ぷちクイズ ★

※答えと思うリンクをぷちっとクリックしてください。
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
☆一般的なくみ合わせはどれでしょうか。

A.across B.around C.throughout

☆1.() the company.(会社全体で)

◆A. http://clickenquete.com/a/a.php?M0002066Q0017862A11921
◆B. http://clickenquete.com/a/a.php?M0002066Q0017862A250cb
◆C. http://clickenquete.com/a/a.php?M0002066Q0017862A30b9d
○結果を見る
http://clickenquete.com/a/r.php?Q0017862C9f4a

☆2.() the world.(世界中で)

◆A. http://clickenquete.com/a/a.php?M0002066Q0017864A11dd7
◆B. http://clickenquete.com/a/a.php?M0002066Q0017864A20af4
◆C. http://clickenquete.com/a/a.php?M0002066Q0017864A3ec78
○結果を見る
http://clickenquete.com/a/r.php?Q0017864C5936

☆3.() the country.(国全体で)

◆A. http://clickenquete.com/a/a.php?M0002066Q0017865A11370
◆B. http://clickenquete.com/a/a.php?M0002066Q0017865A26559
◆C. http://clickenquete.com/a/a.php?M0002066Q0017865A37bc2
○結果を見る
http://clickenquete.com/a/r.php?Q0017865Ca8ad


(注)文脈次第ではどれでも当てはまります。
こたえは次回に発表します。


------------------------------------------------------
★ ランキングにも参加しております

こちらもクリックしていただけるとありがたいです。
「ブログランキング」
http://blog.with2.net/link.php?377277
------------------------------------------------------

■ 前回のこたえ

☆どちらが自然?

コーヒーとってくるね

◆I will bring some coffee.
◆I'm going to bring some coffee.
○結果を見る
http://clickenquete.com/a/r.php?Q0017728C10ae

どの文脈でもそうとは限らないのですが、
willは今ちょうど思いついた場合に使い、
be going toは既に予定されている場合に使う。
という考え方あります。

今回の場合はwillの方がどちらかと言えば自然です。
でもbe going toでも全く問題ありません。

ちなみにbringを利用する場合は単純に運んでくるニュアンスになりますので、
starbucksなどでカウンタに既に出ているコーヒーをとってきたり、
自分の家のキッチンへ取りに行く場合は自然ですが、
これから店員さんに注文する場合は不自然になります。
その場合はI'll get some coffee.の方が自然です。

___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
Oracle解説
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
引用文中に記載されている、DBに対する規約ですが、
プライマリキーは1列のみ、その列名はid、テーブル名は複数形(sをつける)
などがあります。
なので既存システムへの適用には乗り越えなければならない障害があります。


引用先で紹介されているTutorialを少し解説します。

■ Step1:Set up the Oracle database

まずご自分のPCにOracleが入っていない場合、以下のリンクより入手して、
インストール、DB作成まで行う必要があります。
http://www.oracle.com/technology/software/products/database/xe/index.html

無事DB作成まで完了できたらRuby用のユーザとテーブル、シーケンスの作成です。

GRANT dba TO ruby IDENTIFIED BY ruby;
-- grantと同時にdba権限のユーザが作成されます。

ALTER USER ruby DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp;
-- tablespaceはご自身のDB環境に合わせて適宜変更してください。

CREATE TABLE comics (
id NUMBER(10) NOT NULL,
title VARCHAR2(60),
issue NUMBER(4),
publisher VARCHAR2(60),
PRIMARY KEY (id)
);
-- Primaryキーはidという名前で2列以上指定しないようにします。
-- comicsは必ずsをつけるところがポイントです。

CREATE SEQUENCE comics_seq;

特に説明は明記されていませんが、
リスナーを起動しておく必要があります。
このリスナーに対する接続識別子は後でRailsの設定で必要になります。


■ Step 2: Install Ruby, RubyGems, Rails, and the Rails Oracle library

以下のサイトから適当なバージョンのOne-Click Ruby Installerをダウンロードします。
http://rubyinstaller.rubyforge.org/
ダウンロードされたファイルを実行してボタン連打でインストールします。

コマンドラインから以下のコマンドを叩きます。
C:\> gem install rails -v 1.0.0 --remote
ここでインターネットに接続している必要があります。
プロキシサーバを使っている場合は、set http_proxyでサーバのIPとポートを
設定する必要があるようです。

次にOracle Rails libraryをインストールします。
以下のサイトから
http://rubyforge.org/projects/ruby-oci8
以下のファイルをCドライブ直下にダウンロードし、
ruby-oci8-0.1.13-mswin.r
以下のコマンドを叩きます。
C:\> ruby ruby-oci8-0.1.13-mswin.rb


■ Step 3: Create the Web Application

あと少しで出来上がります。

C:\> rails comics_catalog
C:\> cd comics_catalog
C:\comics_catalog>

comics_catalog\configの下にdatabase.ymlというファイルがありますので、
ご自身のDB用にdevelopmentプロパティを書き換えます。

<変更前>
development:
adapter: mysql
database: rails_development
host: localhost
username: root
password:

<変更後>
development:
adapter: oci
username: ruby
password: ruby
host: RAILS

※host: RAILSの部分は自分のDB用の接続識別子を指定します。

C:\comics_catalog> ruby script/generate scaffold Comic

以下のコマンドでWebサーバを起動します。停止したい場合はCtrl+Cです。
C:\comics_catalog> ruby script/server

ブラウザで以下のURLにアクセスすると出来上がっています。
http://localhost:3000/comics/list


本当に単純なサンプルなのでスムーズに行けば数分でWebアプリが完成します。
物足りない方は、もう少し歯ごたえがありそうな演習が以下のリンクに
ありますのでトライしてみてください。
http://www.oracle.com/technology/pub/articles/saternos-rails.html


___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
編集後記
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
今号からご購読いただいた皆様はじめまして。
本日も最後まで読んでいただきありがとうございます。

米国での中間選挙(midterm elections)ですが、
マイケルJフォックスさんのYouTubeを拝見してから少し興味を持っています。

http://www.youtube.com/watch?v=a9WB_PXjTBo

Stem Cell Researchを支持しない政治家(Jim Talent,共和党)さんは
マイケルさんの映像を演技であり、病気のふりをしているとなじっているそうです。
Stem Cell Researchが国から支持されれば、マイケルさんのような
パーキンソン病や、半身不随など、今希望を失って苦しんでいる
人々が救われる可能性がとても高くなります。

They say all politics is local but that isn't always the case.
what you do in Missouri matters to millions of Americans,
Americans like me.

これは世界的に影響のある決断ですね。
各州で開票が始まっていますが、共和党の敗色が濃厚です。
Jim Talentさん(共和党) vs Claire McCaskillさん(民主党)のミズーリ州は
僅差の激戦が予想されております。

それではまた。

___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
おわりに
___________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
記述誤りなどのご指摘、
記事に関する疑問点・質問・感想・ご意見・ご感想など
yakusa_oracle@yahoo.co.jpまでお願い致します。

簡単な自己紹介はこちら
http://pr2.cgiboy.com/S/3191274

バックナンバー兼ブログはこちら
http://imoment.blogspot.com/

登録・解除はこちらから
http://www.mag2.com/m/0000200441.htm

About me

  • I'm yaksa
  • From Tokyo, Japan
My profile
にほんブログ村 IT技術ブログへ

blogRanking