ORM
別名: Object-Relational Mapping / オブジェクト関係マッピング / オーアールエム
ORM はデータベースのテーブルとプログラムのオブジェクトを対応づけ、SQL を直接書かずにデータを操作できるようにする仕組み。型安全なクエリやスキーマ管理を提供する一方、接続設定やクライアント生成でつまずきやすい。
公開:
定義
ORM(Object-Relational Mapping)は、リレーショナルデータベースのテーブルやレコードを、プログラム側のクラス・オブジェクトへ対応づける技術である。
開発者は SQL 文を直接書く代わりに、メソッド呼び出しでデータの取得・保存ができる。Prisma や TypeORM、SQLAlchemy などが代表例。
詳細
多くの ORM はスキーマ定義から型やクライアントコードを生成し、補完と型チェックの効いたクエリを提供する。
マイグレーション機能でテーブル構造の変更履歴も管理できる。
実行時にはデータベースへ接続するため、接続文字列やクライアントの生成手順が正しくないと動かない。
生成物の初期化漏れは Prisma Client did not initialize として現れる。
よくある誤解
ORM を使えば SQL を学ばなくてよい、というわけではない。
発行される SQL や N+1 問題を理解していないと、性能劣化や想定外のクエリにつながる。
また ORM は万能ではなく、複雑な集計では生 SQL のほうが適する場面もある。
関連
開発中の接続過多は Too many connections、到達不能は Can't reach database server を参照。
スキーマ変更を反映する操作がマイグレーションである。