in reply to Object DBI concepts

Consider some sort of abstraction for getting a database handle...
Something like my DBIx::Connect? And for SQL, something like my SQL::Catalog or a bit of DBIx::Recordset.

My opinion is that your data model should be in your database and only in your database, and you should simply use Perl to drive the database via DBIx::AnyDBD. For a proof in concept of this please my module PApp::Hinduism.

For the opposing point of view, which seems closer to what you were posting and looking for see Alzabo or Tangram or Class::DBI or SPOPS.