Re: Dawn doesn't like 1NF

From: Dawn M. Wolthuis <dwolt_at_tincat-group.comREMOVE>
Date: Sun, 17 Oct 2004 17:04:37 -0500
Message-ID: <ckuq9t$844$1_at_news.netins.net>


"Dan" <guntermann_at_verizon.com> wrote in message news:1Qd9d.12265$na.4447_at_trnddc04...
>
> "Laconic2" <laconic2_at_comcast.net> wrote in message
> news:pI2dncO9sK7WpvjcRVn-uQ_at_comcast.com...
> >
> >
> >> In regards to Dawn's comments that there is no basis for 1NF in
> > mathematics,
> >> I disagree with that even more vehemently. There exists a basis in
both
> >> logic, philosophy, and mathematics. Show me the alternative to
> >> relations,
> >> domains, tuples, and cartesian products across values using nested
values
> > in
> >> relations, and I might defer. I'd actually enjoy being
> > convinced...perhaps
> >> with even a proof.
> >
> > First off, I agree with you that relations, domains, tuples, and
cartesian
> > products are the basis of much coherent thought in the area of
"describing
> > reality", which is what databases are ultimately all about. And the
> > fact
> > that Codd developed the theory of database systems on a logical basis,
> > complete with axioms and theorems, was the basis for much of its
> > strength.
> > The rest of IT tends to go with "we tried this, and it worked, so
we'll
> > try it again."
>
> I'm looking at it from a perspective of being even more fundamental --
> systems of logic and theory. I am interested in being able to ask a
> question and being able to retrieve a consistent and complete answer, and
> perhaps even deduce new information from facts, whether held in a DBMS or
> not.
>
> My major issue with non 1NF-attributes, such as nested relations, or
> comma-delimited lists, is that there is no analog that I know of to
> predicate calculus or propositional logic that will give me the same power
> and completeness when forming questions of logic.

I'm definitely not up to speed on the questions of logic at this time and would like to understand where there are breakdowns.

> I am ultimately drawing a
> clear line in the sand between model and implementation. With predicate
> calculus, values that plug into predicates must be discrete and atomic in
> order to meet the criteria of a correct well-formed forumula. Nested
values
> means higher order logic.

But we nest values in English all of the time ...? Your atomic values include full predicates, right? I'm certain I'm confused on this topic and need to read up a bit -- any suggestions for a quick read?

> If we can find a solution in terms of how we view
> the world from a system of logic, then it shouldn't be so hard to apply it
> to the DBMS, or think about the implications it has on Codd's original
work.
> So let's start with the foundations, like Codd did I think.
>
> This is the core issue in my mind. 1NF is critical, not because it is the
> right way to organize data necessarily, but because it is an essential
> criterion for specifying domain values, as data, or as part of expressions
> in logic.

This makes some sense to me, however, I work with toolsets that do not require 1NF and do have excellent query languages (better than SQL by any measure other than being an industry standard). So, there is a gap between theory and practicality here. I'd like to understand that.

> > But the limitation to simple attributes has no such counterpart in the
> > mathematics of relations. In particular, a domain can be a domain of
> > relations in math. Not in the relational data model of 1970.
> >
> Of course you are right on this point. This is interesting to me, for I
> know that sets can be composed as a set of sets and therefore fit into the
> defintion of domains, yet when thinking back about my study of relations
(in
> mathematics), I cannot think of one time where I manipulated a relation
> between two sets. I will have to research this issue more.

I went back to my mathematics texts a while back and pretty much all relations are written as couples (a, b) where the set of all valid a values is the domain and b values is the range. That is because if you have a relation on R x R x R x R, for example, you can think of it as a relation with the domain from R and the range from R-cubed, thereby taking a relation from 4-tuples to couples. Similarly for functions, a subset of relations, where we might write f(x) = y and the domain (for values of x) could be R-cubed and the range R-squared and we can still write it as a couple. I might have simplified that, but it shows that in mathematics there is no problem nesting.

If we think of relations as functions such as PERSON("12345") = "John", "Doe", "3745551234", "Male"... then we can think of our database structures as (a,b) couples too and include functions to further break them down where desired.

> And as I
> mentioned before, logic does not give us a clean way of asking questions
or
> using inference with these breakaways from a formal model. Codd was a
smart
> man and he decided that allowing exposed nested values added a good number
> of issues and complexities that detracted from a more basic model. I
don't
> think we know exactly what they all are, but I have a feeling that we
> haven't even scratched the surface yet in terms of talking about them or
> discovering them all in this forum (because no one has made a formal
> proposal for an alternative - hint).

Yeah, yeah. I did something radical and took this other job on top of everything else and ... excuses, excuses. If you show me a clear mathematical basis for English, I think that will get me there faster. smiles.

>
> > When the commercial "relational DBMS" systems came out in the 1980s,
all
> > of
> > them required that table columns be "simple". Even a blob is "simple"
> > from
> > the point of view of the DBMS. From the DBMS point of view, it's just
a
> > string bytes with no discernable substructure.
>
> Well, what you say here is what I believe is rather self-evident. But
using
> lists as domain values is a mistake!

And can you lay that position out clearly?

> Like I said before, I am concerned the
> most about using logic and inference, and using a system based on a formal
> system of logic. An algebra and DBMS application to this system is rather
> trivial once the first step is achieved.

Sure, but I suspect we would lose some richness in English (for example) if we insisted on it sticking to a simple mathematical model too.

> Sometime since 1990, both
> > the theory and the products have relaxed this rule. But it was
definitely
> > there when I began to work with relational databases. Dawn can speak
for
> > Dawn.
> >
> Nothing has stopped her from doing this before! :-)

cheers! --dawn

> Regards,
>
> Dan
>
>
>
Received on Mon Oct 18 2004 - 00:04:37 CEST

Original text of this message