Click here to monitor SSC
SQLServerCentral is supported by Red Gate Software Ltd.
 
Log in  ::  Register  ::  Not logged in
 
 
 
        
Home       Members    Calendar    Who's On


Add to briefcase

Normal Forms Expand / Collapse
Author
Message
Posted Thursday, April 28, 2011 11:05 AM


SSC-Dedicated

SSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-Dedicated

Group: Administrators
Last Login: Today @ 3:11 PM
Points: 31,368, Visits: 15,837
OK, I hesitate to ask this, but I would like to round this out.

I am looking for a basic set of articles that explains first, second, third, maybe more, normal forms. Not like the argument going on in the Relational Theory, not from a high academic, this is correct, Date v Codd.

I am looking for a basic explanation of what the normal forms mean from a practical perspective. Take a couple of simple tables and break them down to be normalized. Something like this, perhaps by working backwards in AdventureWorks or building a simple Order/Sales set of tables.

http://dev.mysql.com/tech-resources/articles/intro-to-normalization.html







Follow me on Twitter: @way0utwest

Forum Etiquette: How to post data/code on a forum to get the best help
Post #1100417
Posted Thursday, April 28, 2011 12:13 PM


SSCertifiable

SSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiable

Group: General Forum Members
Last Login: Today @ 4:21 PM
Points: 7,928, Visits: 9,653
How quickly do you want it?

I guess it's just the definitions, examples of how it changes something (before and after) and example of what goes wrong if you don't do it. No high-falutin' theory or any of that junk, and nothing controversial? Certainly no mention of NULLs because that would start a war.

Incidentally, I think I saw something a few weeks ago - an article on SQL Server Central (or perhaps written by a threadizen but posted somewhere else) that covered 1NF through 3NF very well.

If covering normal forms 1 through 5 WITHOUT the intermediates like EKNF and BCNF because the article can get too long, and leaving out 6NF (other than to say that it is applicable to schemas that have to handle time-dependent data, and avoids some of the problems that people often run into with that) because it is too hard for this sort of article, and leaving out DKNF (because most things don't have a DKNF form, there's no way to normalise them to DKNF) would be OK, I can do it if it's not urgent. But I'm heading back to the UK next Wednesday so wouldn't be able to start on it before about May 7th. Also, I'm not sure that covering all of forms 1 to 5 in a single article is going to produce something short enough, it might be better to split it in half with 1NF, 2NF and 3NF in one article; 4NF, 5NF and the non-technical one or two liner on 6NF in another.

Incidentally, the 6NF mentioned above is a Date invention and I regard it as a very good thing despite disagreeing with him on a couple of other things (MVLs and NULL, mostly). The other thing that used to be called 6NF is what is now called DKNF and is pretty useless (its uselessness is something else that Date and I have a common view on). Don't get the impression from the stuff going on in the normalisation topic in the relational theory forum that I think Date is wrong about everything, or that David Portas thinks Codd was wrong about everything.


Tom
Post #1100456
Posted Thursday, April 28, 2011 12:20 PM


SSC-Dedicated

SSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-Dedicated

Group: Administrators
Last Login: Today @ 3:11 PM
Points: 31,368, Visits: 15,837
Really the basics, Tom. Something between the DB Design one Paul White wrote and the crazy relational debate. A "normalization" for dummies, and I'd like to have a separate article for each one.

1NF
2NF
3NF

building on each other. You could go 4 and 5, or BNF if you want.

No hurry. Just filling Spackle holes here with some ideas to round out content on the site.







Follow me on Twitter: @way0utwest

Forum Etiquette: How to post data/code on a forum to get the best help
Post #1100466
Posted Thursday, April 28, 2011 12:43 PM


SSCertifiable

SSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiable

Group: General Forum Members
Last Login: Today @ 4:21 PM
Points: 7,928, Visits: 9,653
OK, Steve, separate article for each understood. I'll take it.

Tom


Tom
Post #1100492
Posted Thursday, April 28, 2011 12:48 PM


SSCertifiable

SSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiable

Group: General Forum Members
Last Login: Monday, December 15, 2014 2:26 PM
Points: 5,466, Visits: 7,647
I can take a swing at this if Tom is feeling time pressured, I've pretty much avoided the entire debate out of self defense. Did you want these spackle-style (page and a half or so) or more complete full article per NF? I will say that Tom or someone of his knowledge and research would be able to complete the 4NF+ articles much faster then I. I know the basics of them but would need to re-research to keep from having foot in mouth disease.

EDIT: D'oh, sniped. All yours Tom.



- Craig Farrell

Never stop learning, even if it hurts. Ego bruises are practically mandatory as you learn unless you've never risked enough to make a mistake.

For better assistance in answering your questions | Forum Netiquette
For index/tuning help, follow these directions. |Tally Tables

Twitter: @AnyWayDBA
Post #1100496
Posted Friday, April 29, 2011 7:12 PM


SSC-Dedicated

SSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-Dedicated

Group: General Forum Members
Last Login: Yesterday @ 7:27 AM
Points: 35,769, Visits: 32,437
Steve Jones - SSC Editor (4/28/2011)
OK, I hesitate to ask this, but I would like to round this out.

I am looking for a basic set of articles that explains first, second, third, maybe more, normal forms. Not like the argument going on in the Relational Theory, not from a high academic, this is correct, Date v Codd.

I am looking for a basic explanation of what the normal forms mean from a practical perspective. Take a couple of simple tables and break them down to be normalized. Something like this, perhaps by working backwards in AdventureWorks or building a simple Order/Sales set of tables.

http://dev.mysql.com/tech-resources/articles/intro-to-normalization.html


You must be a glutton for punishment. What are you going to ask for next? An article that justifies why NULLs should be removed from all database systems?


--Jeff Moden
"RBAR is pronounced "ree-bar" and is a "Modenism" for "Row-By-Agonizing-Row".

First step towards the paradigm shift of writing Set Based code:
Stop thinking about what you want to do to a row... think, instead, of what you want to do to a column."

(play on words) "Just because you CAN do something in T-SQL, doesn't mean you SHOULDN'T." --22 Aug 2013

Helpful Links:
How to post code problems
How to post performance problems
Post #1101126
Posted Saturday, April 30, 2011 9:45 AM


SSC-Dedicated

SSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-Dedicated

Group: Administrators
Last Login: Today @ 3:11 PM
Points: 31,368, Visits: 15,837
HA, I like NULLs. I might ask for two articles, one pro and one con.






Follow me on Twitter: @way0utwest

Forum Etiquette: How to post data/code on a forum to get the best help
Post #1101186
Posted Saturday, April 30, 2011 2:36 PM


SSCertifiable

SSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiable

Group: General Forum Members
Last Login: Today @ 4:21 PM
Points: 7,928, Visits: 9,653
Steve Jones - SSC Editor (4/30/2011)
HA, I like NULLs. I might ask for two articles, one pro and one con.


maybe David Portas could write the pro and Jeff could write the con; that way they would be extremely interesting articles!


Tom
Post #1101231
Posted Saturday, April 30, 2011 8:38 PM


SSC-Dedicated

SSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-Dedicated

Group: General Forum Members
Last Login: Yesterday @ 7:27 AM
Points: 35,769, Visits: 32,437
Tom.Thomson (4/30/2011)
Steve Jones - SSC Editor (4/30/2011)
HA, I like NULLs. I might ask for two articles, one pro and one con.


maybe David Portas could write the pro and Jeff could write the con; that way they would be extremely interesting articles!


I'm not sure which side is which there. If you mean that I'd have to write an article that says we should do away with NULLs, I have to ask... do you know what "Obese Opportunity" means?


--Jeff Moden
"RBAR is pronounced "ree-bar" and is a "Modenism" for "Row-By-Agonizing-Row".

First step towards the paradigm shift of writing Set Based code:
Stop thinking about what you want to do to a row... think, instead, of what you want to do to a column."

(play on words) "Just because you CAN do something in T-SQL, doesn't mean you SHOULDN'T." --22 Aug 2013

Helpful Links:
How to post code problems
How to post performance problems
Post #1101249
Posted Saturday, April 30, 2011 8:42 PM


SSC-Dedicated

SSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-Dedicated

Group: General Forum Members
Last Login: Yesterday @ 7:27 AM
Points: 35,769, Visits: 32,437
Steve Jones - SSC Editor (4/30/2011)
HA, I like NULLs. I might ask for two articles, one pro and one con.


I like NULLs, as well. I was just thinking of the insanely long threads where people keep saying that NULLs aren't a part of a true relational database and Codd this and Date that and yada-yada-yada. I keep thinking "who gives a rat's patooti?" and that I hope I never run into a true relational database because it will even make Oracle look good.


--Jeff Moden
"RBAR is pronounced "ree-bar" and is a "Modenism" for "Row-By-Agonizing-Row".

First step towards the paradigm shift of writing Set Based code:
Stop thinking about what you want to do to a row... think, instead, of what you want to do to a column."

(play on words) "Just because you CAN do something in T-SQL, doesn't mean you SHOULDN'T." --22 Aug 2013

Helpful Links:
How to post code problems
How to post performance problems
Post #1101250
Posted Sunday, May 1, 2011 7:40 AM


SSCertifiable

SSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiable

Group: General Forum Members
Last Login: Today @ 4:21 PM
Points: 7,928, Visits: 9,653
Jeff Moden (4/30/2011)
Steve Jones - SSC Editor (4/30/2011)
HA, I like NULLs. I might ask for two articles, one pro and one con.


I like NULLs, as well. I was just thinking of the insanely long threads where people keep saying that NULLs aren't a part of a true relational database and Codd this and Date that and yada-yada-yada. I keep thinking "who gives a rat's patooti?" and that I hope I never run into a true relational database because it will even make Oracle look good.

I like NULLs too. Of course I believe that a true relational system has to support them (after all, it has to support outer union and outer join, and they will certainly produce nulls). So I don't think a true relational system has to do badly.

But I do love reminding the anti-null fundamentalists that Ted Codd, the inventor of their holy relational model, stated clearly and plainly and very publicly that a system without decent NULL support could not be a relational system.


Tom
Post #1101293
Posted Sunday, May 1, 2011 9:13 AM


SSC-Dedicated

SSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-Dedicated

Group: General Forum Members
Last Login: Yesterday @ 7:27 AM
Points: 35,769, Visits: 32,437
That's why I'm glad you decided to take this on, Tom. No BS and personal opinions would be identified as such instead of being identified as gospel. I think you'd bring the practical side to the article that Steve is looking for someone to write and that I'd like to read. I almost can't wait.

--Jeff Moden
"RBAR is pronounced "ree-bar" and is a "Modenism" for "Row-By-Agonizing-Row".

First step towards the paradigm shift of writing Set Based code:
Stop thinking about what you want to do to a row... think, instead, of what you want to do to a column."

(play on words) "Just because you CAN do something in T-SQL, doesn't mean you SHOULDN'T." --22 Aug 2013

Helpful Links:
How to post code problems
How to post performance problems
Post #1101324
Posted Sunday, May 1, 2011 1:48 PM


SSC-Dedicated

SSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-Dedicated

Group: Administrators
Last Login: Today @ 3:11 PM
Points: 31,368, Visits: 15,837
I don't care who does it, but if Tom gets one in while anyone else's is in the Q, I'll go with Tom.

Tom, no great hurry and I'll let you know if I get something else. Doesn't have to be long. I'd figure 1-1.5 page of text with a few examples that show tables being moved from non-1NF->1NF would be fine.







Follow me on Twitter: @way0utwest

Forum Etiquette: How to post data/code on a forum to get the best help
Post #1101367
« Prev Topic | Next Topic »

Add to briefcase

Permissions Expand / Collapse