君の瞳はまるでルビー - Ruby 関連まとめサイト

データベース関連用語

最終更新: 2016-09-28 (水) 22:34:40 (237d)

リレーショナルデータベース(汎用)

ActiveRecord

  • 各種データベースをサポートする O/R マッパーライブラリである。
  • 各種データベース用にアダプターが用意されており、設定によりアダプターを切り替えることで各種データベースを扱える。
  • O/R マッパーなので SQL を書かないのが基本的である。
  • Active Record という用語自体はデザインパターンの1つでもある。
  • 参考
    • メインサイト - 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でディスクに永続化する。
  • 参考
    • メインサイト - Redis