You are previewing Database Design for Mere Mortals™: A Hands-On Guide to Relational Database Design, Second Edition.
O'Reilly logo
Database Design for Mere Mortals™: A Hands-On Guide to Relational Database Design, Second Edition

Book Description

“This book takes the somewhat daunting process of database design and breaks it into completely manageable and understandable components. Mike’s approach whilst simple is completely professional, and I can recommend this book to any novice database designer.”

     –Sandra Barker, Lecturer, University of South Australia, Australia

“Databases are a critical infrastructure technology for information systems and today’s business. Mike Hernandez has written a literate explanation of database technology–a topic that is intricate and often obscure. If you design databases yourself, this book will educate you about pitfalls and show you what to do. If you purchase products that use a database, the book explains the technology so that you can understand what the vendor is doing and assess their products better.”

     –Michael Blaha, consultant and trainer, author of A Manager’s Guide to Database Technology

“If you told me that Mike Hernandez could improve on the first edition of Database Design for Mere Mortals I wouldn’t have believed you, but he did! The second edition is packed with more real-world examples, detailed explanations, and even includes database-design tools on the CD-ROM! This is a must-read for anyone who is even remotely interested in relational database design, from the individual who is called upon occasionally to create a useful tool at work, to the seasoned professional who wants to brush up on the fundamentals. Simply put, if you want to do it right, read this book!”

     –Matt Greer, Process Control Development, The Dow Chemical Company

“Mike’s approach to database design is totally common-sense based, yet he’s adhered to all the rules of good relational database design. I use Mike’s books in my starter database-design class, and I recommend his books to anyone who’s interested in learning how to design databases or how to write SQL queries.”

     –Michelle Poolet, President, MVDS, Inc.

“Slapping together sophisticated applications with poorly designed data will hurt you just as much now as when Mike wrote his first edition, perhaps even more. Whether you’re just getting started developing with data or are a seasoned pro; whether you've read Mike’s previous book or this is your first; whether you're happier letting someone else design your data or you love doing it yourself–this is the book for you. Mike’s ability to explain these concepts in a way that’s not only clear, but fun, continues to amaze me.”

     –From the Foreword by Ken Getz, MCW Technologies, coauthor ASP.NET Developer's JumpStart

“The first edition of Mike Hernandez’s book Database Design for Mere Mortals was one of the few books that survived the cut when I moved my office to smaller quarters. The second edition expands and improves on the original in so many ways. It is not only a good, clear read, but contains a remarkable quantity of clear, concise thinking on a very complex subject. It’s a must for anyone interested in the subject of database design.”

     –Malcolm C. Rubel, Performance Dynamics Associates

“Mike’s excellent guide to relational database design deserves a second edition. His book is an essential tool for fledgling Microsoft Access and other desktop database developers, as well as for client/server pros. I recommend it highly to all my readers.”

     –Roger Jennings, author of Special Edition Using Access 2002

“There are no silver bullets! Database technology has advanced dramatically, the newest crop of database servers perform operations faster than anyone could have imagined six years ago, but none of these technological advances will help fix a bad database design, or capture data that you forgot to include! Database Design for Mere Mortals™, Second Edition, helps you design your database right in the first place!”

     –Matt Nunn, Product Manager, SQL Server, Microsoft Corporation

“When my brother started his professional career as a developer, I gave him Mike’s book to help him understand database concepts and make real-world application of database technology. When I need a refresher on the finer points of database design, this is the book I pick up. I do not think that there is a better testimony to the value of a book than that it gets used. For this reason I have wholeheartedly recommended to my peers and students that they utilize this book in their day-to-day development tasks.”

     –Chris Kunicki, Senior Consultant, OfficeZealot.com

“Mike has always had an incredible knack for taking the most complex topics, breaking them down, and explaining them so that anyone can ‘get it.’ He has honed and polished his first very, very good edition and made it even better. If you're just starting out building database applications, this book is a must-read cover to cover. Expert designers will find Mike’s approach fresh and enlightening and a source of great material for training others.”

     –John Viescas, President, Viescas Consulting, Inc., author of Running Microsoft Access 2000 and coauthor of SQL Queries for Mere Mortals

“Whether you need to learn about relational database design in general, design a relational database, understand relational database terminology, or learn best practices for implementing a relational database, Database Design for Mere Mortals™, Second Edition, is an indispensable book that you’ll refer to often. With his many years of real-world experience designing relational databases, Michael shows you how to analyze and improve existing databases, implement keys, define table relationships and business rules, and create data views, resulting in data integrity, uniform access to data, and reduced data-entry errors.”

     –Paul Cornell, Site Editor, MSDN Office Developer Center

Sound database design can save hours of development time and ensure functionality and reliability. Database Design for Mere Mortals™, Second Edition, is a straightforward, platform-independent tutorial on the basic principles of relational database design. It provides a commonsense design methodology for developing databases that work.

Database design expert Michael J. Hernandez has expanded his best-selling first edition, maintaining its hands-on approach and accessibility while updating its coverage and including even more examples and illustrations.

This edition features a CD-ROM that includes diagrams of sample databases, as well as design guidelines, documentation forms, and examples of the database design process.

This book will give you the knowledge and tools you need to create efficient and effective relational databases.

Table of Contents

  1. Title Page
  2. Copyright Page
  3. Contents
  4. Praise for Database Design for Mere Mortals™, Second Edition
  5. Praise for the First Edition
  6. Addison-Wesley presents the For Mere Mortals® Series
  7. About the Author
  8. Foreword
    1. From the First Edition . . .
  9. Preface (Second Edition)
    1. Acknowledgments
  10. Preface (First Edition)
    1. Acknowledgments
  11. Introduction
    1. What's New in the Second Edition
    2. Who Should Read This Book
    3. The Purpose of This Book
    4. How to Read This Book
    5. How This Book Is Organized
    6. A Word About the Examples and Techniques in This Book
  12. I. Relational Database Design
    1. 1. The Relational Database
      1. Topics Covered in This Chapter
      2. Types of Databases
      3. Early Database Models
      4. The Relational Database Model
      5. Relational Database Management Systems
      6. Beyond the Relational Model
      7. What the Future Holds
      8. Summary
      9. Review Questions
    2. 2. Design Objectives
      1. Topics Covered in This Chapter
      2. Why Should You Be Concerned with Database Design?
      3. The Importance of Theory
      4. The Advantage of Learning a Good Design Methodology
      5. Objectives of Good Design
      6. Benefits of Good Design
      7. Database-Design Methods
      8. Summary
      9. Review Questions
    3. 3. Terminology
      1. Topics Covered in This Chapter
      2. Why This Terminology Is Important
      3. Value-Related Terms
      4. Structure-Related Terms
      5. Relationship-Related Terms
      6. Integrity-Related Terms
      7. Summary
      8. Review Questions
  13. II. The Design Process
    1. 4. Conceptual Overview
      1. Topics Covered in This Chapter
      2. The Importance of Completing the Design Process
      3. Defining a Mission Statement and Mission Objectives
      4. Analyzing the Current Database
      5. Creating the Data Structures
      6. Determining and Establishing Table Relationships
      7. Determining and Defining Business Rules
      8. Determining and Defining Views
      9. Reviewing Data Integrity
      10. Summary
      11. Review Questions
    2. 5. Starting the Process
      1. Topics Covered in This Chapter
      2. Conducting Interviews
      3. The Case Study: Mike's Bikes
      4. Defining the Mission Statement
      5. Defining the Mission Objectives
      6. Summary
      7. Review Questions
    3. 6. Analyzing the Current Database
      1. Topics Covered in This Chapter
      2. Getting to Know the Current Database
      3. Conducting the Analysis
      4. Looking at How Data Is Collected
      5. Looking at How Information Is Presented
      6. Conducting Interviews
      7. Interviewing Users
      8. Interviewing Management
      9. Compiling a Complete List of Fields
      10. Summary
      11. Review Questions
    4. 7. Establishing Table Structures
      1. Topics Covered in This Chapter
      2. Defining the Preliminary Table List
      3. Defining the Final Table List
      4. Associating Fields with Each Table
      5. Refining the Fields
      6. Refining the Table Structures
      7. Summary
      8. Review Questions
    5. 8. Keys
      1. Topics Covered in This Chapter
      2. Why Keys Are Important
      3. Establishing Keys for Each Table
      4. Table-Level Integrity
      5. Reviewing the Initial Table Structures
      6. Summary
      7. Review Questions
    6. 9. Field Specifications
      1. Topics Covered in This Chapter
      2. Why Field Specifications Are Important
      3. Field-Level Integrity
      4. Anatomy of a Field Specification
      5. Using Unique, Generic, and Replica Field Specifications
      6. Defining Field Specifications for Each Field in the Database
      7. Summary
      8. Review Questions
    7. 10. Table Relationships
      1. Topics Covered in This Chapter
      2. Why Relationships Are Important
      3. Types of Relationships
      4. Identifying Existing Relationships
      5. Establishing Each Relationship
      6. Refining All Foreign Keys
      7. Establishing Relationship Characteristics
      8. Relationship-Level Integrity
      9. Summary
      10. Review Questions
    8. 11. Business Rules
      1. Topics Covered in This Chapter
      2. What Are Business Rules?
      3. Categories of Business Rules
      4. Defining and Establishing Business Rules
      5. Validation Tables
      6. Reviewing the Business Rule Specifications Sheets
      7. Summary
      8. Review Questions
    9. 12. Views
      1. Topics Covered in This Chapter
      2. What Are Views?
      3. Anatomy of a View
      4. Determining and Defining Views
      5. Summary
      6. Review Questions
    10. 13. Reviewing Data Integrity
      1. Topics Covered in This Chapter
      2. Why You Should Review Data Integrity
      3. Reviewing and Refining Data Integrity
      4. Assembling the Database Documentation
      5. Done at Last!
      6. Summary
  14. III. Other Database-Design Issues
    1. 14. Bad Design—What Not to Do
      1. Topics Covered in This Chapter
      2. Flat-File Design
      3. Spreadsheet Design
      4. Database Design Based on the Database Software
      5. A Final Thought
      6. Summary
    2. 15. Bending or Breaking the Rules
      1. Topics Covered in This Chapter
      2. When May You Bend or Break the Rules?
      3. Documenting Your Actions
      4. Summary
    3. In Closing
  15. IV. Appendixes
    1. A. Answers to Review Questions
      1. Chapter 1
      2. Chapter 2
      3. Chapter 3
      4. Chapter 4
      5. Chapter 5
      6. Chapter 6
      7. Chapter 7
      8. Chapter 8
      9. Chapter 9
      10. Chapter 10
      11. Chapter 11
      12. Chapter 12
    2. B. Diagram of the Database-Design Process
    3. C. Design Guidelines
      1. Defining and Establishing Field Specific Business Rules
      2. Defining and Establishing Relationship Specific Business Rules
      3. Elements of a Candidate Key
      4. Elements of a Foreign Key
      5. Elements of a Primary Key
      6. Elements of the Ideal Field
      7. Elements of the Ideal Table
      8. Field-Level Integrity
      9. Guidelines for Composing a Field Description
      10. Guidelines for Composing a Table Description
      11. Guidelines for Creating Field Names
      12. Guidelines for Creating Table Names
      13. Identifying Relationships
      14. Identifying View Requirements
      15. Interview Guidelines
      16. Mission Statements
      17. Mission Objectives
      18. Relationship-Level Integrity
      19. Resolving a Multivalued Field
      20. Table-Level Integrity
    4. D. Documentation Forms
    5. E. Database-Design Diagram Symbols
    6. F. Sample Designs
    7. G. Recommended Reading
      1. Bibliography
    8. Glossary
    9. References
  16. Index
  17. CD-ROM Warranty
  18. Understanding Normalization
    1. The Normalization Process
    2. Modification Anomalies
    3. Dependencies: The Good, the Bad, and the Ugly
    4. Understanding Normal Forms
    5. Denormalization
    6. A Final Thought
  19. Where Are the Companion Content Files?