Why do I need to learn about database design?
Database is the heart of any software system, especially enterprise systems. A bad database design will eventually cause your system fail. Designing enterprise databases requires a lot of specific enterprise knowledge and in-depth understanding of structure of big databases. That's why you need to learn about database design.
What can I do after finishing learning about database design?
You will know how to design a relational database and write SQL code PROPERLY. You will know how to build a data warehouse. You will know WHEN you should use a relational database management system or WHEN you should use a NoSQL database management system and HOW they actually work.
That sounds useful! What should I do now?
Please read this Stephane Faroult and Peter Robson (2006). The Art of SQL. O'Reilly Media book first.
Then please read - this W.H. Inmon (2003). Building The Data Warehouse. Wiley book and - this Ralph Kimball and Margy Ross (2002). The Data Warehouse Toolkit: The Complete Guide to Dimensional Modeling. Wiley book and - this Vincent Rainardi (2008). Building a Data Warehouse: With Examples in SQL Server. Apress book.
After that please read - this Pramod J. Sadalage and Martin Fowler (2012). NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence. Addison-Wesley Professional book, and - this Martin Kleppmann (2017). Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems. O'Reilly Media book, and - this Alex Petrov (2019). Database Internals. O'Reilly Media book to learn about designing big data systems.
Finally, please read - this C. J. Date (2019). Database Design and Relational Theory: Normal Forms And All That Jazz. Apress book and - this C. J. Date (2015). SQL and Relational Theory: How to Write Accurate SQL Code. O'Reilly Media book.
After finishing the books please click Topic 15 - Advanced Software Design to continue.