The Design of an O/R Persistence Framework
This paper presents the design for a robust persistence layer for using relational databases with object-oriented applications. This design reflects my several years of experience building and using such layers in several languages. Issues that are addressed in this paper:
- Kinds of persistence layers
- The class-type architecture
- Requirements for a persistence layer
- The design of a persistence layer
- Implementing the persistence layer
- Buy vs. build
- Doing a data load
- Supporting the persistence layer
Download
- persistenceLayer.pdf (~190k).
- You may find Encapsulating Database Access to be of interest as well.
I hope that you find this white paper useful and I also hope that you help me to improve it by providing me with feedback. What is your organization doing, or hoping to do? If you disagree with anything that I’ve said, think about it first because I don’t like getting flamed, but then email me with your opinions because I want to hear them. If something isn’t well explained or you don’t quite understand it, let me know.
My Other Persistence Writings
- Agile Data Home Page
- A Disciplined Agile Approach to Data Warehouse (DW)/Business Intelligence (BI) Teams
- Database refactoring : The Process of Database Refactoring
- Database refactoring : Catalog of Database Refactorings
- Mapping Objects To RDBs
- The “One Truth Above All Else” Anti-Pattern
- Other Online Writings
- A UML Profile for Data Modeling is now posted at AgileData.org.