Re: By The Dawn's Normal Light
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
> 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