永続化とO/Rマッピングに関する世界観です。オブジェクト指向も参照のこと。
データの永続化とは、データ(オブジェクト)をメモリ上から、電源を消してもデータが消えることのない不揮発性の記憶装置に保存することを指す。
特に、ユーザーから送られたデータなどが、プログラムと一緒にメモリ上にある場合、永続化を行うことでプログラムが終了してもそのデータが永続的に存続する。
後日注記:単純に永続化するだけならば、オブジェクトをそのままシリアライズして、データファイルに書き出せばいい。実際、この方式はクライアントでもサーバーでもよく使われる。だが、大量の顧客データを扱う場合などに、パフォーマンスや信頼性を考えて、永続化ストレージにはリレーショナルデータベースを用いることが多い。この時、JavaのクラスとリレーショナルデータベースシステムのSQL文を相互に変換し、マッピングするHibernateのようなO/Rマッピングツールが存在する。(しかしながら、Javaのオブジェクト指向とSQLを変換するO/Rマッピングは、「それぞれ全く異なるもの」であるためよく嫌われている。また、永続化のコードは「SQLからPHPでHTMLを変換してリスト表示する」のようなプログラムになるため、よくプログラマから嫌われている。)
以下のページを参考に執筆しました。
Javaでの永続化の関連技術に、JPAやその実装であるHibernateがある。HibernateはO/Rマッピングを行うためのシステムで、O/Rマッピングとはオブジェクト指向とリレーショナルデータベースシステムの間でデータの変換と永続化を行うための技術。
JavaとSQLの間で変換を行うにはマッピングデータが必要だが、HibernateではXML、アノテーション、XDocletなどのメタデータ形式が用意されている。
Java(Webフレームワーク)も参照のこと。
Ruby on Railsを参照のこと。
データをプログラムが終了しても再び読み込めるようにメモリの外の領域に書き出す。
単純な永続化はシリアライズでも可能だが、パフォーマンスなどを考えてリレーショナルデータベースを使う。
O/Rマッピングは、オブジェクト指向のオブジェクトとリレーショナルデータベースのデータを変換するためにマッピングする。