Atnaujinkite slapukų nuostatas

Beginning Database Design Solutions: Understanding and Implementing Database Design Concepts for the Cloud and Beyond 2nd edition [Minkštas viršelis]

(C# Helper; VB Helper)
  • Formatas: Paperback / softback, 736 pages, aukštis x plotis x storis: 231x185x38 mm, weight: 1225 g
  • Išleidimo metai: 24-Apr-2023
  • Leidėjas: John Wiley & Sons Inc
  • ISBN-10: 1394155727
  • ISBN-13: 9781394155729
Kitos knygos pagal šią temą:
  • Formatas: Paperback / softback, 736 pages, aukštis x plotis x storis: 231x185x38 mm, weight: 1225 g
  • Išleidimo metai: 24-Apr-2023
  • Leidėjas: John Wiley & Sons Inc
  • ISBN-10: 1394155727
  • ISBN-13: 9781394155729
Kitos knygos pagal šią temą:

In Beginning Database Design Solutions: Understanding and Implementing Cloud Database Design Concepts, Second Edition, veteran author and award-winning instructor Rod Stephens focuses on helping DBAs and novice database developers understand and implement cloud database design requirements. A cloud database is a database service built and accessed through a cloud platform. It serves many of the same functions as a traditional database with the added flexibility of cloud computing. Users install software on a cloud infrastructure to implement the database. Benefits include:

  • Can be managed by the user or offered as a database as a service (DBaaS) and managed by a provider
  • Can support relational databases (including MySQL and PostgreSQL) and NoSQL databases (including MongoDB and Apache CouchDB)
  • Access through a web interface or vendor-provided API


Digital transformation is driving the need for well-designed cloud databases. One of the biggest transformational challenges facing enterprises today is the movement from on-premises computing to cloud computing, enabling people to access data quickly and reliably. Cloud databases need to be designed and developed to include several critical characteristics: global scale, cloud-readiness; mainframe-class consistency and reliability; operational simplicity; flexible development, and uncompromising security.

This book provides IT professionals with thorough coverage of database concepts and also clear examples they can apply to their designs for cloud databases. As a bonus, all of the source code used in this book is available for download. As you work through the examples in this book, you may choose either to type in all the code manually or to use the source code files that accompany the book. 

 

Introduction xxv
PART 1 INTRODUCTION TO DATABASES AND DATABASE DESIGN
Chapter 1 Database Design Goals
3(26)
The Importance of Design
4(2)
Information Containers
6(2)
Strengths and Weaknesses of Information Containers
8(1)
Desirable Database Features
9(1)
Crud
10(1)
Retrieval
10(1)
Consistency
11(1)
Validity
11(1)
Easy Error Correction
12(1)
Speed
13(1)
Atomic Transactions
13(1)
Acid
14(2)
Base
16(1)
New SQL
17(1)
Persistence and Backups
17(1)
Low Cost and Extensibility
18(1)
Ease of Use
19(1)
Portability
19(1)
Security
20(1)
Sharing
21(1)
Ability to Perform Complex Calculations
21(1)
CAP Theorem
22(1)
Cloud Considerations
22(1)
Legal and Security Considerations
23(1)
Consequences of Good and Bad Design
24(2)
Summary
26(3)
Chapter 2 Relational Overview
29(18)
Picking a Database
30(1)
Relational Points of View
31(1)
Table, Rows, and Columns
32(2)
Relations, Attributes, and Tuples
34(1)
Keys
34(2)
Indexes
36(1)
Constraints
37(1)
Domain Constraints
37(1)
Check Constraints
37(1)
Primary Key Constraints
38(1)
Unique Constraints
38(1)
Foreign Key Constraints
38(2)
Database Operations
40(1)
Popular RDBs
41(1)
Spreadsheets
41(3)
Summary
44(3)
Chapter 3 NoSQL Overview
47(36)
The Cloud
47(3)
Picking a Database
50(1)
NoSQL Philosophy
50(1)
NoSQL Databases
50(1)
Document Databases
51(1)
Key-Value Database
52(1)
Column-Oriented Databases
53(1)
Graph Databases
53(1)
Street Networks
54(1)
Communication Networks
55(1)
Social Media Apps
55(1)
E-Commerce Programs
55(1)
Algorithms
56(1)
Hierarchical Databases
56(3)
Less Exotic Options
59(1)
Flat Files
59(1)
XML Files
60(1)
XML Basics
61(3)
XML Practices
64(2)
XML Summary
66(1)
JSON Files
67(2)
Spreadsheets
69(1)
More Exotic Options
70(1)
Object
70(1)
Deductive
70(1)
Dimensional
70(1)
Temporal
71(1)
Database Pros and Cons
72(1)
Relational
72(1)
General NoSQL
73(1)
Quick Guidelines
74(2)
Summary
76(7)
Chapter 4 Understanding User Needs
83(28)
Make a Plan
84(1)
Brinq a List of Questions
85(1)
Functionality
85(1)
Data Needs
86(1)
Data Integrity
86(1)
Security
87(1)
Environment
88(1)
Meet the Customers
88(1)
Learn Who's Who
89(4)
Pick the Customers' Brains
93(1)
Walk a Mile in the User's Shoes
93(1)
Study Current Operations
94(1)
Brainstorm
94(1)
Look to the Future
95(1)
Understand the Customers' Reasoning
96(1)
Learn What the Customers Really Need
97(1)
Prioritize
98(1)
Verify Your Understanding
99(2)
Create the Requirements Document
101(1)
Make Use Cases
102(4)
Decide Feasibility
106(1)
Summary
106(5)
PART 2 DATABASE DESIGN PROCES AND TECHNIQUES
Chapter 5 Translating User Needs Into Data Models
111(34)
What Are Data Models?
112(2)
User Interface Models
114(4)
Semantic Object Models
118(1)
Classes and Objects
119(1)
Cardinality
120(1)
Identifiers
120(1)
Putting It Together
121(1)
Semantic Views
122(2)
Class Types
124(1)
Simple Objects
124(1)
Composite Objects
124(1)
Compound Objects
125(1)
Hybrid Objects
125(1)
Association Objects
126(2)
Inherited Objects
128(1)
Comments and Notes
129(1)
Entity-Relationship Models
130(1)
Entities, Attributes, and Identifiers
131(1)
Relationships
132(1)
Cardinality
133(1)
Inheritance
134(2)
Additional Conventions
136(1)
Comments and Notes
137(1)
Relational Models
137(1)
Converting Semantic Object Models
138(2)
Converting ER Diagrams
140(2)
Summary
142(3)
Chapter 6 Extracting Business Rules
145(18)
What Are Business Rules?
145(2)
Identifying Key Business Rules
147(5)
Extracting Key Business Rules
152(2)
Multi-Tier Applications
154(4)
Summary
158(5)
Chapter 7 Normalizing Data
163(40)
What Is Normalization?
163(1)
First Normal Form (1NF)
164(9)
Second Normal Form (2NF)
173(4)
Third Normal Form (3NF)
177(4)
Stopping at Third Normal Form
181(1)
Boyce-Codd Normal Form (BCNF)
181(4)
Fourth Normal Form (4NF)
185(5)
Fifth Normal Form (5NF)
190(3)
Domain/Key Normal Form (DKNF)
193(2)
Essential Redundancy
195(2)
The Best Level of Normalization
197(1)
NoSQL Normalization
197(2)
Summary
199(4)
Chapter 8 Designing Databases To Support Software
203(12)
Plan Ahead
204(1)
Document Everything
204(1)
Consider Multi-Tier Architecture
205(1)
Convert Domains into Tables
205(1)
Keep Tables Focused
206(1)
Use Three Kinds of Tables
207(2)
Use Naming Conventions
209(1)
Allow Some Redundant Data
210(1)
Don't Squeeze in Everything
211(1)
Summary
212(3)
Chapter 9 Using Common Design Patterns
215(26)
Associations
216(1)
Many-to-Many Associations
216(1)
Multiple Many-to-Many Associations
216(2)
Multiple-Object Associations
218(3)
Repeated Attribute Associations
221(1)
Reflexive Associations
222(1)
One-to-One Reflexive Associations
223(1)
One-to-Many Reflexive Associations
224(1)
Hierarchical Data
225(3)
Hierarchical Data with NoSQL
228(1)
Network Data
229(2)
Network Data with NoSQL
231(1)
Temporal Data
232(1)
Effective Dates
232(1)
Deleted Objects
233(1)
Deciding What to Temporalize
234(2)
Logging and Locking
236(1)
Audit Trails
236(1)
Turnkey Records
237(1)
Summary
238(3)
Chapter 10 Avoiding Common Design Pitfalls
241(22)
Lack of Preparation
241(1)
Poor Documentation
242(1)
Poor Naming Standards
242(2)
Thinking Too Small
244(1)
Not Planning for Change
245(3)
Too Much Normalization
248(1)
Insufficient Normalization
248(1)
Insufficient Testing
249(1)
Performance Anxiety
249(1)
Mishmash Tables
250(3)
Not Enforcing Constraints
253(1)
Obsession with IDs
253(3)
Not Defining Natural Keys
256(1)
Summary
257(6)
PART 3 A DETAILED CASE STUDY
Chapter 11 Defining User Needs And Requirements
263(20)
Meet the Customers
263(2)
Pick the Customers' Brains
265(1)
Determining What the System Should Do
265(2)
Determining How the Project Should Look
267(1)
Determining What Data Is Needed for the User Interface
268(1)
Determining Where the Data Should Come From
269(1)
Determining How the Pieces of Data Are Related
269(2)
Determining Performance Needs
271(1)
Determining Security Needs
272(1)
Determining Data Inteqrity Needs
273(2)
Write Use Cases
275(4)
Write the Requirements Document
279(1)
Demand Feedback
280(1)
Summary
281(2)
Chapter 12 Building A Data Model
283(20)
Semantic Object Modeling
283(1)
Building an Initial Semantic Object Model
283(3)
Improving the Semantic Object Model
286(3)
Entity-Relationship Modeling
289(1)
Building an ER Diagram
289(2)
Building a Combined ER Diagram
291(2)
Improving the Entity-Relationship Diagram
293(1)
Relational Modeling
294(4)
Putting It All Together
298(1)
Summary
299(4)
PART 4 EXAMPLE PROGRAMS
Chapter 13 Extracting Business Rules
303(10)
Identifying Business Rules
303(1)
Courses
304(2)
Customer Courses
306(1)
Customers
307(1)
Pets
307(1)
Employees
307(1)
Orders
307(1)
Orderltems
308(1)
Inventoryltems
308(1)
Time Entries
308(1)
Shifts
309(1)
Persons
309(1)
Phones
309(1)
Vendors
309(1)
Drawing a New Relational Model
310(1)
Summary
310(3)
Chapter 14 Normalizing And Refining
313(14)
Improving Flexibility
313(2)
Verifying First Normal Form
315(3)
Verifying Second Normal Form
318(1)
Pets
319(1)
Time Entries
320(1)
Verifying Third Normal Form
321(2)
Summary
323(4)
Chapter 15 Example Overview
327(12)
Tool Choices
327(2)
Jupyter Notebook
329(2)
Visual Studio
331(1)
Database Adapters
332(1)
Packages in Jupyter Notebook
333(1)
Packages in Visual Studio
334(2)
Program Passwords
336(1)
Summary
336(3)
Chapter 16 MariaDB IN PYTHON
339(16)
Install MariaDB
340(1)
Run HeidiSQL
340(3)
Create the Program
343(1)
Install pymysql
344(1)
Create the Database
344(2)
Define Tables
346(2)
Create Data
348(2)
Fetch Data
350(2)
Summary
352(3)
Chapter 17 MariaDB IN C#
355(14)
Create the Program
355(1)
Install MySqIConnector
356(1)
Create the Database
356(2)
Define Tables
358(2)
Create Data
360(4)
Fetch Data
364(2)
Summary
366(3)
Chapter 18 PostgreSQL IN PYTHON
369(20)
Install PostgreSQL
370(1)
Run pgAdmin
371(1)
Design the Database
371(1)
Create a User
371(2)
Create the Database
373(1)
Define the Tables
374(1)
Define the customers Table
374(2)
Define the orders Table
376(1)
Define the order items Table
377(1)
Create the Program
378(1)
Install Psycopg
379(1)
Connect to the Database
379(1)
Delete Old Data
380(1)
Create Customer Data
380(2)
Create Order Data
382(1)
Create Order Item Data
383(1)
Close the Connection
384(1)
Perform Queries
384(2)
Summary
386(3)
Chapter 19 PostgreSQL IN C#
389(12)
Create the Program
389(1)
Install Npgsql
389(1)
Connect to the Database
390(1)
Delete Old Data
391(1)
Create Customer Data
392(1)
Create Order Data
393(2)
Create Order Item Data
395(1)
Display Orders
396(3)
Summary
399(2)
Chapter 20 Neo4j AuraDB IN PYTHON
401(16)
Install Neo4j AuraDB
402(2)
Nodes and Relationships
404(1)
Cypher
404(1)
Create the Program
405(1)
Install the Neo4j Database Adapter
405(1)
Action Methods
405(1)
Delete all nodes
406(1)
Make node
407(1)
makejink
407(1)
Execute node query
408(1)
Find path
409(1)
Org Chart Methods
410(1)
Build org chart
410(1)
Query org chart
411(1)
Main Program
412(2)
Summary
414(3)
Chapter 21 Neo4j AuraDB IN C#
417(14)
Create the Program
418(1)
Install the Neo4j Driver
418(1)
Action Methods
419(1)
DeleteAIINodes
419(1)
MakeNode
420(1)
MakeLink
421(1)
ExecuteNodeQuery
422(1)
FindPath
422(1)
Org Chart Methods
423(1)
BuildOrgChart
424(1)
QueryOrgChart
424(2)
Main
426(2)
Summary
428(3)
Chapter 22 MongoDB ATLAS IN PYTHON
431(22)
Not Normal but Not Abnormal
432(1)
XML, JSON, and BSON
432(2)
Install MongoDB Atlas
434(2)
Find the Connection Code
436(3)
Create the Program
439(1)
Install the PyMongo Database Adapter
439(1)
Helper Methods
440(1)
Person string
440(1)
Connect to db
441(1)
Delete old data
442(1)
Create data
442(2)
Query data
444(5)
Main Program
449(1)
Summary
450(3)
Chapter 23 MongoDB ATLAS IN C#
453(14)
Create the Program
454(1)
Install the MongoDB Database Adapter
454(1)
Helper Methods
454(1)
PersonString
455(1)
DeleteOldData
456(1)
CreateData
457(1)
QueryData
458(4)
Main Program
462(3)
Summary
465(2)
Chapter 24 Apache Ignite In Python
467(10)
Install Apache Ignite
468(1)
Start a Node
468(1)
Without Persistence
469(1)
With Persistence
470(1)
Create the Program
470(1)
Install the pyignite Database Adapter
471(1)
Define the Building Class
471(1)
Save Data
471(2)
Read Data
473(1)
Demonstrate Volatile Data
473(1)
Demonstrate Persistent Data
474(1)
Summary
474(3)
Chapter 25 Apache Ignite In C#
477(12)
Create the Program
477(1)
Install the Ignite Database Adapter
478(1)
The Main Program
479(1)
The Building Class
480(1)
The WriteData Method
480(2)
The ReadData Method
482(1)
Demonstrate Volatile Data
483(1)
Demonstrate Persistent Data
483(1)
Summary
483(6)
PART 5 ADVANCED TOPICS
Chapter 26 Introduction To SQL
489(30)
Background
491(1)
Finding More Information
491(1)
Standards
492(1)
Multistatement Commands
493(2)
Basic Syntax
495(1)
Command Overview
495(3)
Create Table
498(5)
Create Index
503(1)
Drop
504(1)
Insert
504(2)
Select
506(1)
SELECT Clause
506(1)
FROM Clause
507(4)
WHERE Clause
511(1)
GROUP BY Clause
511(1)
ORDER BY Clause
512(1)
Update
513(1)
Delete
514(1)
Summary
515(4)
Chapter 27 Building Databases With Sql Scripts
519(14)
Why Bother with Scripts?
519(1)
Script Categories
520(1)
Database Creation Scripts
520(1)
Basic Initialization Scripts
520(1)
Data Initialization Scripts
520(1)
Cleanup Scripts
521(1)
Saving Scripts
521(1)
Ordering SQL Commands
522(9)
Summary
531(2)
Chapter 28 Database Maintenance
533(12)
Backups
533(4)
Data Warehousing
537(1)
Repairing the Database
538(1)
Compacting the Database
538(1)
Performance Tuning
538(4)
Summary
542(3)
Chapter 29 Database Security
545(12)
The Right Level of Security
545(1)
Passwords
546(1)
Single-Password Databases
546(1)
Individual Passwords
546(1)
Operating System Passwords
547(1)
Good Passwords
547(1)
Privileges
548(5)
Initial Configuration and Privileges
553(1)
Too Much Security
553(1)
Physical Security
554(1)
Summary
555(2)
Appendix A Exercise Solutions 557(92)
Appendix B Sample Relational Designs 649(22)
Glossary 671(12)
Index 683
ROD STEPHENS is a professional programmer, sought-after technical speaker, instructor, and author. Hes written 37 books and over 250 magazine articles on C#, Java, and other programming languages. He runs the popular C# Helper and VB Helper websites which have helped millions of programmers with tips, tricks, and useful example code.