Beginning Database Design Solutions, 2nd Edition

Book description

A concise introduction to database design concepts, methods, and techniques in and out of the cloud

In the newly revised second edition of Beginning Database Design Solutions: Understanding and Implementing Database Design Concepts for the Cloud and Beyond, Second Edition, award-winning programming instructor and mathematician Rod Stephens delivers an easy-to-understand guide to designing and implementing databases both in and out of the cloud. Without assuming any prior database design knowledge, the author walks you through the steps you’ll need to take to understand, analyze, design, and build databases.

In the book, you’ll find clear coverage of foundational database concepts along with hands-on examples that help you practice important techniques so you can apply them to your own database designs, as well as:

  • Downloadable source code that illustrates the concepts discussed in the book
  • Best practices for reliable, platform-agnostic database design
  • Strategies for digital transformation driven by universally accessible database design

An essential resource for database administrators, data management specialists, and database developers seeking expertise in relational, NoSQL, and hybrid database design both in and out of the cloud, Beginning Database Design Solutions is a hands-on guide ideal for students and practicing professionals alike.

Table of contents

  1. COVER
  2. TITLE PAGE
  3. INTRODUCTION
    1. WHO THIS BOOK IS FOR
    2. WHAT THIS BOOK COVERS
    3. WHAT YOU NEED TO USE THIS BOOK
    4. HOW THIS BOOK IS STRUCTURED
    5. HOW TO USE THIS BOOK
    6. NOTE TO INSTRUCTORS
    7. NOTE TO STUDENTS
    8. CONVENTIONS
    9. SOURCE CODE
    10. CONTACTING THE AUTHOR
    11. DISCLAIMER
  4. PART 1: Introduction to Databases and Database Design
    1. 1 Database Design Goals
      1. THE IMPORTANCE OF DESIGN
      2. INFORMATION CONTAINERS
      3. STRENGTHS AND WEAKNESSES OF INFORMATION CONTAINERS
      4. DESIRABLE DATABASE FEATURES
      5. SUMMARY
    2. 2 Relational Overview
      1. PICKING A DATABASE
      2. RELATIONAL POINTS OF VIEW
      3. TABLE, ROWS, AND COLUMNS
      4. RELATIONS, ATTRIBUTES, AND TUPLES
      5. KEYS
      6. INDEXES
      7. CONSTRAINTS
      8. DATABASE OPERATIONS
      9. POPULAR RDBs
      10. SPREADSHEETS
      11. SUMMARY
    3. 3 NoSQL Overview
      1. THE CLOUD
      2. PICKING A DATABASE
      3. NoSQL PHILOSOPHY
      4. NoSQL DATABASES
      5. LESS EXOTIC OPTIONS
      6. MORE EXOTIC OPTIONS
      7. DATABASE PROS AND CONS
      8. SUMMARY
  5. PART 2: Database Design Process and Techniques
    1. 4 Understanding User Needs
      1. MAKE A PLAN
      2. BRING A LIST OF QUESTIONS
      3. MEET THE CUSTOMERS
      4. LEARN WHO'S WHO
      5. PICK THE CUSTOMERS’ BRAINS
      6. WALK A MILE IN THE USER'S SHOES
      7. STUDY CURRENT OPERATIONS
      8. BRAINSTORM
      9. LOOK TO THE FUTURE
      10. UNDERSTAND THE CUSTOMERS’ REASONING
      11. LEARN WHAT THE CUSTOMERS REALLY NEED
      12. PRIORITIZE
      13. VERIFY YOUR UNDERSTANDING
      14. CREATE THE REQUIREMENTS DOCUMENT
      15. MAKE USE CASES
      16. DECIDE FEASIBILITY
      17. SUMMARY
    2. 5 Translating User Needs into Data Models
      1. WHAT ARE DATA MODELS?
      2. USER INTERFACE MODELS
      3. SEMANTIC OBJECT MODELS
      4. ENTITY-RELATIONSHIP MODELS
      5. RELATIONAL MODELS
      6. SUMMARY
    3. 6 Extracting Business Rules
      1. WHAT ARE BUSINESS RULES?
      2. IDENTIFYING KEY BUSINESS RULES
      3. EXTRACTING KEY BUSINESS RULES
      4. MULTI-TIER APPLICATIONS
      5. SUMMARY
    4. 7 Normalizing Data
      1. WHAT IS NORMALIZATION?
      2. FIRST NORMAL FORM (1NF)
      3. SECOND NORMAL FORM (2NF)
      4. THIRD NORMAL FORM (3NF)
      5. STOPPING AT THIRD NORMAL FORM
      6. BOYCE-CODD NORMAL FORM (BCNF)
      7. FOURTH NORMAL FORM (4NF)
      8. FIFTH NORMAL FORM (5NF)
      9. DOMAIN/KEY NORMAL FORM (DKNF)
      10. ESSENTIAL REDUNDANCY
      11. THE BEST LEVEL OF NORMALIZATION
      12. NOSQL NORMALIZATION
      13. SUMMARY
    5. 8 Designing Databases to Support Software
      1. PLAN AHEAD
      2. DOCUMENT EVERYTHING
      3. CONSIDER MULTI-TIER ARCHITECTURE
      4. CONVERT DOMAINS INTO TABLES
      5. KEEP TABLES FOCUSED
      6. USE THREE KINDS OF TABLES
      7. USE NAMING CONVENTIONS
      8. ALLOW SOME REDUNDANT DATA
      9. DON'T SQUEEZE IN EVERYTHING
      10. SUMMARY
    6. 9 Using Common Design Patterns
      1. ASSOCIATIONS
      2. TEMPORAL DATA
      3. LOGGING AND LOCKING
      4. SUMMARY
    7. 10 Avoiding Common Design Pitfalls
      1. LACK OF PREPARATION
      2. POOR DOCUMENTATION
      3. POOR NAMING STANDARDS
      4. THINKING TOO SMALL
      5. NOT PLANNING FOR CHANGE
      6. TOO MUCH NORMALIZATION
      7. INSUFFICIENT NORMALIZATION
      8. INSUFFICIENT TESTING
      9. PERFORMANCE ANXIETY
      10. MISHMASH TABLES
      11. NOT ENFORCING CONSTRAINTS
      12. OBSESSION WITH IDs
      13. NOT DEFINING NATURAL KEYS
      14. SUMMARY
  6. PART 3: A Detailed Case Study
    1. 11 Defining User Needs and Requirements
      1. MEET THE CUSTOMERS
      2. PICK THE CUSTOMERS' BRAINS
      3. WRITE USE CASES
      4. WRITE THE REQUIREMENTS DOCUMENT
      5. DEMAND FEEDBACK
      6. SUMMARY
    2. 12 Building a Data Model
      1. SEMANTIC OBJECT MODELING
      2. ENTITY-RELATIONSHIP MODELING
      3. RELATIONAL MODELING
      4. PUTTING IT ALL TOGETHER
      5. SUMMARY
    3. 13 Extracting Business Rules
      1. IDENTIFYING BUSINESS RULES
      2. DRAWING A NEW RELATIONAL MODEL
      3. SUMMARY
    4. 14 Normalizing and Refining
      1. IMPROVING FLEXIBILITY
      2. VERIFYING FIRST NORMAL FORM
      3. VERIFYING SECOND NORMAL FORM
      4. VERIFYING THIRD NORMAL FORM
      5. SUMMARY
  7. PART 4: Example Programs
    1. 15 Example Overview
      1. TOOL CHOICES
      2. JUPYTER NOTEBOOK
      3. VISUAL STUDIO
      4. DATABASE ADAPTERS
      5. PROGRAM PASSWORDS
      6. SUMMARY
    2. 16 MariaDB in Python
      1. INSTALL MariaDB
      2. RUN HeidiSQL
      3. CREATE THE PROGRAM
      4. SUMMARY
    3. 17 MariaDB in C#
      1. CREATE THE PROGRAM
      2. SUMMARY
    4. 18 PostgreSQL in Python
      1. INSTALL PostgreSQL
      2. RUN pgAdmin
      3. CREATE THE PROGRAM
      4. SUMMARY
    5. 19 PostgreSQL in C#
      1. CREATE THE PROGRAM
      2. SUMMARY
    6. 20 Neo4j AuraDB in Python
      1. INSTALL NEO4J AURADB
      2. NODES AND RELATIONSHIPS
      3. CYPHER
      4. CREATE THE PROGRAM
      5. SUMMARY
    7. 21 Neo4j AuraDB in C#
      1. CREATE THE PROGRAM
      2. SUMMARY
    8. 22 MongoDB Atlas in Python
      1. NOT NORMAL BUT NOT ABNORMAL
      2. XML, JSON, AND BSON
      3. INSTALL MongoDB ATLAS
      4. FIND THE CONNECTION CODE
      5. CREATE THE PROGRAM
      6. SUMMARY
    9. 23 MongoDB Atlas in C#
      1. CREATE THE PROGRAM
      2. SUMMARY
    10. 24 Apache Ignite in Python
      1. INSTALL APACHE IGNITE
      2. START A NODE
      3. CREATE THE PROGRAM
      4. SUMMARY
    11. 25 Apache Ignite in C#
      1. CREATE THE PROGRAM
      2. SUMMARY
  8. PART 5: Advanced Topics
    1. 26 Introduction to SQL
      1. BACKGROUND
      2. FINDING MORE INFORMATION
      3. STANDARDS
      4. MULTISTATEMENT COMMANDS
      5. BASIC SYNTAX
      6. COMMAND OVERVIEW
      7. CREATE TABLE
      8. CREATE INDEX
      9. DROP
      10. INSERT
      11. SELECT
      12. UPDATE
      13. DELETE
      14. SUMMARY
    2. 27 Building Databases with SQL Scripts
      1. WHY BOTHER WITH SCRIPTS?
      2. SCRIPT CATEGORIES
      3. ORDERING SQL COMMANDS
      4. SUMMARY
    3. 28 Database Maintenance
      1. BACKUPS
      2. DATA WAREHOUSING
      3. REPAIRING THE DATABASE
      4. COMPACTING THE DATABASE
      5. PERFORMANCE TUNING
      6. SUMMARY
    4. 29 Database Security
      1. THE RIGHT LEVEL OF SECURITY
      2. PASSWORDS
      3. PRIVILEGES
      4. INITIAL CONFIGURATION AND PRIVILEGES
      5. TOO MUCH SECURITY
      6. PHYSICAL SECURITY
      7. SUMMARY
  9. A: Exercise Solutions
    1. CHAPTER 1: DATABASE DESIGN GOALS
    2. CHAPTER 2: RELATIONAL OVERVIEW
    3. CHAPTER 3: NOSQL OVERVIEW
    4. CHAPTER 4: UNDERSTANDING USER NEEDS
    5. CHAPTER 5: TRANSLATING USER NEEDS INTO DATA MODELS
    6. CHAPTER 6: EXTRACTING BUSINESS RULES
    7. CHAPTER 7: NORMALIZING DATA
    8. CHAPTER 8: DESIGNING DATABASES TO SUPPORT SOFTWARE
    9. CHAPTER 9: USING COMMON DESIGN PATTERNS
    10. CHAPTER 10: AVOIDING COMMON DESIGN PITFALLS
    11. CHAPTER 11: DEFINING USER NEEDS AND REQUIREMENTS
    12. CHAPTER 12: BUILDING A DATA MODEL
    13. CHAPTER 13: EXTRACTING BUSINESS RULES
    14. CHAPTER 14: NORMALIZING AND REFINING
    15. CHAPTER 15: EXAMPLE OVERVIEW
    16. CHAPTER 16: MARIADB IN PYTHON
    17. CHAPTER 17: MARIADB IN C#
    18. CHAPTER 18: POSTGRESQL IN PYTHON
    19. CHAPTER 19: POSTGRESQL IN C#
    20. CHAPTER 20: NEO4J AURADB IN PYTHON
    21. CHAPTER 21: NEO4J AURADB IN C#
    22. CHAPTER 22: MONGODB ATLAS IN PYTHON
    23. CHAPTER 23: MONGODB ATLAS IN C#
    24. CHAPTER 24: APACHE IGNITE IN PYTHON
    25. CHAPTER 25: APACHE IGNITE IN C#
    26. CHAPTER 26: INTRODUCTION TO SQL
    27. CHAPTER 27: BUILDING DATABASES WITH SQL SCRIPTS
    28. CHAPTER 28: DATABASE MAINTENANCE
    29. CHAPTER 29: DATABASE SECURITY
  10. B: Sample Relational Designs
    1. BOOKS
    2. MOVIES
    3. MUSIC
    4. DOCUMENT MANAGEMENT
    5. CUSTOMER ORDERS
    6. EMPLOYEE SHIFTS AND TIMESHEETS
    7. EMPLOYEES, PROJECTS, AND DEPARTMENTS
    8. EMPLOYEE SKILLS AND QUALIFICATIONS
    9. IDENTICAL OBJECT RENTAL
    10. DISTINCT OBJECT RENTAL
    11. STUDENTS, COURSES, AND GRADES
    12. TEAMS
    13. INDIVIDUAL SPORTS
    14. VEHICLE FLEETS
    15. CONTACTS
    16. PASSENGERS
    17. RECIPES
  11. GLOSSARY
  12. INDEX
  13. COPYRIGHT
  14. DEDICATION
  15. ABOUT THE AUTHOR
    1. ABOUT THE TECHNICAL EDITOR
  16. ACKNOWLEDGMENTS
  17. END USER LICENSE AGREEMENT

Product information

  • Title: Beginning Database Design Solutions, 2nd Edition
  • Author(s): Rod Stephens
  • Release date: April 2023
  • Publisher(s): Wiley
  • ISBN: 9781394155729