Sponsored by Travelzoo
Take Advantage of Ridiculously Low Holiday Airfares view!
travelzoo.com - Flights $52 and up for Thanksgiving, Christmas & New Year. But move on it now.
57 Comments
- noodlez, on 10/12/2007, -1/+10indeed.
here's a more in depth link for those who want to learn a bit more w/o buying a book:
http://en.wikipedia.org/wiki/Database_normalization - superpatty, on 10/12/2007, -1/+9a decent gloss over of normalization for a small database admin for personal use
if you are reliant on a database for money/job you would need a more in depth article or just go buy (god forbid!) a database admin book - johnsto, on 10/12/2007, -1/+8I want everyone to look at the first page, and take a note of how much space is given to the article, and how much space is given to links and adverts.
Looks like 80% of sites now are adverts and 20% are content :( - Squeebee, on 10/12/2007, -1/+8Well then I'll take this chance to plug my own MySQL Normalization article, available all at once without clicking Next repeatedly and with the inverse ratio of content to ads.
http://www.vbmysql.com/articles/mysql/an-introduction-to-database-normalization/ - RedSirus, on 10/12/2007, -2/+8Consider it a useful guide to a basic facet of geekdom. Databases are useful, but so often misused. The rules of database normalization are a really important step in database design that many of us don't have formal training in. Many people do develop these rules themselves, but it's always great seeing this knowledge categorized and explained.
I'd suggest anyone with passing knowledge of databases who'd like to take the next step start by learning about normalization - and this article really covers a bit more than that. Dugg. - Kaioshin, on 10/12/2007, -2/+6I had to learn this at school just last year. Now I can see how much I remember.
- shout, on 10/12/2007, -1/+5Yeah you get a free book and the people who took the time to write and edit it get nothing because you're getting ebook warez off of newsgroups. Support your fellow programmers by buying the books too. Some of these people spend a year or two writing them so you can rip them off. If you want free stuff just google it and I'm sure there are articles online about the same stuff but don't steal books.
- doctechnical, on 10/12/2007, -0/+4I first read that as "database abomination". I've seen a few of those.
- Squeebee, on 10/12/2007, -0/+3Well there is certainly a place for basic articles. I used to work on the MySQL documentation team and have interacted with enough users to know that a large percentage of them have never heard of normalization. Many of the beginning users use MySQL (and any free database) as a big spreadsheet with a single table that contains hundreds of columns.
One of the more common questions was 'how many columns can I have in a single table' and more often than not it was a sign that you had a user who had never heard of normalization. - mrep, on 10/12/2007, -1/+4For all comments about omg this isn't enough about normalization, most beginner's databases probably don't need to be in DKNF or any such higher level. In fact most beginners databases probably are far better off by being stored in a purposely de-normalized fashion. The level of normalization always depends on the classification types of data and how that data changes and how changes in the data affect the records in the database.
Go back and read that wiki and then go down to the bottom to denormalization and figure out that most advanced databases commonly employ at least some denormalized tables in order to speed up the display of information. Joins are costly. SQL queries can get disgusting with joins and self joins in order to pull out information properly, when a denormalized table would work perfectly fine.
Normalizing a 5 table database is not the best thing for a MySQL user. Implement a few indices and you'll be much better off.
To properly design a database, start with the data, normalize it to it's peak beauty, and then break it down to make it more practical and more efficient based off your types of data. Know when design requires 30 tables and when it only requires 10. - diggsilva, on 07/10/2008, -0/+3This article is from 2000-11-27... wow
- gweedo767, on 10/12/2007, -1/+4If you don't understand normalization, you shouldn't be working with databases.
- adolfojp, on 10/12/2007, -0/+2You are manager material all the way. :-)
- raisinbran, on 10/12/2007, -0/+2There's a war going on, and the ads are winning...
- inactive, on 10/12/2007, -1/+3#1: It's MySQL, not My SQL.
#2: Database normalization applies to any relational database, not just MySQL.
That is all. - kimrules, on 10/12/2007, -0/+2What a TERRIBLE site design: a tiny article broken into 5 tinier chunks spread over 5 pages, and each page is 90% non-useful (ads, bloated menu, more ads, even more ads, and is that another menu whoops no it's MORE ADS).
Digg it? Heck, I'd dig it a hole. - coding, on 10/12/2007, -0/+2I don't see why people want to monetize their articles anyway. Just get a job and post it on your personal blog people. ID LIKE TO SEE FEWER ADS FROM DIGGed SITES
- infiniti029, on 10/12/2007, -0/+2omg, I took a database class last sem and when we did Normalization I was sooo confused. When we started talking about 1NF, 2NF, 3NF, BCNF, and such my head was sssppppiiiinin. I still don't get it, or remember it lol. Also having to decompose a db was a b*tch too.
- usefulidiot, on 10/12/2007, -0/+2Its not really that difficult. As long as you can properly identify relationships using an erd diagram normalization is a piece of cake, even when it comes to larger databases. Once you get the hang of it you learn how to normalize specific sets of data in a database. Being a logical thinker does hurt either though.
- adolfojp, on 10/12/2007, -0/+1Dear Cablito,
Get a clue.
Without normalization you don't have databases, you have excell spreadsheets. - TokenUser, on 10/12/2007, -2/+3Can I normalise my Excel spreadsheet?
- wjgilmore, on 10/12/2007, -0/+1also just a note as to the article's simplicity: I wrote it expressly for that purpose, as there's no need for every article to jump into the uglier aspects of a topic. I suspect most beginning database users will get along just fine for quite some time with what's discussed in this article.
Hope you like it!
Jason
www.wjgilmore.com - busta, on 10/12/2007, -0/+1I definately came across this article myself when I was trying to learn databases. Made alot of sense back then (probably still does).
- adolfojp, on 10/12/2007, -0/+1If you are having trouble with normalization wait until you get to referential integrity.
It isn't that hard. And it is the basic skill that you will need to write most software apps. - XSforMe, on 10/12/2007, -0/+1There are lots of highschool geeks, who are poking around with technology. DB creation and administration are not taught until you go to college.
- coding, on 10/12/2007, -2/+3Normalization can go into more depth yet most people agree that 3rd normal form is where most of the industry stands. The BC normal form and further are a little esoteric.
- tablatronix, on 10/12/2007, -0/+1wow i thought this was common sense. I must just have a knack at organization.
heh, good article though.
Also normalizing is alot easier now with mysql views, makes rejoining stuff hella easy. - hackwrench, on 10/12/2007, -0/+1The issue that really gets me is ensuring you are editing the relationship instead of the data. For example, say two people live in the same house and one moves out. How do you ensure that you are changing the address for one while not changing it for the other. Normalization reduces duplication, but it seems to make it more likely that this scenario is more likely to be an issue,
- spyrochaete, on 10/12/2007, -0/+1I use Adblock and Filterset.G with Firefox so I didn't see any ads on the page. However, the article is in a tiny frame and you have to flip through 5 pages to read it.
My honest first impression was to close the window immediately. Screw it. I learned this in school and normalization is an open and very public standard. I'll read about it on a real web page. - wjgilmore, on 10/12/2007, -0/+1LOL I wrote this article like a million years ago, quite surprised to see it making it's way to page 2 of Digg despite it's age, glad to see people are finding it useful.
Ohio State is going to crush PSU this year!!!! Revenge for last year's debacle will be sweet. - spyrochaete, on 10/12/2007, -0/+1Can you alphabetize your refridgerator?
Yes, but will it save you time? - hackwrench, on 10/12/2007, -0/+1The problem is that the person doing the editing may not be made aware that another person is living at that address and modifies the address record instead of adding a new one.
Similar scenario
My mom who went back to her maiden name moved into my sister's apartment and took over her lease. My sister files a change of address with the post office. I move in temporarily with my mom and since my sister and I still have the same last name, my mail gets sent to my sister's address. - bgeipel, on 10/12/2007, -0/+1Not sure about this article. The description of third normalized form does not differ from the definition of second normalized form much. I think he way or simplified it. 3NF deals with thransitive dependencies. His example was basically okay, but his description was poor. Not that I could explain it much better.
- bgeipel, on 10/12/2007, -0/+1Grr - I should have spell checked - I wanted to say "transitive dependencies"
- mrsticks1982, on 10/12/2007, -0/+1what the... how stupid does this get! THE ARTICLE IS SIX YEARS OLD!
http://www.devshed.com/cp/bio/W.J.-Gilmore/ - the submitters last article was in 2001. - azathothx, on 10/12/2007, -0/+0you're a nerd.
- jabbertrack, on 10/12/2007, -1/+1If you're looking for any sort of career in 'teknoligy' the 3 forms of database normalization is a frequently asked question in interviews because even the lowest geek on the totem pole in the office is frequently asked to create working databases for various tasks.
I don't care if the article is old or the site is cluttered... that is one of the more succinct descriptions I've read and it would be a good idea to bookmark it. - sunstealer, on 10/12/2007, -0/+0"The key, the whole key, and nothing but the key. So help me Codd!"
Best way to remember first, second and third NF. BCNF is a little different :) - Cablito, on 10/12/2007, -0/+0n00b? what are you, elite written with 3s?
- ohyeah, on 10/12/2007, -0/+0i realise back when i started doing web development that those DB classes I attend as part of my CompScience degree wasn't very useful. There was normalisation, but I could write a single SQL statement.
- jabbertrack, on 10/12/2007, -1/+1If you're looking for any sort of career in 'teknoligy' the 3 forms of database normalization is a frequently asked question in interviews because even the lowest geek on the totem pole in the office is frequently asked to create working databases for various tasks.
I don't care if the article is old or the site is cluttered... that is one of the more succinct descriptions I've read and it would be a good idea to bookmark it. - craiger316, on 10/12/2007, -0/+0Sure you can teach a beginner to normalize a database, but can they actually manage to write the SQL necessary to do joins :) There in lies the problem, you can lead a n00b to water....
- nebari, on 10/12/2007, -1/+1This is really quite lame - the article is from 2000, it is broken into 5 small sections to maximize ads, and at least one of the article links (to a gif) doesn't work anymore. Marked as LAME.
@Squeebee - that's a nice article you have there. Call me old-fashioned, but I love me some well-written, single page articles. =) - commandos, on 10/12/2007, -2/+2great article !!
- mrep, on 10/12/2007, -0/+0Normalized scenario reads
House
=======
1 || Old House || address 1
2 || New House || address 2
Residents
=======
1 || Resident 1 || 1 (FK to House)
2 || Resident 2 || 1 (FK to House)
Just change resident 2's house FK to house 2. Resident 1 is unaffected.
PS - there's lot's further you can take normalization, but for this scenario that's all that's required. Going up the layers in normalization just because it's there isn't always a good thing. I could separate out address from house and then separate it into city/state/zip even further. But the question is, how many joins do you want to have to do to get access to the data. Answer: As few as possible. - mrep, on 10/12/2007, -0/+0Because in true normalization when one person moves out they need to move someplace else, so you add an address for their new location and you create a relationship between person and address and remove the prior relationship. Just because the person moved out does not mean that the prior address does not exist anymore. Especially because 1 person still resides at the address.
If you have 2 people tied to one address without separating them in some fashion, your data isn't normalized. Because when you update one person and affect the other person you've broken the rules. - ThePict, on 10/12/2007, -0/+0@infiniti029
OMG, like, are you from The Valley too? Oh WOW! - Lactoso, on 10/12/2007, -1/+0.ss
- danielgary, on 10/12/2007, -5/+31. Thanks for the clarification. Asshat.
2. No ***** sherlock. - Moly, on 10/12/2007, -10/+8Just a dumb question - why does a very basic article on normalization make the front page?
-
Show 51 - 57 of 57 discussions



What is Digg?