プログラミングの勉強をしていると出てくる用語で、データマッピングとオブジェクトマッピングの違いってなんだろ?
こんにちはJun(@JunNomad)です。
プログラミングの勉強やデータベース周辺の勉強をしていると「データマッピング」と「オブジェクトマッピング」という言葉を耳にするかと思いますが、それぞれの違いについてきちんと理解出来ているでしょうか。
今回は2種類のマッピングの違いについて、自分自身の復習的な意味でも、初心者プログラマー向けにご紹介してみようと思います。
データマッピングとは
データマッピングとは、あるデータ構造を別の構造へと関連付けすることを指します。
例えばデータベースのテーブルに格納されたデータをJSON形式のデータへと関連付けするような行為がデータマッピングに該当します。
データマッピングの目的
データマッピングを利用する目的は、元のデータ構造とは異なる構造で同一データを確認するために活用されます。
メインの目的が別のデータ構造で確認することにあるため、基本的にはデータが変更された際の「同期処理」は行われません。
つまり元のデータ構造の実データとマッピング後の実データは全く異なるものと認識しておくのが良いでしょう。
データマッピングで利用されるデータ構造
データマッピングで頻繁に利用されるデータ構造としては下記の4つが挙げられます。
- データベーステーブル
- クラスフィールド
- JSON
- XML
オブジェクトマッピングとは
オブジェクトマッピングは上述したデータマッピングと異なり、主にデータを「同期化」させて別のオブジェクトとして管理する際に利用されます。
一番有名なオブジェクトマッピングとしては、データベーステーブルとクラスフィールドをマッピングする「Object Relational Mappping(ORM)」の存在が挙げられます。
オブジェクトマッピングの目的
オブジェクトマッピングを利用する目的は、マッピング後のデータ構造のデータを変更した際に、マッピング元のデータにも変更を反映させることにあります。
ORMを利用したケースでは、クラスに定義したメソッドでデータの変換を行い、その変換されたデータをデータベースに格納された値にも反映させる用途で利用します。
オブジェクトマッピングの同期化は即時反映?
オブジェクトマッピングではデータの同期化を目的とするとご説明しましたが、言葉通り同期化が即時に行われるのかというと、利用するソフトウェアにより異なります。
即時同期されるような仕組みで設計されたソフトウェアもあれば、効率性を重視して一定のルールで蓄積したデータをまとめて同期させるようなソフトウェアも存在するようです。
データマッピングとオブジェクトマッピングの違いとは?
結論としてデータマッピングとオブジェクトマッピングの違いは何なのかもう一度おさらいしておきましょう。
データマッピングの利用目的は、2つの異なるデータ構造をマッチさせることを目的としており、データを追加したり変更したりといったデータ自体を操作する用途は含まれません。
対して、オブジェクトマッピングについては、2つのデータ構造間を同期化させることで、データ自体を操作出来るようにする仕組みのことを指します。
さいごに:データマッピングとオブジェクトマッピングの概念の違いを理解した上でツールを使いこなそう!
本記事では、データマッピングとオブジェクトマッピングの違いについてご紹介してきました。
おそらく様々なプログラミング関連のページでは、データマッピングとオブジェクトマッピングという言葉が今回ご紹介した内容通りに利用されていないこともあるかと思います。
一般的な使用方法としては今回ご紹介した内容で問題ないはずですので、マッピングという言葉が出て来た際には、どちらの意味で利用されているのかしっかりと把握したうえで開発を勧めていきましょう。