Starting from the basics, a Table is said to be in First Normal Form if the attributes are non-repeating. Taking the example of Critters, let's design a table that's not normalized. Let's say for each entry in the table, we have a list of up to three countries in which the critter is found:
\nCREATE TABLE critter(\nname VARCHAR(80) NOT NULL,\ndescription VARCHAR(255) NOT NULL,\ncountry1 CHAR(3) NULL,\ncountry2 CHAR(3) NULL,\ncountry3 CHAR(3) NULL)\nINSERT INTO critter VALUES('Panda', 'Bear', 'PRC', 'China', NULL, NULL)\nINSERT INTO critter VALUES('Housefly', 'Insect', 'USA', 'MEX', 'CAN')\n
The first problem you encounter is that some animals only can be found in one place. Since you are reserving space for 3 countries, that means that any animal that can only be found in one country has two unused cells. It also means that if you want to find the animals for any particular country, you have to look in 3 seperate columns.
The second problem you have is that you've put a maximum limit on the number of countries that an animal can be found. The knee jerk reaction is to then add country4, country5,....countryn, until you've safely reserved enuf columns to cover what you think will be the maximum ever required (which only compounds the first problem). The rule of thumb is that eventually you will stumble upon some critter that can be found in every country on the planet (the common housefly would be a good example).
To solve the problem, you normalize the table(s) so that any particular attribute is not repeated. So you might be more creative and have:
\nCREATE TABLE critter(\nname VARCHAR(80) NOT NULL,\ndescription VARCHAR(255) NOT NULL,\ncountry CHAR(3) NULL)\nINSERT INTO critter VALUES('Panda', 'Bear', 'PRC')\nINSERT INTO critter VALUES('Housefly', 'Insect', 'USA')\nINSERT INTO critter VALUES('Housefly', 'Insect', 'MEX')\nINSERT INTO critter VALUES('Housefly', 'Insect', 'CAN')\n
Not a particularly elegant solution, but you have not repeated the attributes along the columnar lines. Of course, now you have a different problem in that you have repeating data along the rows (the description of 'Insect' for the 'Housefly' is repeated 3 times). So you've really only changed the repeating of attributes from one dimesion (columnar) to another (row based). But that is the subject for 2nd Normal Form. The First Normal Form has to do with eliminating redundant columns (attributes).