Re: OO versus RDB

From: <frebe73_at_gmail.com>
Date: 2 Jul 2006 05:24:57 -0700
Message-ID: <1151843097.767790.197110_at_j8g2000cwa.googlegroups.com>


> >>>If the semantics of the old column "salary" are the same as the new
> >>>column "baseSalary", why on earth would you need to change the name? If
> >>>the name is not changed, no existing SQL statements would break. Only
> >>>the applications that needs the new "burdenedSalary", would need to be
> >>>rewritten.
> >>
> >>To capture the correct semantics of the attribute. In a context where
> >>one must distinguish between different flavors of salary, the original
> >>name was poorly chosen and the DBA fixed that. The attribute name is
> >>supposed to reflect the attribute semantics. Not changing it just leads
> >>to opportunities for new applications to screw up later.
> >
> >
> > Nothing forces you to change the column name. The solution will work
> > with the old name. Would you change the name of the corresponding
> > object property too, and break the interfaces? I don't think so.
> > Changing column names is not a relevant motivation for decoupling SQL
> > statements.
>
> As I said, you are missing the point. The example was of the sort of
> change that can break queries even though the accessed attribute
> semantics was unchanged.

If the semantics is unchanged, why does the attribute name need to change "to reflect the attributes semantics"? If the semantics is unchanged, the schema should be unchanged too. If the semantics change, both the schema and the "business logic" need to change.

> Why one would make such a change is not
> particularly relevant,

Of course it is relevant. Why should we protect the application from unnecessary schema changes? What you are saying is: I want to decouple my application from the schema because someone might do irrelevant changes to the schema.

> though ensuring proper semantics for attributer
> names is a valid reason (albeit often not a strong one compared to other
> trade-offs like breaking existing applications).

Above you wrote: "the accessed attribute semantics was unchanged". But if the semantics change, the application using the attribute need to change too.

> The point is that such changes can and are made.

Every possible stupid change can be made, but they are NOT made.

Fredrik Bertilsson
http://frebe.php0h.com Received on Sun Jul 02 2006 - 14:24:57 CEST

Original text of this message