It seems to be a consensus about taking advantage of the strenghts and weaknesses of, both, OO paradigm and RDBMS
Very intensive computing activity would be better carried out by classes' methods than stored procedures, while intensive record-oriented activities fit better in stored procedures
Why? In the case of computing activity, because OO paradigm helps (without warrantying it) to achieve better component reuse and flexibility through interface-based programming, dependency injection and object composition, among other facilities still not present -or partially present- in databases
Why intensive data access better in stored procedures? Because we pay a performance penalty every time we make a round trip to the database, so by putting such logic all together in a stored procedures, we are applying coarse-grained granularity (a component design pattern). Maarten Mullender talks about fine-grained problems in his "CRUD, Only When You Can Afford It"
I particularly model behaviour in classes more associated with use cases than data; I also model entities as an OO representation of the database (so, I mean I model the database schema first) and usually get and store data by interchanging XML messages with the database (my RDBMS handles XML pretty well). Thus, I can store a graph of objects (for example, a purchase order with its items) in just one round trip
A good place to find info about Data Access is the MSDN Solution Architecture Centre
Diego Dagum |