> An Object-Relational mapper takes objects and stores them in a relational > database, as transparently as possible. I think the most pure example of > this I've seen in the Perl world is Tangram (www.tangram-persistence.org). > SPOPS is also an O-R mapper (actually, its a generic Object persistence > mechanism but it seems to most feature-rich when used with an RDBMS). > > A Relational-Object takes a relational database, and provides access to it > (select, insert, update, delete) via objects. Class::DBI, Alzabo, and > DBIx::RecordSet are examples of such a beast.
I would actually put Class::DBI in with the first set. To me the difference is not O/R vs R/O, since both of them go both directions. Rather it's a question of what you're modelling in your objects. Things like Tangram model the domain objects, i.e. concerts, seats, people. Things like Alzabo model the database objects, i.e. tables, rows, foreign keys. My approach falls in the first camp, although I don't currently use any OOP tools for assistance. - Perrin