Beginning Database Design [electronic resource] : From Novice to Professional /
Churcher, Clare.author.
Beginning Database Design, Second Edition 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, you’ll learn to discover and represent the details and scope of any design problem you choose to attack. Database design is not an exact science. Many are surprised to find that problems with their databases are caused by poor design rather than by difficulties in using the database management software. Beginning Database Design, Second Edition helps you ask and answer important questions about your data so you can understand the problem you are trying to solve and create a pragmatic design capturing the essentials while leaving the door open for refinements and extension at a later stage. Solid database design principles and examples help demonstrate the consequences of simplifications and pragmatic decisions. The rationale is to try to keep a design simple, but allow room for development as situations change or resources permit. Provides solid design principles by which to avoid pitfalls and support changing needs Includes numerous examples of good and bad design decisions and their consequences Shows a modern method for documenting design using the Unified Modeling Language.
Title Page; Copyright Page; Contents at a Glance; Table Of Contents; Foreword; About the Author; About the Technical Reviewer; Acknowledgments; Introduction; Getting It Wrong; Create a Data Model; Database Implementation; Objective of This Book; Chapter 1: What Can Go Wrong; Mishandling Keywords and Categories; Repeated Information; Designing for a Single Report; Summary; TESTING YOUR UNDERSTANDING; Chapter 2: Guided Tour of the Development Process; Initial Problem Statement; Analysis and Simple Data Model; Classes and Objects; Relationships; Further Analysis: Revisiting the Use Cases; Design
ImplementationInterfaces for Input Use Cases; Reports for Output Use Cases; Summary; TESTING YOUR UNDERSTANDING; Chapter 3: Initial Requirements and Use Cases; Real and Abstract Views of a Problem; Data Minding; Task Automation; What Does the User Do?; What Data Are Involved?; What Is the Objective of the System?; What Data are Required to Satisfy the Objective?; What are the Input Use Cases?; What Is the First Data Model?; What Are the Output Use Cases?; More About Use Cases; Actors; Exceptions and Extensions; Use Cases for Maintaining Data; Use Cases for Reporting Information
Finding Out More About the ProblemWhat Have We Postponed?; Changing Prices; Meals That Are Discontinued; Quantities of Particular Meals; Summary; TESTING YOUR UNDERSTANDING; Chapter 4: Learning from the Data Model; Review of Data Models; Optionality: Should It Be 0 or 1?; Student Course Example; Customer Order Example; Insect Example; A Cardinality of 1: Might It Occasionally Be Two?; Insect Example; Sports Club Example; A Cardinality of 1: What About Historical Data?; Sports Club Example; Departments Example; Insect Example; A Many-Many: Are We Missing Anything?; Sports Club Example
Student Course ExampleMeal Delivery Example; When a Many-Many Doesn't Need an Intermediate Class; Summary; TESTING YOUR UNDERSTANDING; Chapter 5: Developing a Data Model; Attribute, Class, or Relationship?; Two or More Relationships Between Classes; Different Routes Between Classes; Redundant Information; Routes Providing Different Information; False Information from a Route (Fan Trap); Gaps in a Route Between Classes (Chasm Trap); Relationships Between Objects of the Same Class; Relationships Involving More Than Two Classes; Summary; TESTING YOUR UNDERSTANDING
Chapter 6: Generalization and SpecializationClasses or Objects with Much in Common; Specialization; Generalization; Inheritance in Summary; When Inheritance Is Not a Good Idea; Confusing Objects with Subclasses; Confusing an Association with a Subclass; When Is Inheritance Worth Considering?; Should the Superclass Have Objects?; Objects That Belong to More Than One Subclass; Composites and Aggregates; It Isn't Easy; Summary; TESTING YOUR UNDERSTANDING; Chapter 7: From Data Model to Relational Database Design; Representing the Model; Representing Classes and Attributes; Creating a Table
Choosing Data Types
"Designing databases for the desktop and beyond"--P. [1] of cover.
Includes bibliographical references and index.
Beginning Database Design, Second Edition 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, you’ll learn to discover and represent the details and scope of any design problem you choose to attack. Database design is not an exact science. Many are surprised to find that problems with their databases are caused by poor design rather than by difficulties in using the database management software. Beginning Database Design, Second Edition helps you ask and answer important questions about your data so you can understand the problem you are trying to solve and create a pragmatic design capturing the essentials while leaving the door open for refinements and extension at a later stage. Solid database design principles and examples help demonstrate the consequences of simplifications and pragmatic decisions. The rationale is to try to keep a design simple, but allow room for development as situations change or resources permit. Provides solid design principles by which to avoid pitfalls and support changing needs Includes numerous examples of good and bad design decisions and their consequences Shows a modern method for documenting design using the Unified Modeling Language.
Database management.
Data structures (Computer science).
Database Management.
Data Structures and Information Theory.