Why should a database be normalised ? A database is normalised in order to distill the data components into their most easily manageable parts. The more a system of entities is broken into parts then the easier its construction becomes. This is because it is easier to design and build smaller parts rather than the whole.
Relational databases store data in tables. A table is an entity which can be a tangible or intangible object. The columns in a table define the constituents of the table and each row, which is made up of a combination of one of each column, into a single instance of the entity. For instance, a table containing customers has columns for name and address details. Each customer entry in the table is an instance of the customer table.
It is important to maintain data integrity. Data integrity implies that data items can not be altered or deleted explicity when other data items are dependant upon them. For instance, if a customer has orders one would not want to delete a customer without deleting that customer's related orders. Data integrity can be enforced or controlled at the application or the database level. In some database engines there are multiple ways of enforcing referential integrity within the database itself.
Points to note.
Tables should store attributes of a single entity and columns a single attribute.
A properly normalised database will improve data consistency, accuracy and performance.
Integrity of data can be enforced at the level of the database. Most databases used table constraint parameters or use a rule based approach. Either of these approaches will suffice. However, it is sometimes best to implement referential integrity at the application level.
Building of relational database structures is an iterative process. Be prepared for alterations.