| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> comp.databases.theory -> Re: O'Reilly interview with Date
"Kenneth Downs" <knode.wants.this_at_see.sigblock> wrote in message
news:lkjps2-76f.ln1_at_pluto.downsfam.net...
> David Cressey wrote:
>
> >
> > In this connection, I want to express a contrarian view about "natural
> > joins".
> > I think making joins "natural" based on common column names is a
mistake.
> > It's overloading the column name.
> > Natural joins sohlud be based on common domain names. Better yet, they
> > should be based on declared REFERENCES constraints (perhaps unenforced).
>
> In my own system I never manually code a join, I just specify the two
tables
> and it builds it out of the foreign key definitions.
>
> The foreign key definition has a little more going for it than a REFERENCE
> constraint, because it actually defines the columns in the child table
> instead of just referencing existing columns.
Excellent!
It reminds me a little of Data Architect (DA), where you build a conceptual
data model (CDM)
interactively, with a graphic interface. The CDM identifies entities,
relationships among entities, attributes of entities, domains of attributes,
and maybe a little more. The CDM does NOT include foreign keys.
Once you are satisfied with a CDM, you can ask DA to build a physical data
model |(PDM). A PDM is DBMS specific.
You have to choose a product, like Oracle or Ingres. The PDM contains
tables and columns, among other things. The foreign keys are included. Once
you have a suitable PDM, you can use DA to generate a create script, but
that's another discussion.
Here's why I like what you wrote better than DA. DA allows me to delegate the busy work of tracing references at database creation time, but it didn't, as of 5 years ago, let me delegate the same busy work at query generation time. (DA may have progressed considerably since I last used it).
Your system appears to link a rich model for database definition with the same rich model for query generation. That's what I think is excellent. Of course, I haven't played with your system. But at least I like the description! Received on Thu Aug 11 2005 - 17:55:46 CDT
![]() |
![]() |