Os dois artigos a seguir de Scott Ambler são fundamentais:
http://www.agiledata.org/essays/mappingObjects.html
http://www.agiledata.org/essays/impedanceMismatch.html
A geração atual de persistência Java (Hibernate / JPA) está baseados nesses conceitos.