【おーあーるえむ】
ORM とは?
最終更新:
💡 オブジェクトとデータベースの表をつなぐ橋
プログラムのオブジェクトと、リレーショナルデータベースの表や行を対応付ける仕組み。ライブラリなどを通して読み書きを扱えるが、SQLやクエリの効率への理解も必要。
📌 このページのポイント
ORMって、データベースの種類?
データベースそのものではなく、プログラムのオブジェクトとリレーショナルデータベースの表や行を対応付ける仕組みだよ。たとえばUserというモデルのidやnameを、users表の列に対応させる。SQLAlchemyなど、ORMを実装するライブラリを使って扱えるんだ
使うと何が楽になるの?
SQLを直接書くより、必ず安全?
必ずではないよ。入力値をSQLの文字列へそのままつなぐと、SQLインジェクションの危険がある。ORMのモデル操作や適切なパラメーター化は対策になるけれど、ORMから危険な生SQLを実行することもできるんだ。直接書くSQLでも、値をパラメーターとして安全に渡せるよ
N+1問題って、ORMの弱点なの?
じゃあORMを使わないほうがいい?
📖 おまけ:英語の意味
「Object-Relational Mapping」 = オブジェクトとリレーショナルデータの対応付け
💬 プログラム側のオブジェクトと、データベース側の表や行を橋渡しするよ。SQLを知らなくてよくなる、という意味ではないんだ