views:

37

answers:

1

We're all familiar with basic ORM with relational databases: an object corresponds to a row and an attribute in that object to a column, though many ORMs add a lot of bells and whistles.

I'm wondering what other alternatives there are (besides raw access to the data). Alternatives that just work with relational databases would be great, but ones that could work with multiple types of backends besides just SQL (such as flat files, RSS, NoSQL, etc.) in a uniform manner would be even better. I'm more interested in ideas rather than specific implantations and what languages/platforms they work with, but please link to anything you think is interesting.

A: 

Your basic choices are:

  • Just use raw SQL.
  • Pick an ORM that meets your needs. Most platforms have a variety of choices. - for example the .NET platform supports LINQ, nHibernate, Entity Framework, etc.
  • Write your own ORM and/or data access framework.
Justin Ethier
I'm asking if there are other abstractions for data access besides ORM. Unless everyone is using ORM as a catch-all for "everything higher-level than raw SQL", there must be other ideas people have had for encapsulating access to a database.
swampsjohn
Perhaps, but if you look at all of the different ORM solutions, you will see that there is a *lot* of variety among them. For example, compare LINQ, Ruby-on-Rails ActiveRecord, and Sybase' DataWindow.NET - all could be considered "ORM" yet each uses their own unique approach.
Justin Ethier