Beginning Database Design Solutions Understanding and Implementing Database Design Concepts for the Cloud and Beyond
Other Authors: | |
---|---|
Format: | eBook |
Language: | Inglés |
Published: |
Hoboken, New Jersey :
John Wiley & Sons, Inc
[2023]
|
Edition: | Second edition |
Subjects: | |
See on Biblioteca Universitat Ramon Llull: | https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009757918206719 |
Table of Contents:
- Cover
- Title Page
- Copyright Page
- About The Author
- Contents
- Introduction
- Who This Book Is For
- What This Book Covers
- What You Need to Use This Book
- How This Book Is Structured
- Part I: Introduction to Databases and Database Design
- Part II: Database Design Process and Techniques
- Part III: A Detailed Case Study
- Part IV: Example Programs
- Part V: Advanced Topics
- Appendixes
- How to Use This Book
- Note to Instructors
- Note to Students
- Conventions
- Source Code
- Contacting the Author
- Disclaimer
- Part 1 Introduction to Databases and Database Design
- Chapter 1 Database Design Goals
- The Importance of Design
- Space Spat
- Information Containers
- Strengths and Weaknesses of Information Containers
- Desirable Database Features
- CRUD
- Retrieval
- Consistency
- Validity
- Easy Error Correction
- Speed
- Atomic Transactions
- ACID
- BASE
- NewSQL
- Persistence and Backups
- Low Cost and Extensibility
- Ease of Use
- Portability
- Security
- Sharing
- Ability to Perform Complex Calculations
- CAP Theorem
- Cloud Considerations
- Legal and Security Considerations
- Consequences of Good and Bad Design
- Summary
- Chapter 2 Relational Overview
- Picking a Database
- Relational Points of View
- Table, Rows, and Columns
- Relations, Attributes, and Tuples
- Keys
- Indexes
- Constraints
- Domain Constraints
- Check Constraints
- Primary Key Constraints
- Unique Constraints
- Foreign Key Constraints
- Database Operations
- Popular RDBs
- Spreadsheets
- Summary
- Chapter 3 NoSQL Overview
- The Cloud
- Picking a Database
- NoSQL Philosophy
- NoSQL Databases
- Document Databases
- Key-Value Database
- Column-Oriented Databases
- Graph Databases
- Street Networks
- Communication Networks
- Social Media Apps
- E-Commerce Programs
- Algorithms.
- Hierarchical Databases
- Less Exotic Options
- Flat Files
- XML Files
- XML Basics
- XML Practices
- XML Summary
- JSON Files
- Spreadsheets
- More Exotic Options
- Object
- Deductive
- Dimensional
- Temporal
- Database Pros and Cons
- Relational
- General NoSQL
- Quick Guidelines
- Summary
- Part 2 Database Design Process and Techniques
- Chapter 4 Understanding User Needs
- Make a Plan
- Bring a List of Questions
- Functionality
- Data Needs
- Data Integrity
- Security
- Environment
- Meet the Customers
- Learn Who's Who
- Pick the Customers' Brains
- Walk a Mile in the User's Shoes
- Study Current Operations
- Brainstorm
- Look to the Future
- Understand the Customers' Reasoning
- Learn What the Customers Really Need
- Prioritize
- Verify Your Understanding
- Create the Requirements Document
- Make Use Cases
- Decide Feasibility
- Summary
- Chapter 5 Translating User Needs into Data Models
- What Are Data Models?
- User Interface Models
- Semantic Object Models
- Classes and Objects
- Cardinality
- Identifiers
- Putting It Together
- Semantic Views
- Class Types
- Simple Objects
- Composite Objects
- Compound Objects
- Hybrid Objects
- Association Objects
- Inherited Objects
- Comments and Notes
- Entity-Relationship Models
- Entities, Attributes, and Identifiers
- Relationships
- Cardinality
- Inheritance
- Additional Conventions
- Comments and Notes
- Relational Models
- Converting Semantic Object Models
- Converting ER Diagrams
- Summary
- Chapter 6 Extracting Business Rules
- What Are Business Rules?
- Identifying Key Business Rules
- Extracting Key Business Rules
- Multi-Tier Applications
- Summary
- Chapter 7 Normalizing Data
- What Is Normalization?
- First Normal Form (1NF)
- Second Normal Form (2NF)
- Third Normal Form (3NF)
- Stopping at Third Normal Form.
- Boyce-Codd Normal Form (BCNF)
- Fourth Normal Form (4NF)
- Fifth Normal Form (5NF)
- Domain/Key Normal Form (DKNF)
- Essential Redundancy
- The Best Level of Normalization
- NoSQL Normalization
- Summary
- Chapter 8 Designing Databases to Support Software
- Plan Ahead
- Document Everything
- Consider Multi-tier Architecture
- Convert Domains into Tables
- Keep Tables Focused
- Use Three Kinds of Tables
- Use Naming Conventions
- Allow Some Redundant Data
- Don't Squeeze in Everything
- Summary
- Chapter 9 Using Common Design Patterns
- Associations
- Many-to-Many Associations
- Multiple Many-to-Many Associations
- Multiple-Object Associations
- Repeated Attribute Associations
- Reflexive Associations
- One-to-One Reflexive Associations
- One-to-Many Reflexive Associations
- Hierarchical Data
- Hierarchical Data with NoSQL
- Network Data
- Network Data with NoSQL
- Temporal Data
- Effective Dates
- Deleted Objects
- Deciding What to Temporalize
- Logging and Locking
- Audit Trails
- Turnkey Records
- Summary
- Chapter 10 Avoiding Common Design Pitfalls
- Lack of Preparation
- Poor Documentation
- Poor Naming Standards
- Thinking Too Small
- Not Planning for Change
- Too Much Normalization
- Insufficient Normalization
- Insufficient Testing
- Performance Anxiety
- Mishmash Tables
- Not Enforcing Constraints
- Obsession with IDs
- Not Defining Natural Keys
- Summary
- Part 3 A Detailed Case Study
- Chapter 11 Defining User Needs and Requirements
- Meet the Customers
- Pick the Customers' Brains
- Determining What the System Should Do
- Determining How the Project Should Look
- Determining What Data Is Needed for the User Interface
- Determining Where the Data Should Come From
- Determining How the Pieces of Data Are Related
- Determining Performance Needs
- Determining Security Needs.
- Determining Data Integrity Needs
- Write Use Cases
- Write the Requirements Document
- Demand Feedback
- Summary
- Chapter 12 Building a Data Model
- Semantic Object Modeling
- Building an Initial Semantic Object Model
- Improving the Semantic Object Model
- Entity-Relationship Modeling
- Building an ER Diagram
- Building a Combined ER Diagram
- Improving the Entity-Relationship Diagram
- Relational Modeling
- Putting It All Together
- Summary
- Chapter 13 Extracting Business Rules
- Identifying Business Rules
- Courses
- CustomerCourses
- Customers
- Pets
- Employees
- Orders
- OrderItems
- InventoryItems
- TimeEntries
- Shifts
- Persons
- Phones
- Vendors
- Drawing a New Relational Model
- Summary
- Exercises
- Chapter 14 Normalizing and Refining
- Improving Flexibility
- Verifying First Normal Form
- Verifying Second Normal Form
- Pets
- TimeEntries
- Verifying Third Normal Form
- Summary
- Part 4 Example Programs
- Chapter 15 Example Overview
- Tool Choices
- Jupyter Notebook
- Visual Studio
- Database Adapters
- Packages in Jupyter Notebook
- Packages in Visual Studio
- Program Passwords
- Summary
- Chapter 16 MariaDB in Python
- Install MariaDB
- Run HeidiSQL
- Create the Program
- Install pymysql
- Create the Database
- Define Tables
- Create Data
- Fetch Data
- Summary
- Exercises
- Chapter 17 MariaDB in C#
- Create the Program
- Install MySqlConnector
- Create the Database
- Define Tables
- Create Data
- Fetch Data
- Summary
- Exercises
- Chapter 18 PostgreSQL in Python
- Install PostgreSQL
- Run pgAdmin
- Design the Database
- Create a User
- Create the Database
- Define the Tables
- Define the customers Table
- Define the orders Table
- Define the order_items Table
- Create the Program
- Install Psycopg
- Connect to the Database
- Delete Old Data.
- Create Customer Data
- Create Order Data
- Create Order Item Data
- Close the Connection
- Perform Queries
- Summary
- Chapter 19 PostgreSQL in C#
- Create the Program
- Install Npgsql
- Connect to the Database
- Delete Old Data
- Create Customer Data
- Create Order Data
- Create Order Item Data
- Display Orders
- Summary
- Exercises
- Chapter 20 Neo4j AuraDB in Python
- Install Neo4j AuraDB
- Nodes and Relationships
- Cypher
- Create the Program
- Install the Neo4j Database Adapter
- Action Methods
- delete_all_nodes
- make_node
- make_link
- execute_node_query
- find_path
- Org Chart Methods
- build_org_chart
- query_org_chart
- Main Program
- Summary
- Chapter 21 Neo4j AuraDB in C#
- Create the Program
- Install the Neo4j Driver
- Action Methods
- DeleteAllNodes
- MakeNode
- MakeLink
- ExecuteNodeQuery
- FindPath
- Org Chart Methods
- BuildOrgChart
- QueryOrgChart
- Main
- Summary
- Chapter 22 MongoDB Atlas in Python
- Not Normal but Not Abnormal
- XML, JSON, and BSON
- Install MongoDB Atlas
- Find the Connection Code
- Create the Program
- Install the PyMongo Database Adapter
- Helper Methods
- person_string
- connect_to_db
- delete_old_data
- create_data
- query_data
- Main Program
- Summary
- Chapter 23 MongoDB Atlas in C#
- Create the Program
- Install the MongoDB Database Adapter
- Helper Methods
- PersonString
- DeleteOldData
- CreateData
- QueryData
- Main Program
- Summary
- Chapter 24 Apache Ignite in Python
- Install Apache Ignite
- Start a Node
- Without Persistence
- With Persistence
- Create the Program
- Install the pyignite Database Adapter
- Define the Building Class
- Save Data
- Read Data
- Demonstrate Volatile Data
- Demonstrate Persistent Data
- Summary
- Chapter 25 Apache Ignite in C#
- Create the Program.
- Install the Ignite Database Adapter.