You are previewing Beginning Database Design.
O'Reilly logo
Beginning Database Design

Book Description

Beginning Database Design: From Novice to Professional provides short, easy-to-read explanations of how to get database design right the first time. This book offers numerous examples to help you avoid the many pitfalls that entrap new and not-so-new database designers. Through the help of use cases and class diagrams modeled in the UML, youll learn how to discover and represent the details and scope of the problem in question.

Database design is not an exact science, and solid database design principles and examples help demonstrate the consequences of simplifications and pragmatic decisions. The rationale is to try to keep it simple, but allow room for development as situations change or resources permit. The book also features an introduction for implementing the final design in a relational database.

Table of Contents

  1. Title Page
  2. Dedication
  3. Contents at a Glance
  4. Contents
  5. Foreword
  6. About the Author
  7. About the Technical Reviewer
  8. Acknowledgments
  9. Introduction
    1. Getting It Wrong
    2. Analysis Techniques
    3. Database Implementation
    4. Objective of This Book
  10. CHAPTER 1: What Can Go Wrong
    1. Mishandling Keywords and Categories
    2. Repeated Information
    3. Designing for a Single Report
    4. Summary
  11. CHAPTER 2: Guided Tour of the Development Process
    1. Initial Problem Statement
    2. Analysis and Simple Data Model
    3. Further Analysis: Revisiting the Use Cases
    4. Design
    5. Implementation
    6. Summary
  12. CHAPTER 3: Initial Requirements and Use Cases
    1. Real and Abstract Views of a Problem
    2. What Does the User Do?
    3. What Data Is Involved?
    4. What Is the Objective of the System?
    5. What Data Is Required to Satisfy the Objective?
    6. What Are the Input Use Cases?
    7. What Is the First Data Model?
    8. What Are the Output Use Cases?
    9. More About Use Cases
    10. Finding Out More About the Problem
    11. What Have We Postponed?
    12. Summary
  13. CHAPTER 4: Learning from the Data Model
    1. Review of Data Models
    2. Optionality: Should It Be 0 or 1?
    3. A Cardinality of 1: Might It Occasionally Be Two?
    4. A Cardinality of 1: What About Historical Data?
    5. A Many–Many: Are We Missing Anything?
    6. Summary
  14. CHAPTER 5: Developing a Data Model
    1. Attribute, Class, or Relationship?
    2. Two or More Relationships Between Classes
    3. Different Routes Between Classes
    4. Relationships Between Objects of the Same Class
    5. Relationships Involving More Than Two Classes
    6. Summary
  15. CHAPTER 6: Generalization and Specialization
    1. Classes or Objects with Much in Common
    2. Specialization
    3. Generalization
    4. Inheritance in Summary
    5. When Inheritance Is Not a Good Idea
    6. When Is Inheritance Worth Considering?
    7. Should the Superclass Have Objects?
    8. Objects That Belong to More Than One Subclass
    9. It Isn't Easy
    10. Summary
  16. CHAPTER 7: From Data Model to Relational Schema
    1. Representing the Model
    2. Representing Classes and Attributes
    3. Primary Key
    4. Representing Relationships
    5. Representing Inheritance
    6. Summary
  17. CHAPTER 8: Normalization
    1. Update Anomalies
    2. Functional Dependencies
    3. Normal Forms
    4. Data Models or Functional Dependencies?
    5. Fourth and Fifth Normal Forms
    6. Summary
  18. CHAPTER 9: More on Keys and Constraints
    1. Choosing a Primary Key
    2. Unique Constraints
    3. Using Constraints Instead of Category Classes
    4. Deleting Referenced Records
    5. Summary
  19. CHAPTER 10: Queries
    1. Simple Queries on One Table
    2. Queries with Two or More Tables
    3. How Indexes Can Help
    5. Summary
  20. CHAPTER 11: User Interface
    1. Input Forms
    2. Reports
    3. Summary
  21. CHAPTER 12: Other Implementations
    1. Object-Oriented Implementation
    2. Implementing a Data Model in a Spreadsheet
    3. Summary
  22. Conclusion
    1. Understanding the Objective and Requirements
    2. Polishing Your Data Model
    3. Representing Your Model in a Relational Database
    4. Using Your Database
    5. And So . . .
  23. Index