FriendlyはRuby製のオープンソース・ソフトウェア。ここ最近話題になっているのがNoSQLという概念だ。NoSQLというのはRDBMSのようにスキーマを定義してリレーションを組んだものではなく、いわゆるスキーマレスで柔軟なシステム開発を可能にするデータベースだ。

ピクチャ 61.png

こんな感じで定義する。まさにNoSQL

 

AmazonのSimpleDBやGoogle App EngineのDataStoreなどが良く知られているが、同様のNoSQLをMySQLで実現するのがFriendlyだ。FriendlyはRails用に開発されているライブラリで、スキーマを定義することなくデータベースを利用できるようにするものだ。

Friendlyはクラス名をテーブル名とし、クラスの中で定義した属性を利用できるようにする。特にその要素名でフィールドを作る訳ではなく、attributesというテキストフィールドに全て入れてしまうようだ。とは言え検索は自由にでき、inを使ったデータ抽出にも対応している。

ピクチャ 62.png

アソシエーションにも対応

 

インデックスにも対応しており、定義すると自動的に別なテーブルが作られるようになっている。さらにキャッシュ機能もあり、memcachedを使ってデータをキャッシュできるようになっている。その他スコープやアソシエーションにも対応しているので、O/Rマッパーとして必要そうな機能は揃っていそうだ。

DataStoreを使いこなそうと思うと経験とそれに合わせたデータの持たせ方が重要だが、FriendlyはRDBMSとNoSQLの間にも成り得そうだ。色々な場面で活用できそうなソフトウェアだ。

執筆時のバージョン

 0.4.1

 

jamesgolick’s friendly at master - GitHub

 http://github.com/jamesgolick/friendly