Object-Relational Mapping

Vol. 6 No. 3 – May/June 2008

Object-Relational Mapping

There's a Lot of It About

And everybody's doing it.

"A lot of what, and about where?" I hear you cry. One question at a time, I reply. First, there's too much of everything these days, and, second, it's happening all over. Furthermore, everybody's doing it. As a contemporary Wordsworth might say: "The Web is too much with us, late and soon, getting and browsing we lay waste our powers." There is a glut of unfiltered information proving more dangerous than Alexander Pope's "A Little Learning" where "shallow draughts intoxicate the brain."

by Stan Kelly-Bootle

A Tribute to Jim Gray

Computer science attracts many very smart people, but a few stand out above the others, somehow blessed with a kind of creativity that most of us are denied. Names such as Alan Turing, Edsger Dijkstra, and John Backus come to mind. Jim Gray is another.

A Tribute to Jim Gray


Computer science attracts many very smart people, but a few stand out above the others, somehow blessed with a kind of creativity that most of us are denied. Names such as Alan Turing, Edsger Dijkstra, and John Backus come to mind. Jim Gray is another.

Jim was a giant in computer science, and yet curiously unassuming in person. He would sit quietly at our ACM Queue editorial board meetings, feeling no need to dominate the conversation. When he did speak up, however, everyone in the room would shut up and listen (a difficult feat with that group!), because we all knew that anything Jim had to say would be relevant and interesting. He was also one of the most active board members between meetings, despite being one of those with the most demands on his time. He bore those demands well and with grace. When you talked with Jim on the phone, you could tell that he wasnt reading his e-mail or cleaning up his deskhe was entirely with youand he never seemed to be in a rush.

by Eric Allman

Ode to a Sailor

sailor, fleeting mood image of you; all sailor in bear grace, rough hands and poetic dream;

Ode to a Sailor


by Donna Carnes

ORM in Dynamic Languages

O/R mapping frameworks for dynamic languages such as Groovy provide a different flavor of ORM that can greatly simplify application code.

A major component of most enterprise applications is the code that transfers objects in and out of a relational database. The easiest solution is often to use an ORM (object-relational mapping) framework, which allows the developer to declaratively define the mapping between the object model and database schema and express database-access operations in terms of objects. This high-level approach significantly reduces the amount of database-access code that needs to be written and boosts developer productivity.

by Chris Richardson

Distributed Computing Economics

Computing economics are changing. Today there is rough price parity between: (1) one database access; (2) 10 bytes of network traffic; (3) 100,000 instructions; (4) 10 bytes of disk storage; and (5) a megabyte of disk bandwidth. This has implications for how one structures Internet-scale distributed computing: one puts computing as close to the data as possible in order to avoid expensive network traffic.

Computing is free. The world's most powerful computer is free (SETI@Home is a 54-teraflop machine). Google freely provides a trillion searches per year to the world's largest online database (two petabytes). Hotmail freely carries a trillion e-mail messages per year. Amazon.com offers a free book-search tool. Many sites offer free news and other free content. Movies, sports events, concerts, and entertainment are freely available via television.

by Jim Gray

The Virtue of Paranoia

A koder with attitude, KV answers your questions. Miss Manners he ain't.

Dear KV, I just joined a company that massages large amounts of data into an internal format for its own applications to work on. Although the data is backed up regularly, I have noticed that access to this data, which has accumulated to be several petabytes in size, is not particularly well secured. There is no encryption, and although the data is not easily reachable from the Internet, everyone at the company has direct access to the volumes, both physically and electronically, all the time. Our data center is not particularly well protected either, with just two locked office doors between the outside world and the machines inside.

by George Neville-Neil

Exposing the ORM Cache

Familiarity with ORM caching issues can help prevent performance problems and bugs.

In the early 1990s, when object-oriented languages emerged into the mainstream of software development, a noticeable surge in productivity occurred as developers saw new and better ways to create software programs. Although the new and efficient object programming paradigm was hailed and accepted by a growing number of organizations, relational database management systems remained the preferred technology for managing enterprise data. Thus was born ORM (object-relational mapping), out of necessity, and the complex challenge of saving the persistent state of an object environment in a relational database subsequently became known as the object-relational impedance mismatch.

by Michael Keith, Randy Stafford

Bridging the Object-Relational Divide

ORM technologies can simplify data access, but be aware of the challenges that come with introducing this new layer of abstraction.

Modern applications are built using two very different technologies: object-oriented programming for business logic; and relational databases for data storage. Object-oriented programming is a key technology for implementing complex systems, providing benefits of reusability, robustness, and maintainability. Relational databases are repositories for persistent data. ORM (object-relational mapping) is a bridge between the two that allows applications to access relational data in an object-oriented way.

by Craig Russell

A Conversation with Erik Meijer and Jose Blakeley

The Microsoft perspective on ORM

To understand more about LINQ and ORM and why Microsoft took this approach, we invited two Microsoft engineers closely involved with their development, Erik Meijer and Jos Blakeley, to speak with Queue editorial board member Terry Coatta.

BASE: An Acid Alternative

In partitioned databases, trading some consistency for availability can lead to dramatic improvements in scalability.

Web applications have grown in popularity over the past decade. Whether you are building an application for end users or application developers (i.e., services), your hope is most likely that your application will find broad adoption and with broad adoption will come transactional growth. If your application relies upon persistence, then data storage will probably become your bottleneck.

by Dan Pritchett