Thanks to Raul Sharma for his brilliant ideas. This is a modification of one of his scripts. The script takes only the user tables. Those tables which does not have PK are not listed!
For most DBAs, normalization is an understood concept, a bread and butter bit of knowledge. However, it is not at all unusual to review a database design by a development group for an OLTP (OnLine Transaction Processing) environment and find that the schema chosen is anything but properly normalized. This article by Brian Kelley will give you the core knowledge to data model.