リレーショナルデータベース(汎用)
ActiveRecord
- 各種データベースをサポートする O/R マッパーライブラリである。
- 各種データベース用にアダプターが用意されており、設定によりアダプターを切り替えることで各種データベースを扱える。
- O/R マッパーなので SQL を書かないのが基本的である。
- 参考
- メインサイト - Ruby on Rails からはまだ完全に独立していないようで、ActiveRecord 単体としてのメインサイトは無い。
DataMapper
- 各種データベースをサポートする O/R マッパーライブラリである。
- gem install data_mapper でインストールする。ネイティブコードを含むため Windows 環境でインストールする場合、事前に DEVELOPMENT KIT のセットアップが必要である。
- 各種データベース用にアダプターが用意されており、設定によりアダプターを切り替えることで各種データベースを扱える。
- アダプターは本体とは別に用意されているので、必要に応じて別途入れる必要がある。
- 調査中。
DataObjects
- 各種データベースをサポートする汎用データベースアクセスライブラリである。
- 各種データベース用に do_xxx という名前のアダプターが用意されており、設定によりアダプターを切り替えることで各種データベースを扱える。
- SQL を書いて実行する。
- DataMapper は、本ライブラリをベースにデータベースにアクセスしている。
Sequel
- 各種データベースをサポートする SQL 文の生成/実行補助ライブラリである。
- 各種データベース用にアダプターが用意されており、設定によりアダプターを切り替えることで各種データベースを扱える。
- メソッドチェーンにより SQL をオブジェクト構造体として扱えるのが特徴である。
- 構造体を自由に再構築できるため、柔軟性が高い。
- 構造体がデータベース毎の差異を隠蔽/吸収してくれる。
- O/R マッパーではない。
リレーショナルデータベース(MySQL)
mysql(=MySQL/Ruby)
- MySQL にアクセスする機能を提供する主流ライブラリの1つである。
- gem install mysql でインストールが必要である。
- 環境依存のネイティブコードを必要とするので、実行環境のセットアップが必要である。
- SQL を書いて実行する。SQL は MySQL 独自の文法に従う。
- Prepared Statement に対応している。
- ActiveRecord でアダプターが提供されており、MySQL にアクセスする際の標準バックエンドライブラリの1つである。
- 以降の開発はバグフィックスのみと宣言されており、利用はあまり推奨されていない。
mysql2
- MySQL にアクセスする機能を提供する主流ライブラリの1つである。
- gem install mysql2 でインストールが必要である。
- 環境依存のネイティブコードを必要とするので、実行環境のセットアップが必要である。
- SQL を書いて実行する。SQL は MySQL 独自の文法に従う。
- Prepared Statement に対応していない。代わりに SQL 埋め込み文字を安全なものにするエスケープ機能が提供されている。
- ActiveRecord でアダプターが提供されており、MySQL にアクセスする際の標準バックエンドライブラリの1つである。
mysqlplus
- MySQL にアクセスする機能を提供する主流ライブラリの1つである。
- gem install mysqlplus だけでは簡単にインストールできない(環境毎に対応が必要な模様で、すぐできなかったのでとりあえず調査中断)。
- 環境依存のネイティブコードを必要とするので、実行環境のセットアップが必要である。
- SQL を書いて実行する。SQL は MySQL 独自の文法に従う。
- MySQL への非同期アクセスによる高速化に力を入れている。
- ActiveRecord でアダプターは提供されていないが、特殊なコードを利用することで mysql2 と置き換えて利用できる。
Ruby/MySQL
- MySQL にアクセスする機能を提供するライブラリである。
- gem install ruby-mysql でインストールが必要である。
- 環境依存のネイティブコードを必要とせず、Pure Ruby で作られており*1、実行環境の複雑なセットアップが不要である。
- SQL を書いて実行する。SQL は MySQL 独自の文法に従う。
- Prepared Statement に対応している。
- 最新の ActiveRecord でアダプターが提供されていないため、MySQL にアクセスする際のバックエンドとして利用できない。
リレーショナルデータベース(Postgres)
pg
- PostgreSQL RDBMS にアクセスする機能を提供するライブラリである。
- gem install pg でインストールが必要である。
- 環境依存のネイティブコードを必要とするので、実行環境のセットアップが必要である。
- ActiveRecord でドライバ提供されており、Postgres にアクセスする際の標準バックエンドライブラリである。
リレーショナルデータベース(SQLite3)
sqlite3
- SQLite(3.6.16 以上)にアクセスする機能を提供するライブラリである。
- gem install sqlite3 でインストールが必要である。
- 以前までは sqlite3-ruby という名前のパッケージだったが sqlite3 に名前が変更になった。
Key-Value ストア
Redis
- 文字列、ハッシュ、リスト、セット、順序付きセットを格納できる Key-Value ストアである。
- データの管理方法にはいくつかの選択肢がある。
- メモリ上で使う。
- 各種の方法*2でディスクに永続化する。
|