「ActiveRecord」と「ORM」の違い

ActiveRecordはRuby on Railsの具体的なORMフレームワークで、ORMはデータベースとオブジェクトを対応させる設計パターンの総称です。

ActiveRecord

ActiveRecordはRuby on Railsフレームワークに組み込まれたORM実装です。データベースのテーブルをRubyクラスに自動的にマップし、SQLを直接書かずにオブジェクト指向的にデータベース操作ができます。マイグレーション機能も備えています。

例:User.where(age: 20).find_each { |user| puts user.name }

ORM

ORMはObject-Relational Mappingの略で、リレーショナルデータベースのテーブルとプログラムのオブジェクトを対応させる設計パターンです。様々なプログラミング言語やフレームワークで実装されており、SQLの複雑さを隠蔽します。

例:JavaのHibernateやPythonのSQLAlchemyでもテーブルをクラスに対応させる

両者の違い

ActiveRecordはRails専用の具体的なフレームワーク実装を指し、ORMはパターンの総称です。ActiveRecordはRailsで開発する際に最初から使える便利なツールですが、ORMはJavaのHibernate、PythonのSQLAlchemy、JavaScriptのSequelizeなど、多言語・多フレームワークで存在します。ActiveRecordはRails独特の慣例を使い高速開発を目指し、ORMは汎用的な設計原則です。

どちらを使うべき?判断のポイント

Rails開発ならActiveRecordを選びます。複数言語対応やフレームワーク非依存の設計を重視する場合は、汎用ORMの知識が必要です。ActiveRecordはRails独特の慣例に従う学習が効率的です。

それぞれの語をさらに詳しく

語彙の星図で「ActiveRecord」と「ORM」のつながりを探索する →