New
Pages
659
Published
2021
Database Design for Mere Mortals
A Hands-On Guide to Relational Database Design
Build databases that are correct, consistent, and maintainable — by learning the design decisions that matter before you write a single line of SQL.
Most database problems are not SQL problems. They are design problems. Database Design for Mere Mortals by Michael J. Hernandez walks you through the entire relational design process — from understanding your data to producing a finished, normalized schema — using a clear, methodical approach that requires no prior database experience. At 659 pages, it covers everything from defining tables and fields to establishing relationships and enforcing integrity, leaving you with the foundation every SQL developer needs.
About this book
Bad database design is expensive. Poorly chosen keys, ambiguous relationships, and unnormalized tables create bugs that compound over years and refactors that cost weeks. The frustrating part is that most of these problems are avoidable if you get the design right before you start building.
Michael J. Hernandez wrote Database Design for Mere Mortals to give every developer, analyst, and accidental DBA a repeatable, step-by-step process for designing relational databases that actually work. The book does not assume you already know SQL, and it does not throw you into theory-heavy set notation. It meets you where you are and walks you forward.
You will start by learning how to analyze an existing situation — interviewing stakeholders, reviewing paper forms, examining existing spreadsheets — to understand what data you actually need to store. From there, Hernandez guides you through defining tables, choosing appropriate field types, establishing primary and foreign keys, and mapping the relationships between entities. Each concept is introduced in plain language and reinforced with concrete examples before you move to the next.
The middle sections tackle normalization without the academic jargon. You learn what first, second, and third normal form mean in practice, why violations cause real problems, and how to restructure a flawed design until it is clean. By the end of those chapters, you will be able to look at any schema and immediately identify where the trouble is hiding.
The later chapters cover more advanced topics:
- Defining and enforcing business rules at the schema level
- Designing views and understanding when they help
- Handling many-to-many relationships correctly
- Reviewing and validating a finished design before implementation
- Translating a logical design into a physical schema for a real database engine
This is the book that database instructors have recommended for two decades because it works. Whether you are designing your first database or cleaning up someone else's mess, the process Hernandez teaches will save you time, arguments, and late-night debugging sessions.
🎯 What you'll learn
- Follow a structured, repeatable process for designing a relational database from scratch
- Identify the tables, fields, and relationships your data actually requires
- Choose primary keys and foreign keys that enforce integrity without creating maintenance headaches
- Apply first, second, and third normal form to eliminate redundancy and prevent update anomalies
- Map one-to-one, one-to-many, and many-to-many relationships correctly in a schema
- Encode business rules directly into the database structure rather than leaving them to application code
- Review and validate a finished logical design before writing any DDL or implementation SQL
👤 Who is this book for?
- Developers who write SQL regularly but never formally learned how to design the databases they query
- Analysts and data professionals who build spreadsheets that are outgrowing their format and need a real schema
- Students taking a database course who want a readable companion to a drier textbook
- Accidental DBAs who inherited a legacy system and need a framework for understanding or improving its structure
- Backend engineers starting a new project who want to get the data model right from day one
Table of contents
-
01
The Relational Database
Introduces the core concepts of relational databases — tables, rows, columns, and keys — establishing a shared vocabulary you will use throughout the book.
-
02
Design Objectives and the Design Process
Explains why good design matters and lays out the step-by-step methodology Hernandez uses for the rest of the book, so you know where you are headed before you start.
-
03
Terminology
Builds out the precise vocabulary of relational design — relation, attribute, tuple, domain — so you can read technical documentation and communicate clearly with other practitioners.
-
04
Tables
Covers how to define tables correctly, assign meaningful names, and avoid common structural mistakes that cause problems at scale.
-
05
Keys
Explains the different types of keys — candidate, primary, foreign, and composite — and teaches you how to choose and assign them to guarantee uniqueness and enforce referential integrity.
-
06
Relationships
Walks through one-to-one, one-to-many, and many-to-many relationships, showing you how to represent each type correctly in a schema and when each pattern applies.
-
07
Normalization
Introduces first, second, and third normal form using plain-language explanations and worked examples, giving you a concrete process for restructuring any flawed design until it is clean.
-
08
Business Rules and Final Review
Shows how to encode business rules as constraints and validation logic within the schema itself, then walks you through a systematic review checklist to validate your finished design before implementation.
Frequently asked questions
Do I need to know SQL before reading this book?
No prior SQL knowledge is required. The book focuses on relational design concepts and methodology, not SQL syntax. You will learn to think about data structure correctly, which makes SQL easier to learn afterward.
Is this book tied to a specific database system like MySQL or PostgreSQL?
No. Hernandez teaches vendor-neutral relational design principles that apply to any SQL database. The concepts translate directly to MySQL, PostgreSQL, SQL Server, Oracle, and SQLite without modification.
Is the 2021 edition significantly updated from earlier editions?
The 2021 edition is the third edition, revised to reflect current practices and updated examples. The core methodology is mature and stable, but the new edition refreshes the content for modern environments.
Is this book suitable for experienced developers, or only beginners?
The writing is accessible to beginners, but experienced developers who never formally studied database design consistently report learning something useful. If you have never worked through normalization or key selection deliberately, this book fills real gaps.
Does the book include exercises or practice problems?
Yes. Each chapter includes review questions and exercises that let you practice the concepts before moving on, making it suitable for self-study as well as classroom use.
You might also like
New
SQL Crash Course for Beginners
A hands-on introduction to querying, filtering, and managing data with SQL
New
T-SQL Fundamentals
A complete foundation in Transact-SQL for SQL Server and Azure SQL development
New
SQL Cookbook
Problem-Solution Recipes for SQL Across Multiple Database Platforms
by Anthony Molinaro, Robert de Graaf