This work teaches database practitioners the principles of good relational database design. It discusses tradeoffs between theory and practice, for example when it's alright to violate a principle of good design in order to improve performance. The book also shows readers how to construct the SQL statements needed to install well-designed relational databases, and discusses other performance related database design issues, such as indexes and clustering.