I've collected six database books covering SQL, relational theory, schema design, and database implementation: Database Design for Mere Mortals, SQL Queries for Mere Mortals, Effective SQL, Database Design and Relational Theory, Relational Database Design and Implementation, and Database Systems: A Practical Approach to Design, Implementation and Management. Are these enough to become competent at designing industry-quality databases, or should I follow a different learning path? I'm especially interested in practical experience and building databases for real backend applications.
5 Answers
Set a goal such as building a small service with users, permissions, payments, or inventory, then read only the chapters that support that project. You’ll learn much more by writing an application against the database, testing it, changing the schema through migrations, and checking how queries perform than by trying to finish every book cover to cover.
Six books is probably overkill because several of them cover the same entity-relationship modeling and normalization material. Start with one design book and Effective SQL, then apply them to a real project involving decisions such as multi-tenancy, soft deletes, audit history, constraints, and indexes. Save the deeper relational-theory material for when you have practical problems you want to understand more deeply.
A comprehensive database-systems textbook can be useful because it combines theory with implementation, but it won’t replace learning a specific database engine. Once you choose PostgreSQL, for example, study its documentation for data types, indexes, query plans, transactions and isolation levels, collations, recursive queries, triggers, replication, and backup and recovery.
The books should give you a solid theoretical foundation, but reading them alone won’t teach you how databases behave in real applications. Pick a concrete project, run a local PostgreSQL instance, and build the schema, application code, migrations, tests, backups, and queries yourself. Working through messy requirements is where the practical knowledge develops.
That’s what I’m looking for. I want to build practical applications and learn how to design databases appropriately for real-world use.
First distinguish between learning to use a database and learning to design and operate one. For design, focus on requirements, keys, relationships, normalization, constraints, transactions, and indexing. For production work, also learn testing, monitoring, performance analysis, security, deployment, and backup procedures. Those areas are usually learned through documentation and hands-on projects rather than a single book.

Would that approach also be enough for backend development?