Recent PostsRecent Posts Popular TopicsPopular Topics
 Home Search Members Calendar Who's On

 Normalization Rate Topic Display Mode Topic Options
Author
 Message
 Posted Thursday, April 28, 2011 5:10 AM
 SSCertifiable Group: General Forum Members Last Login: Yesterday @ 1:08 PM Points: 7,935, Visits: 8,352
 Steven993 (4/28/2011)So there is no logical difference between Relation and Table ?There's a semantic difference. So far as I'm aware neither is a term of logic, so there can't be a logical difference.I suggested a definition for a relation in a given state a few posts back. Did you look at that? Do you think that defintion could imaginably be the definition of a table? Try not to be so boringly patronising. Tom'S iomadh doigh a th’ air cu a mharbhadh gun a thachdadh le ìme
Post #1100124
 Posted Thursday, April 28, 2011 2:10 PM
 SSCertifiable Group: General Forum Members Last Login: Yesterday @ 1:08 PM Points: 7,935, Visits: 8,352
 Tom.Thomson (4/27/2011)But a relational equality can easily be defined in the Codd system: two relational systems are equal if they both contain the same rows; two rows are the same if every attribute of one is the same as the corresponding attribute in the other; two attributes are the same they have the same type and [both are a-NULL or both are i-NULL or [neither is null] and they have equal values]. That definition of sameness of rows has an implication for uniqueness that Codd might have disapproved of (he wanted two attribute which are both a-NULL to be regarded as different for the purpose of evaluating constraints, including UNIQUE constraints, so pehaps including the implicit UNIQUE constraint on the complete attribute maps in collection of rows that make up a relation; but that seems to me to be clearly a dead end when looking at relation). I don't know how to define a relational equality that Codd would definitely have approved of (because it seems necessary to define row sameness to define relational equality), so yes, there's some incompleteness in Codd's work - just as there is in every scientist's or mathematician's work. That's been bothering me, because I should know what Codd's view was on tuple equality, so I did some digging. There's a partial answer in his "Extending the Database Relational Model to Capture More Meaning" which he submitted to ACM in March '79. It turns out that in 1979 he chose pretty much what I suggested using above (apart from the misplaced "]" - the two "]"s should have been together at the point where the second one is, otherwise the inner bracketing doesn't resolve the ambiguity or the English), so he presumably would have mostly agreed with my proposed definition or equality between relations with nulls. But that isn't 100% certain because although he begain by talking about the 2 NULL system he then said he would consider them both as just a single "missing value" NULL and use a 3VL instead of a 4VL, before going on to say when checking two tuples for equality for the purpose of considering whether one tuple was a duplicate of the other two nulls would be considered as equal; so we don't know whether in the 4VL version he would have considered a-NULL ands i-NULL equal to each other for this purpose or would have treated them as unequal (My suggestion above treats them as unequal in for that test, but I think it would be better to treat them as equal - not as much better as not having i-NULL at all would be, of course).Next time I'll wait before posting if I think I'm nissing something like that. Tom'S iomadh doigh a th’ air cu a mharbhadh gun a thachdadh le ìme
Post #1100582
 Posted Friday, April 29, 2011 2:42 PM
 Hall of Fame Group: General Forum Members Last Login: Wednesday, December 04, 2013 6:53 AM Points: 3,913, Visits: 4,118
 I did not state my intent correctly.When I said Billing Address or Mailing Address I meant a separate table with an Address Type.I have normalize beyond the 3rd Normal Form when appropriate, so I will take the hit and I apologize for offending anyone and I would appreciate it if we could all move on and agree to disagree and respect each others differences.With respect to a separate table for each address line with an address line type that is a judgement decision and I did not mean to offend anyone.I regret some of the comments that I said but can we put our differences aside and play nice in the sandbox? For better, quicker answers on T-SQL questions, click on the following... http://www.sqlservercentral.com/articles/Best+Practices/61537/For better answers on performance questions, click on the following... http://www.sqlservercentral.com/articles/SQLServerCentral/66909/
Post #1101061
 Posted Friday, April 29, 2011 7:04 PM
 SSCertifiable Group: General Forum Members Last Login: Yesterday @ 1:08 PM Points: 7,935, Visits: 8,352
 Welsh, I don't think you need to worry about offending anyone, you haven't done anything outside the bounds of normal conversation (except perhaps that long string of short messages when you were distracted by something, none of which were in any way offensive). If we're kicking sand at each other here it's not your fault. Tom'S iomadh doigh a th’ air cu a mharbhadh gun a thachdadh le ìme
Post #1101125
 Posted Tuesday, May 10, 2011 1:20 PM
 SSC-Addicted Group: General Forum Members Last Login: 2 days ago @ 3:21 PM Points: 419, Visits: 2,976
Post #1106479
 Posted Tuesday, May 10, 2011 1:46 PM
 SSC-Addicted Group: General Forum Members Last Login: 2 days ago @ 3:21 PM Points: 419, Visits: 2,976
 Belatedly I realised that normalization isn't entirely defeated by Codd tables without keys. Given the definition of JDs already discussed, the Codd table T(a) would satisfy the JD * (a,{}) where {} is a projection on the empty set of attributes. This is a trivial join dependency. But if T doesn't have any keys then this trivial JD must be a JD not implied by keys. So T is not in PJ/NF. David
Post #1106489
 Posted Tuesday, May 10, 2011 5:42 PM
 SSCertifiable Group: General Forum Members Last Login: Yesterday @ 1:08 PM Points: 7,935, Visits: 8,352
Post #1106577
 Posted Tuesday, May 10, 2011 5:49 PM
 SSCertifiable Group: General Forum Members Last Login: Yesterday @ 1:08 PM Points: 7,935, Visits: 8,352
 David Portas (5/10/2011)Belatedly I realised that normalization isn't entirely defeated by Codd tables without keys. Given the definition of JDs already discussed, the Codd table T(a) would satisfy the JD * (a,{}) where {} is a projection on the empty set of attributes. This is a trivial join dependency. But if T doesn't have any keys then this trivial JD must be a JD not implied by keys. So T is not in PJ/NF.Don't forget that Codd required both that every base table have a primary key and that no attribute included in a primary key permit NULL.Since there is no key, you are talking about a derived table here, and derived tables are often not in PJ/NF even when NULLs are not allowed - see my post with an example of the restriction operator delivering from a 5NF table (with no nulls permitted) a derived table (also with no nulls permitted) which isn't even in 2NF, let alone in PJ/NF. The presence of NULLs makes no significant difference to questions of normality for derived tables - unless of course we include the requirement for a primary key in the definition of 1NF and don't inculde a requirement that that primary key be meaninful, in which case 1NF is a form which the null-free model can guarantee in derived relatins while the null-allowing model can't; of course if we include a requirement for a meaningful primary key neither model can guarantee it). Tom'S iomadh doigh a th’ air cu a mharbhadh gun a thachdadh le ìme
Post #1106578
 Posted Tuesday, June 21, 2011 3:34 PM
 SSC-Addicted Group: General Forum Members Last Login: 2 days ago @ 3:21 PM Points: 419, Visits: 2,976
 Tom.Thomson (5/10/2011)Well, presumably one of the applicable values that a-null could be is 0, and it surely is not true that 0/0 delivers 0 (it should deliver something like "error: indeterminate value" or "error: zero-divide" if it's a bit less good at distinguishing between errors); Yes but that's just a neat way to sidestep the real problem we were talking about. If I'd said z * x = 0 instead of z/x = 0 would you be any more likely to agree that MVL without tautology detection is just an accident waiting to happen?You have answered my main argument about any hypothetical system which can support both Normalization and nulls at the same time:it won't be SQL and it won't be RM2. Nor will it be RM-T.In other words it is none of the sytems that people are likely to be talking about on SSC. If you have your own definition of such a system then please publish it somewhere so that I can understand and scrutinise it properly. The space in this forum is certainly too small for that - after all Codd wrote 500 pages and still didn't manage it! Until you've done that I'm going to remain as sceptical as anyone else with a scientific mind should. Myself and millions of others who know of no such system are going to stick with what is presently known: that normal forms as originally defined have nothing to do with any table with a null in it.For 5NF and PJ/NF (why list both, when they are the same thing?According to some sources (e.g. David Maier, Terry Halpin and this) they are not the same thing. I mentioned PJ/NF to make it clear that I was talking about Fagin's original definition and not any other.Are you claiming for example that the domain consisting of the (fully defined) integers plus "bottom" is not a valid domain?It's clear to me right from Codd's first papers and I think from everything else I've ever read about the relational model that what RM calls a domain is a set, not a poset. A relational domain as conventionally defined is not the same as what domain theory calls a domain. David
Post #1129363
 Posted Thursday, June 23, 2011 6:00 AM
 Hall of Fame Group: General Forum Members Last Login: Monday, December 02, 2013 3:11 AM Points: 3,067, Visits: 4,619