📘

Pages

659

Published

2021

SQL ✨ New

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

  1. 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.

  2. 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.

  3. 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.

  4. 04

    Tables

    Covers how to define tables correctly, assign meaningful names, and avoid common structural mistakes that cause problems at scale.

  5. 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.

  6. 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.

  7. 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.

  8. 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

📬 Weekly Newsletter

Stay ahead of the curve

Get the best programming tutorials, data analytics tips, and tool reviews delivered to your inbox every week.

No spam. Unsubscribe anytime.