I have been doing lot of database development for some years. Some time I got the design right and some time I made a mess that I had to clean up. Some time I will miss some requirements and some time I will get the normalization wrong. Like any other development process I went through iterations to finally get to the point where I am comfortable with database design.
Recently I got tasked with database rearchitecture of a large scale system. Since I had some time on hand (for a change) I decided to read up on some literature and books on database design and best practices. I asked a good friend of mine who is an excellent DB engineer about recommened books. He recommended only two book. One was by Joe Celko. After readin abstract and some reviews on the book, i decided that this book is not something I want to pick up. It is too abstract and theoraticak. Second book he recommended was Pro SQL Server 2008 Relational Database Design and Implementation. It definitely looked like something I may enjoy reading.
This book is definitely a very good resource on database design and architecture. It is just the right kind of book, not too abstract not to targtted towards just showing you sample scripts and things like that. Book starts you with basic concepts on database design and build from there. First four chapters are definitely worth reading if you are just starting in world of database design. I really liked how in Chapter 3 he goes through step by step process of requirement gathering and shaping the design and making chnages as you go along. I will definitely recommend this book to any one who wants to grasp some concepts about what is database design, process to follow and how to implement it effectively.