Re: ORM or JDBC?
On 03/28/2011 06:17 AM, Michal Kleczek wrote:
Lawrence D'Oliveiro wrote:
In message<4d90373e$0$81476$e4fe514c@news.xs4all.nl>, Silvio wrote:
I rarely write database access code that targets specific tables or
table structures. For my purposes a RDBMS is just one of several types
of data sources for analysis and reporting. It may also be a type of
data storage system.
What an odd thing to say. The whole point about relational databases is
that their structure is supposed to reflect the innate logical structure
of the data you???re dealing with???the actual semantics of your business app.
That's not true. The "whole point" about relational databases is to NOT
reflect the domain structure, but to store data as tables of rows. Prior to
the relational model databases did try to store domain models and it led to
problems, problems so widespread and fundamental that hardly anyone remembers
non-relational databases.
The relational model intentionally breaks the domain model structure into
normal forms of just data, internally devoid of semantics. The genius of the
relational model is that it separated the domain model from the data model,
leaving the mapping between them to a separate layer, the business logic. As
a result, database models capture the data from the domain model, but they
don't reflect the domain model directly.
By design the relational model imposes on the business logic the
responsibility to map the data model to the domain model. ORMs are supposed
to help with that responsibility.
Of course. But that does not mean that your business app cannot be composed
of parts that are schema independent.
To want to abstract away from that would be to abstract away from the very
details of your business.
Sometimes you need to abstract away the schema. Would you design an ORM tool
with a particular schema in mind?
Would you design a relational schema with only one application in mind?
--
Lew
Honi soit qui mal y pense.
http://upload.wikimedia.org/wikipedia/commons/c/cf/Friz.jpg