Muutke küpsiste eelistusi

E-raamat: Pro SQL Server Relational Database Design and Implementation: Best Practices for Scalability and Performance

  • Formaat - EPUB+DRM
  • Hind: 80,26 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Lisa ostukorvi
  • Lisa soovinimekirja
  • See e-raamat on mõeldud ainult isiklikuks kasutamiseks. E-raamatuid ei saa tagastada.

DRM piirangud

  • Kopeerimine (copy/paste):

    ei ole lubatud

  • Printimine:

    ei ole lubatud

  • Kasutamine:

    Digitaalõiguste kaitse (DRM)
    Kirjastus on väljastanud selle e-raamatu krüpteeritud kujul, mis tähendab, et selle lugemiseks peate installeerima spetsiaalse tarkvara. Samuti peate looma endale  Adobe ID Rohkem infot siin. E-raamatut saab lugeda 1 kasutaja ning alla laadida kuni 6'de seadmesse (kõik autoriseeritud sama Adobe ID-ga).

    Vajalik tarkvara
    Mobiilsetes seadmetes (telefon või tahvelarvuti) lugemiseks peate installeerima selle tasuta rakenduse: PocketBook Reader (iOS / Android)

    PC või Mac seadmes lugemiseks peate installima Adobe Digital Editionsi (Seeon tasuta rakendus spetsiaalselt e-raamatute lugemiseks. Seda ei tohi segamini ajada Adober Reader'iga, mis tõenäoliselt on juba teie arvutisse installeeritud )

    Seda e-raamatut ei saa lugeda Amazon Kindle's. 

Learn effective and scalable database design techniques in SQL Server 2019 and other recent SQL Server versions. This book is revised to cover additions to SQL Server that include SQL graph enhancements, in-memory online transaction processing, temporal data storage, row-level security, and other design-related features. This book will help you design OLTP databases that are high-quality, protect the integrity of your data, and perform fast on-premises, in the cloud, or in hybrid configurations. 

Designing an effective and scalable database using SQL Server is a task requiring skills that have been around for well over 30 years, using technology that is constantly changing. This book covers everything from design logic that business users will understand to the physical implementation of design in a SQL Server database. Grounded in best practices and a solid understanding of the underlying theory, author Louis Davidson shows you how to "get it right" in SQL Server database design and lay a solid groundwork for the future use of valuable business data.


What You Will Learn
  • Develop conceptual models of client data using interviews and client documentation
  • Implement designs that work on premises, in the cloud, or in a hybrid approach
  • Recognize and apply common database design patterns
  • Normalize data models to enhance integrity and scalability of your databases for the long-term use of valuable data
  • Translate conceptual models into high-performing SQL Server databases
  • Secure and protect data integrity as part of meeting regulatory requirements
  • Create effective indexing to speed query performance
  • Understand the concepts of concurrency


Who This Book Is For

Programmers and database administrators of all types who want to use SQL Server to store transactional data. The book is especially useful to those wanting to learn the latest database design features in SQL Server 2019 (features that include graph objects, in-memory OLTP, temporal data support, and more). Chapters on fundamental concepts, the language of database modeling, SQL implementation, and the normalization process lay a solid groundwork for readers who are just entering the field of database design. More advanced chapters serve the seasoned veteran by tackling the latest in physical implementation features that SQL Server has to offer. The book has been carefully revised to cover all the design-related features that are new in SQL Server 2019.


About the Author xv
About the Technical Reviewer xvii
Acknowledgments xix
Introduction xxi
Chapter 1 The Fundamentals 1(64)
History
3(11)
Codd's Rules for an RDBMS
5(8)
SQL Standards
13(1)
Recognizing Relational Data Structures
14(26)
Introducing Databases and Schemas
15(1)
Understanding Tables, Rows, and Columns
16(8)
Working with Missing Values (NULL)
24(2)
Defining Domains
26(3)
Metadata
29(1)
Uniqueness Constraints (Keys)
30(10)
Understanding Relationships
40(10)
Binary Relationships
43(6)
Nonbinary Relationships
49(1)
Understanding Data Dependencies
50(3)
Functional Dependencies
51(1)
Finding Determinants
52(1)
Relational Programming
53(3)
Outlining the Database-Specific Project Phases
56(5)
Conceptual
57(1)
Logical
58(1)
Physical
59(1)
Maintenance
60(1)
Summary
61(4)
Chapter 2 Introduction to Requirements 65(26)
Documenting Requirements
70(2)
Gathering Requirements
72(17)
Interviewing People
74(2)
Getting the Answers to the Right Questions
76(10)
Finding Obscure Requirements
86(3)
Best Practices
89(1)
Summary
90(1)
Chapter 3 The Language of Data Modeling 91(58)
Introducing Data Modeling
92(2)
Entities
94(5)
Attributes
99(14)
Primary Keys
102(3)
Alternate Keys
105(2)
Foreign Keys
107(1)
Domains
108(5)
Relationships
113(23)
Identifying Relationships
115(2)
Nonidentifying Relationships
117(4)
Role Names
121(1)
Relationship Cardinality
122(11)
Verb Phrases (Relationship Names)
133(3)
Descriptive Information
136(3)
Alternative Modeling Methodologies
139(5)
Information Engineering
140(3)
Chen ERD
143(1)
Best Practices
144(2)
Summary
146(3)
Chapter 4 Conceptual and Logical Data Model Production 149(66)
Example Scenario
151(1)
Building the Conceptual Model
152(31)
Identifying Entities
153(13)
Identifying Relationships Between Entities
166(16)
Testing the Conceptual Model
182(1)
Building the Logical Model
183(29)
Identifying Attributes and Domains
183(19)
Identifying Business Rules
202(3)
Identifying Fundamental Processes
205(3)
Finalizing the Logical Model
208(4)
Best Practices
212(1)
Summary
213(2)
Chapter 5 Normalization 215(70)
The Process of Normalization
217(1)
Table and Column Shape
218(26)
All Columns Must Be Atomic
220(14)
All Rows Must Contain the Same Number of Values
234(5)
All Rows Must Be Different
239(4)
Clues That an Existing Design Is Not in First Normal Form
243(1)
Non-Key Column Relationships
244(20)
BCNF Defined
245(3)
Partial Key Dependency
248(2)
Entire Key Dependency
250(2)
Surrogate Keys' Effect on Dependency
252(5)
Dependency Between Rows
257(1)
Clues That Your Database Is Not in BCNF
258(4)
Positional Meaning
262(2)
Key Column Relationships
264(11)
Fourth Normal Form: Independent Multivalued Dependencies
265(5)
Fifth Normal Form
270(5)
Denormalization
275(4)
Best Practices
279(1)
Summary
280(5)
Chapter 6 Physical Model Case Study 285(62)
Choosing Names
289(9)
Table Naming
291(3)
Naming Columns
294(2)
Model Name Adjustments
296(2)
Choosing Key Implementation
298(10)
Primary Key
298(7)
Alternate Keys
305(3)
Determining Column Domain Implementation
308(29)
Enforce Domain in the Column or With a Table?
312(3)
Choosing the Datatype
315(16)
Setting Nuliability
331(2)
Collation and Code Page of Character Data
333(4)
Setting Up Schemas
337(2)
Adding Implementation Columns
339(2)
Best Practices
341(2)
Summary
343(1)
The Story of the Book So Far
343(4)
Chapter 7 Physical Model Implementation 347(80)
Choosing the Engine for Your Tables
349(3)
Using DDL to Create the Database
352(61)
Creating the Database
354(2)
Creating the Basic Table Structures
356(17)
Adding Uniqueness Constraints
373(6)
Building DEFAULT Constraints
379(3)
Adding Relationships (Foreign Keys)
382(11)
Adding Basic CHECK Constraints
393(4)
Triggers to Maintain Automatic Values
397(7)
Documenting Your Database
404(5)
Viewing the Basic System Metadata
409(4)
Unit Testing Your Structures
413(9)
Best Practices
422(1)
Deployment Lifecycle
423(1)
Summary
424(3)
Chapter 8 Data Protection Patterns with Check Constraints and Triggers 427(80)
CHECK Constraints
430(25)
CHECK Constraints Based on Simple Expressions
434(8)
CHECK Constraints Using Functions
442(7)
Enhancing Errors Caused by Constraints
449(6)
DML Triggers
455(39)
AFTER TRIGGER Objects
457(23)
INSTEAD OF Triggers
480(14)
Dealing with TRIGGER and Constraint Errors
494(8)
Best Practices
502(2)
Summary
504(3)
Chapter 9 Patterns and Anti-patterns 507(140)
Desirable Patterns
508(121)
Uniqueness Techniques
509(25)
Data-Driven Design
534(2)
Historical/Temporal Data
536(23)
Images, Documents, and Other Files
559(11)
Generalization
570(8)
Storing User-Specified Data
578(19)
Storing Graph Data in SQL Server
597(32)
Anti-patterns
629(14)
Undecipherable Data
631(2)
One-Size-Fits-All Key Domain
633(4)
Generic Key References
637(4)
Overusing Unstructured Data
641(2)
Summary
643(4)
Chapter 10 Database Security and Security Patterns 647(126)
Database Security Prerequisites
651(26)
Guidelines for Host Server Security Configuration
651(3)
Security Principals
654(1)
Granting and Denying Access to Securables
655(3)
Connecting to a SQL Server Database
658(14)
Impersonation
672(5)
Database Object Securables
677(24)
Grantable Permissions
678(7)
Roles
685(13)
Schemas
698(3)
Controlling Access to Data via T-SQL Coded Objects
701(15)
Stored Procedures and Scalar Functions
702(12)
Views and Table-Valued Functions
714(2)
Row-Level Security
716(18)
Using Specific-Purpose Views to Provide Row-Level Security
718(4)
Using the Row-Level Security Feature
722(8)
Using Data-Driven Row-Level Security
730(2)
Row-Level Security and Impersonation
732(2)
Crossing Database Lines
734(17)
Using Cross-Database Chaining
736(8)
Using Impersonation to Cross Database Lines
744(2)
Using a Certificate-Based Trust
746(3)
Accessing Data on a Different Server
749(2)
Obfuscating Data
751(10)
Encrypting Data
752(3)
Using Dynamic Data Masking to Hide Data from Users
755(6)
Auditing SQL Server Use
761(7)
Defining an Audit Specification
763(4)
Viewing the Audit Configuration
767(1)
Best Practices
768(2)
Summary
770(3)
Chapter 11 Data Structures, Indexes, and Their Application 773(104)
Indexing Overview
776(1)
Basic Index Structure
777(4)
On-Disk Indexes
781(48)
Clustered Indexes
789(10)
Nonclustered Indexes
799(29)
Unique Indexes
828(1)
Memory-Optimized Indexes and Data Structures
829(14)
Memory-Optimized Tables
830(11)
Columnstore Indexes
841(2)
Common OLTP Patterns of Index Usage
843(20)
Indexing Foreign Keys
844(7)
Indexed Views
851(6)
Compression
857(2)
Partitioning
859(4)
Indexing Dynamic Management View Queries
863(9)
Missing Indexes
864(4)
Fragmentation
868(1)
On-Disk Index Statistics
869(2)
Memory-Optimizeti Table Index Stats
871(1)
Best Practices
872(3)
Summary
875(2)
Chapter 12 Matters of Concurrency 877(106)
OS and Hardware Concerns
881(2)
Transactions
883(22)
Transaction Overview
884(2)
Transaction Syntax
886(19)
SQL Server Concurrency Methods
905(62)
Isolation Levels
906(5)
Pessimistic Concurrency Enforcement
911(27)
Optimistic Concurrency Enforcement
938(29)
Coding for Asynchronous Contention
967(12)
Row-Based Change Detection
969(7)
Coding for Logical Unit of Work Change Detection
976(3)
Best Practices
979(2)
Summary
981(2)
Chapter 13 Coding Architecture 983(104)
Building the Data Access Layer
984(67)
Using Ad Hoc SQL
987(29)
Using a T-SQL Coded Encapsulation Layer
1016(33)
Stored Procedure or Ad Hoc?
1049(2)
Building Reusable Components
1051(30)
Numbers Table
1054(5)
Calendar Table
1059(3)
Utility Objects
1062(8)
Tools Library
1070(7)
Logging Objects
1077(4)
Best Practices
1081(1)
Summary
1082(2)
Epilogue
1084(3)
Appendix A: Scalar Datatype Reference 1087(52)
Numeric Data
1090(12)
Integer Values
1091(3)
Precise Numeric Values
1094(6)
Approximate Numeric Data
1100(2)
Date and Time Data
1102(9)
date
1103(1)
time [ (precision)]
1103(1)
datetime2 [ (precision)]
1104(1)
datetimeoffset [ (precision)]
1104(1)
smalldatetime
1105(1)
datetime
1106(1)
Discussion on All Date Types
1107(4)
Character Strings
1111(10)
char[ (number of bytes)]
1111(2)
varchar[ (number of bytes)]
1113(2)
varchar(max)
1115(1)
text
1116(1)
Binary Data
1117(1)
binary[ (number ot bytes)]
1118(1)
varbinary[ (length)]
1119(1)
varbinary(max)
1119(1)
image
1120(1)
Other Datatypes
1121(15)
bit
1121(1)
rowversion (aka timestamp)
1122(2)
uniqueidentifier
1124(4)
cursor
1128(1)
table
1128(5)
sql_variant
1133(3)
Not Simply Scalar Datatypes
1136(3)
Index 1139
Louis Davidson has been working with databases for more than 20 years as a corporate database developer and architect. He has been a Microsoft MVP for 15 years. And he has completed a sixth edition of his SQL Server database design book (Apress). Louis has been active speaking about database design and implementation at many conferences over the past 17 years, including SQL PASS, SQL Rally, SQL Saturday events, CA World, Music City Data, and the devLink Technical Conference. Louis has worked for the Christian Broadcasting Network (CBN) as a developer, DBA, and data architect for over 21 years. He has a bachelors degree in computer science from the University of Tennessee at Chattanooga. For more information, please visit his website at drsql.org.