A friendly illustrated guide to designing and implementing your first database.
Grokking Relational Database Design makes the principles of designing relational databases approachable and engaging. Everything in this book is reinforced by hands-on exercises and examples.
In Grokking Relational Database Design, you’ll learn how
• Query and create databases using Structured Query Language (SQL) • Design databases from scratch • Implement and optimize database designs • Take advantage of generative AI when designing databases
A well-constructed database is easy to understand, query, manage, and scale when your app needs to grow. In Grokking Relational Database Design you’ll learn the basics of relational database design including how to name fields and tables, which data to store where, how to eliminate repetition, good practices for data collection and hygiene, and much more. You won’t need a computer science degree or in-depth knowledge of programming—the book’s practical examples and down-to-earth definitions are beginner-friendly.
About the technology
Almost every business uses a relational database system. Whether you’re a software developer, an analyst creating reports and dashboards, or a business user just trying to pull the latest numbers, it pays to understand how a relational database operates. This friendly, easy-to-follow book guides you from square one through the basics of relational database design.
About the book
Grokking Relational Database Design introduces the core skills you need to assemble and query tables using SQL. The clear explanations, intuitive illustrations, and hands-on projects make database theory come to life, even if you can’t tell a primary key from an inner join. As you go, you’ll design, implement, and optimize a database for an e-commerce application and explore how generative AI simplifies the mundane tasks of database designs.
What's inside
• Define entities and their relationships • Minimize anomalies and redundancy • Use SQL to implement your designs • Security, scalability, and performance
About the reader
For self-taught programmers, software engineers, data scientists, and business data users. No previous experience with relational databases assumed.
About the author
Dr. Qiang Hao and Dr. Michail Tsikerdekis are both professors of Computer Science at Western Washington University.
Table of Contents
Part 1 1 Introducing databases and SQL 2 Related tables and more SQL 3 Overview of database design Part 2 4 Entities and attributes 5 Relationships 6 Normalization and implementation 7 Security and optimization Part 3 8 Database design in the age of generative AI
"Grokking Relational Database Design" offers a practical, methodical approach to understanding and implementing database design. The book takes readers through every phase of building a relational database from the ground up. This incremental approach creates a clear sense of learning progression, with regular back-references reinforcing previously presented material. This is especially useful for learners who benefit from repetition and cumulative learning.
Particular strength lies in the book’s balance between conciseness and engagement. The subject of database design can often descend into dry technicality, but authors Hao and Tsikerdekis keep discussions succinct and accessible. The inclusion of code samples and diagrams converts otherwise abstract ideas into practical, actionable knowledge. This helps make an often boring subject approachable and keeps the reader’s attention.
A timely addition is the discussion in Chapter 8 about the use of Generative AI for database design. I appreciated this inclusion as both practical and forward-looking, noting that while AI can offer creative solutions and overcome “blank page” paralysis, human expertise remains essential, especially when it comes to design decisions regarding the entities and their relationships. This perspective embodies a balanced approach—welcoming new technologies but stressing the continued importance of battle-tested ones, like (relational) databases.
On the "opportunity for improvement" side, there are a couple of things that could be potential for enhancement (to my taste):
- Chapter 6 (Normalization and implementation) introduces normalization, and Chapter 7 (Security and optimization) introduces denormalization. In my experience, these topics require practice and some guidance from more senior designers, and would have left these two topics in their own chapter, with plenty of (external) resources or references.
- While I saw (the authors) introduced some useful database elements like constraints (in data types) and indexing (to speed up query access), I missed a (brief) mention of other elements, like views and stored procedures. Maybe the latter is not widely available in all DB management systems, but I'm sure table views are a useful element as the database (schemas) grow in size and complexity (see, for instance, this discussion https://stackoverflow.com/questions/4...).
In summary, “Grokking Relational Database Design” is a well-conceived, practical resource for anyone looking to understand both the “how” and the “why” of databases. It is a recommended title introducing database design that balances theory, practical examples, and even a glimpse at AI-assisted workflows.
I'd give chapters four through seven a four-star rating, as they covered important topics well. I learned about normalization and normal forms, entity relationship diagrams, cardinality, junction tables, constraints, denormalization, indexes, hashing, and encryption in those chapters. but as a whole book I can't possibly give it more than two stars.
However, the first three chapters of this book are a waste of time. Choose any other book(s) to introduce you to the topic of SQL, and skip right to Chapter 4. I would have stopped reading by Chapter 4 if I hadn't committed to reading it for work, and I would have regretted spending money on the book if it weren't included in my Manning subscription.
These first chapters are poorly written and badly organized. It spends too much time on some concepts, and not nearly enough on others. For example, it spends way too much time explaining how a database table is like a spreadsheet for paragraph after paragraph. But in another, the author says that when interviewing stakeholders "a bad question is always better than no questions at all"—but rather than giving examples of good questions, it recommends you ask ChatGPT.
In fact, the author repeatedly recommends using ChatGPT as a learning tool. This starts in the first chapter with ChatGPT being recommended with the same level of importance and authority as such books as "Learning SQL" by Alan Beaulieu, and continues through the whole book. It even instructs you to ask ChatGPT if you're curious what your database's reserved keywords are, rather than teaching you how to find and read your RDBMS's official documentation.
I should have realized this thinking would infect the whole book since the Table of Contents reveals that the final chapter is "Database Design in the Age of Generative AI." What would have otherwise been a great review of the material by designing another database from scratch using the techniques learned in earlier chapters is ruined by a constant back-and-forth with an AI tool that keeps making mistakes the author wastes time explaining and correcting.
Those aren't the only problems, though. This book is full of forced humor, going so far as to use names like "dingleberry" and "cat poop coffee." Shaky metaphors also confuse explanations, like when table joins were likened to dumping boxes full of toys onto the floor.
Disclaimer: I read the beta version of this book in Manning's MEAP program in early December 2024. This review completely discounts errors in spelling, grammar, formatting, and anything else I'd expect the editors to fix before final publication. However, the issues I cover here are so fundamental I'd be surprised if my review would change after the book is released.
The evolution of AI is deeply intertwined with how data has been managed, structured, and ultimately harnessed for intelligence. In this context, the foundational skill of database design remains as relevant as ever although it's often seen as unglamorous due to the somewhat esoteric database jargon.
Grokking Relational Database Design, written by academicians Qiang Hao and Michail Tsikerdekis, is a beginner-friendly guide that explains complex concepts with modern references, relatable examples and helpful design diagrams.
The book avoids being anchored to a single RDBMS. It references widely used systems like MySQL, PostgreSQL, SQLite, SQL Server, and Oracle, encouraging learners to apply their knowledge using freely available tools like dbdiagram.io and sqliteonline.com.
Years ago, when there were far fewer accessible learning resources or real-world data model samples, I often relied on Barry Williams’ collection just to get a grasp of practical database design. Reading Grokking Relational Database Design felt like the guide I wish I had back then.
At around 250 pages, the book covers all the core principles of relational database design while also including a timely chapter on leveraging AI assistants such as ChatGPT. The database vocabulary introduced here equips both newcomers and practitioners to better communicate with AI assistants and get the most from them during implementation.
If you’re new to databases or want a clearer grasp of the design side of things, this book is a good pick.
Grokking Relational Database Design really surprised me—in the best way. I’ve tried to get into database design a few times before, but most resources just didn’t click for me. This one actually made sense. It breaks things down clearly without oversimplifying, and the examples actually feel like things you’d run into in the real world. As a woman in tech, I really appreciated how it didn't talk down to the reader or assume a certain background—just straightforward, solid explanations.
I’ll admit, I was a little intimidated by topics like normalization and functional dependencies at first (those always felt a bit abstract to me), but the way this book explains them finally made it click. There were a couple of sections I had to reread, but honestly, that just helped it stick. If you're someone who wants to really understand relational design—not just memorize terms—this is 100% worth reading.
Grokking Relational Database Design is a clear and accessible guide for anyone new to database design or in need of a solid refresher. Packed with practical examples, intuitive illustrations, and a hands-on approach, it teaches you how to build efficient, scalable databases without getting lost in theory or SQL syntax. Perfect for learning to think like a database designer, even with no technical background.
Good enough review of DB design. First and final parts are quite weak, but the middle part about the actual design of systems and their function are pretty good. As a dev that works with LLMs a lot, uh, maybe don't use ChatGPT or other chatbots as often as they recommend for learning. Read a book and do some actual coding (not just vibe!) to implement stuff and figure it out. A good review, I would not use it to learn for the first time.