I am surrounded by X/R and O/R mapping geeks here at Microsoft. (It’s building 35. So there are fewer X/O mapping geeks.) Some of my colleagues are close to a victory over the “Vietnam of Computer Science”. We have real mapping heroes around here: they actually served in the O/R war or they worked on mapping-related “black hole projects” that died a flaming death some time ago (or just recently). The problem with mappings as I see it is … they are too much of a black art. There isn’t a single textbook (as far I can tell) that would describe foundations and engineering principles of mappings, as far as the best software engineers understand them today.
Have a look at our humble tutorial on inter-paradigmatic mappings:
Title: Mappings make data processing go 'round
Authors: Ralf Lämmel and Erik Meijer
From the abstract: “Whatever programming paradigm for data processing we choose, data has the tendency to live on the other side or to eventually end up there. The major paradigms for data processing are Cobol, object, relational and XML […] This tutorial lists and discusses mapping scenarios, mapping techniques, impedance mismatches and research challenges regarding mappings.”
This tutorial scratches the surface of mappings as they are needed in data-processing applications today. Really, I don’t know much about mappings; my co-author actually knows a lot more, but we turned off aggregation mode for this tutorial when we had arrived at 50 packed pages. (Check out the exercises in the appendix, if you are looking for new interview questions!) Eventually, someone has to make an effort to write a text book on the subject – something of the kind of the “Dragon book” – but on mapping (instead of compilation). However, some reflection on the history of compilation reveals that this topic has been in the center of academic and industrial research around the time when books like the Dragon book were produced. I am not sure that mapping is getting so much attention by research yet. Of course, the model-driven silver bullet will eventually make obsolete the kinds of mappings that we are struggling with nowadays. In fact, I gorge every MDxyz book I can get my left hand on, but these folks already operate in a different galaxy than I have access to. I was hoping for a book on mapping that applies to established platforms with down-to-earth needs for data access layers for XML and relational data; data-model evolution should be covered by this book as well.
then I may perhaps get back to this subject in say 1 year and start working on a textbook.