• Does it matter when selecting data from it?  I does matter when doing inserts but the advantages of the ability to refactor parts of the database and not affect existing selects and reports usually wins.  In most of the databases that I develop there is one common procedure to do the insert of data but the table may be used in many other selects and joins.  The ability to refactor code such as:

    Customer(CustomerName, Address1, Address2....)

    into

    tables CustomerName(CustomerName, AddressID) and CustomerAddress(AddressID, Address1, Address2...) and a view Customer(CustomerName, Address1, Address2...) and have no impact on any code that references Customer is immeasurable.  The only place that has to be modified is the procedure AddCustomer(@CustomerName, @Address1, @Address2...)