オブジェクト関係マッピング
オブジェクト指向プログラミングでは、データ管理タスクは一般に単純なスカラーではない値を持つオブジェクトを操作するよう実装される。例として、1人の人物に0個以上の電話番号と0個以上の住所が対応している住所録での住所検索を考えてみよう。オブジェクト指向的な実装では、「人物オブジェクト」に住所録の内容を格納する「スロット」が備わっているような形態でモデル化される。スロットとしては、氏名、電話番号のリスト(または配列)、住所のリストが考えられる。電話番号リストは「電話番号オブジェクト」で構成され、他も同様に対応するオブジェクトで表される。プログラミング言語からは、ある人物の住所録がひとつの値として扱われる(例えば、1つの変数で参照される)。このオブジェクトに対して、推奨電話番号を返すメソッド、自宅電話番号を返すメソッド、などの各種メソッドが関連付けられる。
しかし、データベース言語SQLを使った一般的なデータベース製品では、格納し操作できるのはスカラー値(整数、文字列)だけであり、スカラー値による表を形成している。
プログラマは、オブジェクトをデータベースに格納可能な単純な値のグループに変換するか、プログラムをデータベースに合わせて単純な値だけを扱うようにしなければならない。オブジェクト関係マッピングは前者の手法を実装するものである。
この問題の要点は、オブジェクトをデータベースに格納可能な形式に変換し、後で容易に検索できるようにし、同時にオブジェクト同士の関係の特性を保持する点である。このようなオブジェクトを永続的であるという。