Topic 15 – Introduction to Database Design

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 (i.e. for specific purposes). 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 to learn how to write SQL code efficiently.

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 to learn how to build a data warehouse.

After that please read this Abraham Silberschatz et al. (2019). Database System Concepts. McGraw-Hill Education book to learn about concepts that will help you understand how distributed databases work later.

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 how to design distributed databases and how distributed databases work.

And 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 to learn about normal forms and relational theory behind relational databases for creating more efficient logical designs for your databases.

Terminology Review:

  • SQL
  • Relational Model
  • Relational Theory
  • Normal Forms
  • Database Design
  • Enterprise Applications
  • Enterprise Systems
  • Data Warehouse
  • Dimensional Modeling
  • Data-Intensive Applications
  • NoSQL
  • Graph Databases
  • Distributed Databases
  • Distributed Relational Databases

After finishing the books please click Topic 16 – Advanced Software Design to continue.