From: --CELKO-- on
>>  Yes - 1NF is the entry bar, but where on earth is this being broken? <<

Two of Dr Codd's principles are that all columns in a table are
scalars and that relational operations have closure. That means the
result of a query is a table. What a lot of sophomore SQL programmers
miss is that this table can be 1NF; they try for a 3NF or better
table.

What newbies miss is that you do not do display formatting in the
database side of the system. They destroy 1NF or convert temporal data
or numeric date to strings.

Let me use an example of this fallacy, without DDL:

Foobar
foo_grp foo_val
==============
1 'a'
1 'b'
1 'c'
2 'x'
...

The foo_grp is the aggregation; foo_val is what we want to "flatten"
in this skeleton. Which of these is the one and only one RIGHT result?
Why? Tables have no ordering, so the concatenation cannot have a
natural ordering. If this made sense, the options are:

(1, 'a,b,c')
(1, 'b,c,a')
(1, 'c,b,a')
(1, 'a,c,b')
(1, 'b,a,c')
(1, 'c,a,b')

But what is REALLY important is that each foo_val is a scalar, the
list of them cannot be a scalar by definition. It is a list structured
value. The ordering is

A function is deterministic. That means that sin(x)=y -- the sine of x
is ALWAYS AND FOREVER y. No matter on what machine, etc. This is why
IDENTITY is not a function (it is measurement of an insertion attempt
event ), as you said in another posting. Basics, man, BASICS!
Seriously, where did you learn your basic maths?

>> Seriously, where did you learn your trade? <<

By working in IT for four decades for a wide range of industries (US
government down to start-ups). On the SQL Standards Committee for ten
years. By writing eight books on the SQL language. By writing over
900 articles on data and database issues. By teaching SQL and RDBMS in
industry and colleges for decades. Etc.

Do not ask questions to which you do not wish to know the answer. My
SQL resume is much better than yours :)


From: Tony Rogerson on
> Two of Dr Codd's principles are that all columns in a table are
> scalars and that relational operations have closure. That means the
> result of a query is a table. What a lot of sophomore SQL programmers
> miss is that this table can be 1NF; they try for a 3NF or better
> table.

Codd does not specify Scalars at all (please do reference where he does) -
he requires values to be atomic that is all he says, scalars - that is a SQL
concept.

RVA's are atomic and allowed as an attribute, I'm deliberately not writing
RVA full hand so you have to go and research it - do let me know once you
have.....

> A function is deterministic. That means that sin(x)=y -- the sine of x
> is ALWAYS AND FOREVER y. No matter on what machine, etc. This is why
> IDENTITY is not a function (it is measurement of an insertion attempt
> event ), as you said in another posting. Basics, man, BASICS!
> Seriously, where did you learn your basic maths?

Again you try and steer the surrogate key debate by talking nonsense.

If course the IDENTITY property is a function - I can use it on table
creation as well as in the logical and I mean logical default clause of the
table schema - you entirely miss the point about IDENTITY - you've been
wrong for over a decade on that just accept it and move on.

Research!! Ever done it? Or you just guessing again
(again...again...again...)???

> By working in IT for four decades for a wide range of industries (US
> government down to start-ups). On the SQL Standards Committee for ten
> years. By writing eight books on the SQL language. By writing over
> 900 articles on data and database issues. By teaching SQL and RDBMS in
> industry and colleges for decades. Etc.

The temporal interval from when you first got a job until now is not a
measurement of experience - seriously, in the last decade just how much
CONTINUOUS employment have you had? In my 24 years in IT I've been
continuously employed - even in consultancy in the past decade I've worked a
minimum of 4 days per week.

What does that mean? Well, actually I've a dam site more REAL WORLD
experience than you have - a dam site more; I've not been hiding in a
cupboard writing books and articles and learning the trade through reading
forums - you'd have thought by now you'd be a SQL Server expert giving the
trolling you do on here - but no you aren't, you keep making fundamental
basic mistakes - that speaks volumes.

But, if those foundations aren't write - let's face it you hadn't heard of
Chris Date until 4 months ago then doesn't matter how long you've been
"involved" in the industry - note I use the world "involved" rater than
"worked" because it applies more aptly in your case!

>
> Do not ask questions to which you do not wish to know the answer. My
> SQL resume is much better than yours :)

On the other hand - I've had the solid foundations, I get continuous
training from world leaders and academically I'm also active - currently
doing a masters topical for my job as consultant.

--ROGGIE--

"--CELKO--" <jcelko212(a)earthlink.net> wrote in message
news:fe6a756f-ab55-4e23-abc2-1f39ce397286(a)x21g2000yqa.googlegroups.com...
>>> Yes - 1NF is the entry bar, but where on earth is this being broken? <<
>
> Two of Dr Codd's principles are that all columns in a table are
> scalars and that relational operations have closure. That means the
> result of a query is a table. What a lot of sophomore SQL programmers
> miss is that this table can be 1NF; they try for a 3NF or better
> table.
>
> What newbies miss is that you do not do display formatting in the
> database side of the system. They destroy 1NF or convert temporal data
> or numeric date to strings.
>
> Let me use an example of this fallacy, without DDL:
>
> Foobar
> foo_grp foo_val
> ==============
> 1 'a'
> 1 'b'
> 1 'c'
> 2 'x'
> ..
>
> The foo_grp is the aggregation; foo_val is what we want to "flatten"
> in this skeleton. Which of these is the one and only one RIGHT result?
> Why? Tables have no ordering, so the concatenation cannot have a
> natural ordering. If this made sense, the options are:
>
> (1, 'a,b,c')
> (1, 'b,c,a')
> (1, 'c,b,a')
> (1, 'a,c,b')
> (1, 'b,a,c')
> (1, 'c,a,b')
>
> But what is REALLY important is that each foo_val is a scalar, the
> list of them cannot be a scalar by definition. It is a list structured
> value. The ordering is
>
> A function is deterministic. That means that sin(x)=y -- the sine of x
> is ALWAYS AND FOREVER y. No matter on what machine, etc. This is why
> IDENTITY is not a function (it is measurement of an insertion attempt
> event ), as you said in another posting. Basics, man, BASICS!
> Seriously, where did you learn your basic maths?
>
>>> Seriously, where did you learn your trade? <<
>
> By working in IT for four decades for a wide range of industries (US
> government down to start-ups). On the SQL Standards Committee for ten
> years. By writing eight books on the SQL language. By writing over
> 900 articles on data and database issues. By teaching SQL and RDBMS in
> industry and colleges for decades. Etc.
>
> Do not ask questions to which you do not wish to know the answer. My
> SQL resume is much better than yours :)
>
>