IT用語
(
ひよぺん
)
Home
コラム
用語集
About
検索
Ctrl K
Esc
見つかりませんでした
調べたいIT用語を入力してね
ORM
おーあーるえむ
データベース
用語集
› 🗄️ データベース › ORM
【おーあーるえむ】
ORM とは?
最終更新:
2026年3月25日
💡 オブジェクトとDBテーブルの「自動翻訳」
📌 このページのポイント
Object-Relational Mappingの略
Prisma
(
TypeScript
)、SQLAlchemy(
Python
)、ActiveRecord(
Ruby
)が代表的
SQL
を書かずに
プログラミング言語
のコードでDB操作が可能
N+1問題
やパフォーマンスの罠に注意が必要
オブジェクト
class User
name: string
email: string
save()
find()
delete()
ORM
自動変換
オブジェクト ⇔ SQL
SQL記述不要
マッピング処理
テーブル
users
name
email
田中
t@ex.com
佐藤
s@ex.com
鈴木
z@ex.com
開発者はオブジェクトを操作するだけでDBアクセスが可能
ORMの役割
ひよこ
なぜORMを使うの?
ペンギン先生
SQL
を直接書くと
文字列
結合で
SQLインジェクション
のリスクがあるし、DB固有の
SQL
方言に依存してしまう。ORMならUser.findById(1)のように
プログラミング言語
の
メソッド
でDB操作できて安全。型チェックも効くからタイポも防げるよ
ひよこ
ORMのデメリットは?
ペンギン先生
①
N+1問題
(関連データ取得で大量の
クエリ
が発行される)、②複雑な
クエリ
が書きにくい、③生成される
SQL
が非効率なことがある、④ORMの
抽象化
に隠れて
SQL
の理解が浅くなる。特に
N+1問題
は知らないとパフォーマンスが数十〜数百倍悪化するから要注意だよ
ひよこ
N+1問題
って何?
ペンギン先生
ユーザー一覧と各ユーザーの投稿を取得する場合、①ユーザー一覧取得で1
クエリ
、②各ユーザーの投稿取得でN回
クエリ
、合計N+1
クエリ
。ユーザー100人なら101
クエリ
。Eager Loading(
JOIN
やINCLUDE)を使えば1〜2
クエリ
で済む。ORMを使うなら必ず
SQL
ログを確認する習慣をつけようね
ひよこ
ORMなしで開発する選択肢は?
ペンギン先生
クエリビルダー
(Knex.js、Kysely)は
SQL
の構造を活かしつつ型安全に書ける中間的な選択肢。
SQL
をそのまま書くならsqlcや
Prisma
のtypedSQLで型安全な
SQL
が可能。「ORMは不要悪」という過激な意見もあるけど、
CRUD
が中心のアプリならORMの生産性は高いよ
まとめ:ざっくりこれだけ覚えればOK!
「ORM」って出てきたら「
オブジェクト
とDBを橋渡しする
ライブラリ
」と思えればだいたいOK!
📖 おまけ:英語の意味
「Object-Relational Mapping」
= オブジェクト関係マッピング
💬 Object(オブジェクト)とRelational(関係DB)のMapping(対応付け)だよ
🔗 あわせて読みたい
データベースマイグレーション とは?
リレーショナルデータベース とは?
SQL とは?
📝 この用語に関連するコラム
📝
「Attention Is All You Need」の発明者がOpenAIへ — TransformerがAIを変えた理由
📝
ORMの仕組み
📝
【2026年版】Terraformの始め方 — インフラをコードで管理する第一歩
シェアする
X
URLコピー
← 用語集にもどる