Database Designing Issue I have a database having Millions of records in three tables. Now i want to split these three tables in multiple tables to reduce redundancy and data duplication.

A lot of records(Persons) have multiple city, address , telephone, fax.

So New tables will be Address, ,City ,Postcode ,State ,Country ,Telephone ,Fax

My question is , Is it fine to have City, Postcode, State, Country, Telephone tables separately or Just merge these tables in address table?
An address is a inseparable entity consisting of Street, City, State, Zip and Country. Those should all go into one table. There might be a reason to have an additional e.g. country table to store countries the person visited, but the address table should always contain at least the above five fields as a street without the rest is meaningless.

For phone numbers it makes sense to have a separate table. The fax numbers are usually stored in the same table differentiated by a type. That makes future extensions a lot simpler, but you could got with separate a fax table too. That would allow you to store additional information like e.g. if that fax number can receive color facsimiles.