Regardless of the paradigm used to model the application domain, most enterprise applications use the relational model for data storage. Relational database technology is mature, widely understood, and successfully deployed in countless applications. However, its dominance has also had some undesirable consequences for application development. For an application that models the business logic in an object-oriented way, the developer faces an impedance mismatch between the application's object model and the data's relational model. Object-relational mapping (ORM) frameworks exist to bridge this divide, but ORMs aren't trivial to use and often introduce more complexity than the problem they solve.