From: --CELKO-- on 20 Jun 2010 19:29 >> 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 21 Jun 2010 00:37
> 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 :) > > |