Re: OO versus RDB

From: topmind <topmind_at_technologist.com>
Date: 3 Jul 2006 22:48:14 -0700
Message-ID: <1151992094.202493.96620_at_j8g2000cwa.googlegroups.com>


J M Davitt wrote:
> topmind wrote:
> >>>>This sort of situation is actually rather common at the enterprise
> >>>>level.
> >>>
> >>>
> >>>Changing names of columns but keeping the sematics is extremly rare,
> >>>just because it breaks the interface to the applications.
> >>
> >>So do all changes to enterprise schemas, which is why /any/ change to
> >>such a schema is a big deal. The DBA already had to change the schema
> >>to provide burdenedSalary and chose that opportunity to clean up the
> >>semantics.
> >
> >
> > Perhaps I missed the purpose of this debate, but changing the name of
> > *any* interface in any paradigm or language can result in headaches. We
> > use names to reference things. If 50 other applications or routines or
> > classes refer to "fooSalary" and we later realize that it should have
> > been called "barSalary", then we are faced with a *universal* dilema of
> > whether to hunt down and change all 50 references, or leave it with a
> > bad name. This is not a problem unique to databases.
> >
> > I generally suggest leaving it with the bad name and putting a note in
> > the schema (if provided) or routine or class about the actual nature of
> > the misnamed thing. If you try to hunt down all references, you may
> > miss some and your boss will be pissed when things break.
>
> This can only make sense if one fails to manage their work products
> and thinks that such shortcomings are a normal part of their work
> life.

I am not sure what you mean. If your boss doesn't like the risks of name refactoring, that is the way it goes. One could argue it is the proper application of "time discounting" from accounting. Whether finance-based decision techniques should be used in IT short-vs-long-term planning is a long subject.

If DB's allwed column-level views, not just table views, then perhaps one could create a synonym and then slowly change it over time as you work on various apps for *other* purposes. This is the "under the radar" approach, and allows you to test each change more carefully because you have to test it for other changes anyhow.

>
> > The only universal way around this dilema that I see is to use "dumb
> > keys", names that carry no meaning such that they can't have the wrong
> > meaning by design. However, it is hard to conceptual work with
> > variables and interfaces with names like "A348282" and "SDFASD".
>
> Ar you suggesting that the logical design be altered to protect
> against failure to manage the application code? Nonsense.

I am not necessarily promoting the "dumb key" idea here. I am just pointing out a possible work-around that under certain situations may have some merit.

-T- Received on Tue Jul 04 2006 - 07:48:14 CEST

Original text of this message