Re: By The Dawn's Normal Light

From: erk <eric.kaun_at_pnc.com>
Date: 27 Oct 2004 12:22:27 -0700
Message-ID: <1098904947.844086.253460_at_f14g2000cwb.googlegroups.com>


> Good to "see" you again, erk.

Likewise, thanks.

> Maybe part of my question is why we have relations and then all other
types.
> Why are relations not simply one of the types? I suspect this is in
order
> to keep it simple, but I don't see that it does.
>
> Once relation is a valid
> type within a relation (as it is by newer defs) then a relation is a
type
> like a list or set or bag or ... I'm pretty sure that I'm simply
ignorant on
> this and that the complexity that would have to be added would be
"too much"
> but the separation of the relational and type engines doesn't appear
to buy
> anything for the user -- does it?

Very good question, and a topic worth exploring. I'm tired, so here are rambling thoughts and opinions intermixed: - a DBMS needs to have some structure that it understands - relations (like lists and sets) are "type generators" - they're containers, but relations say much more about the contents than lists and sets
- relations are more useful containers than lists and sets and files, I'd argue, for these reasons:
- relations allow integrity constraints, which are extremely useful and communicative
- relations give enough visibility into their contents' (tuples') structure to allow powerful operators beyond what lists and sets offer - types allow a virtual extension of the database and its operations

A DBMS could possibly handle multiple types of containers, but that would be confusing, I think, and add complexity that shouldn't be if you can avoid it.

> I agree that the database need not know more about a List or Set than
about
> a Date, but why does it need to know more about a Relation than about
a
> List?

I'd say that for any DBMS, there should be a minimal number of "primary" structures - simplify as much as possible without oversimplifying. At the same time, user extensibility is critical. Consistent and well-defined, high-level operators are powerful - high-level because they operate over all relvars you can define. Balancing all of those things, I think the relation alone delivers maximum value for minimum pain. A relational database has a set of relvars, a set of types, and that's all. Thus concludes my nonscientific rambling.

  • erk
Received on Wed Oct 27 2004 - 21:22:27 CEST

Original text of this message