ORMとはなんぞや

f:id:utouto97:20210704222351j:plain

ORM (オブジェクト関係マッピング) とは

ORMとは、Object-Relational Mappingの頭文字をとったものです。
その名前からわかる通り、オブジェクトと関係(関係データベース、RDB)とのマッピングを行うものです。
ここでの、オブジェクトとはオブジェクト指向におけるオブジェクトのことであり、関係とはRDBのことです。

多くのプログラミング言語はオブジェクトを扱うので、そのオブジェクトをRDBに保存できるように、対応付けを簡単にするためORMを使います。
もっと簡単にいうと、SQLを直接書くことなく、オブジェクトのメソッドでDB操作ができる、ということです。
例えば、createメソッドで新規作成を行ったり、destroyメソッドで削除する、といった感じです。

また、DBの作成やマイグレーションといったDB操作もORMで行うことができます。

ORMを使った例を一つ示します。
RailsActiveRecordを使って、ユーザー一覧を取得する場合を考えます。
SQLで書く場合、SELECT文で取得します。

SELECT * FROM users;

一方、Railsの場合はallメソッドを呼ぶだけです。

users = User.all

各言語の有名ORM

それぞれプログラミング言語ごとに、ORMのライブラリがいくつか提供されています。
Ruby on RailsなどのWebフレームワークに、搭載されている場合もあります。

言語 ORM
Ruby ActiveRecord Ruby on RailsのORM
Python SQLAlchemy
Python Django ORM DjangoのORM
Node.js Sequelize
Node.js TypeORM
PHP Eloquent

終わり