This post originated from an RSS feed registered with .NET Buzz
by Udi Dahan.
Original Post: O/R Mapping meets Mission Critical
Feed Title: Udi Dahan - The Software Simplist
Feed URL: http://feeds.feedburner.com/UdiDahan-TheSoftwareSimplist
Feed Description: I am a software simplist. I make this beast of architecting, analysing, designing, developing, testing, managing, deploying software systems simple.
This blog is about how I do it.
After listening to a recently uncovered gem - polymorphic podcasts the topic of O/R mapping was raised yet again. I will be writing on this topic more in depth in other forums soon, but I wanted to give the executive summary here: O/R mapping is problematic.
The underlying assumption of O/R mapping is based on mapping objects to tables. However, for mission critical systems, the whole idea of updating or deleting rows from the database goes against basic principles. In a not-so-recent podcast from Ron Jacobs, Clemens Vasters described the kind of database design often utilized in high-end systems. There he describes timestamping data with a validity period creating "insert-only databases" - these enable the highest levels of performance and scalability, not to mention regulatory compliance. However, the familiar semantics of updating and deleting entities provided by O/R mapping do not seem to support these scenarios.
But all is not lost! There are solutions. I'll be posting these solutions in the afore-mentioned forums soon.