图书介绍

A first course in database systems = 数据库系统基础教程(英文版·第3版)PDF|Epub|txt|kindle电子书版本网盘下载

A first course in database systems = 数据库系统基础教程(英文版·第3版)
  • Jeffrey D. Ullman ; Jennifer Widom 著
  • 出版社: China Machine Press
  • ISBN:7111247333
  • 出版时间:2008
  • 标注页数:565页
  • 文件大小:23MB
  • 文件页数:208页
  • 主题词:

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

A first course in database systems = 数据库系统基础教程(英文版·第3版)PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

1 The Worlds of Database Systems1

1.1 The Evolution of Database Systems1

1.1.1 Early Database Management Systems2

1.1.2 Relational Database Systems3

1.1.3 Smaller and Smaller Systems3

1.1.4 Bigger and Bigger Systems4

1.1.5 Information Integration4

1.2 Overview of a Database Management System5

1.2.1 Data-Definition Language Commands5

1.2.2 Overview of Query Processing5

1.2.3 Storage and Buffer Management7

1.2.4 Transaction Processing8

1.2.5 The Query Processor9

1.3 Outline of Database-System Studies10

1.4 References for Chapter 112

Ⅰ Relational Database Modeling15

2 The Relational Model of Data17

2.1 An Overview of Data Models17

2.1.1 What is a Data Model?17

2.1.2 Important Data Models18

2.1.3 The Relational Model in Brief18

2.1.4 The Semistructured Model in Brief19

2.1.5 Other Data Models20

2.1.6 Comparison of Modeling Approaches21

2.2 Basics of the Relational Model21

2.2.1 Attributes22

2.2.2 Schemas22

2.2.3 Tuples22

2.2.4 Domains23

2.2.5 Equivalent Representations of a Relation23

2.2.6 Relation Instances24

2.2.7 Keys of Relations25

2.2.8 An Example Database Schema26

2.2.9 Exercises for Section 2.228

2.3 Defining a Relation Schema in SQL29

2.3.1 Relations in SQL29

2.3.2 Data Types30

2.3.3 Simple Table Declarations31

2.3.4 Modifying Relation Schemas33

2.3.5 Default Values34

2.3.6 Declaring Keys34

2.3.7 Exercises for Section 2.336

2.4 An Algebraic Query Language38

2.4.1 Why Do We Need a Special Query Language?38

2.4.2 What is an Algebra?38

2.4.3 Overview of Relational Algebra39

2.4.4 Set Operations on Relations39

2.4.5 Projection41

2.4.6 Selection42

2.4.7 Cartesian Product43

2.4.8 Natural Joins43

2.4.9 Theta-Joins45

2.4.10 Combining Operations to Form Queries47

2.4.11 Naming and Renaming49

2.4.12 Relationships Among Operations50

2.4.13 A Linear Notation for Algebraic Expressions51

2.4.14 Exercises for Section 2.452

2.5 Constraints on Relations58

2.5.1 Relational Algebra as a Constraint Language59

2.5.2 Referential Integrity Constraints59

2.5.3 Key Constraints60

2.5.4 Additional Constraint Examples61

2.5.5 Exercises for Section 2.562

2.6 Summary of Chapter 263

2.7 References for Chapter 265

3 Design Theory for Relational Databases67

3.1 Functional Dependencies67

3.1.1 Definition of Functional Dependency68

3.1.2 Keys of Relations70

3.1.3 Superkeys71

3.1.4 Exercises for Section 3.171

3.2 Rules About Functional Dependencies72

3.2.1 Reasoning About Functional Dependencies72

3.2.2 The Splitting/Combining Rule73

3.2.3 Trivial Functional Dependencies74

3.2.4 Computing the Closure of Attributes75

3.2.5 Why the Closure Algorithm Works77

3.2.6 The Transitive Rule79

3.2.7 Closing Sets of Functional Dependencies80

3.2.8 Projecting Functional Dependencies81

3.2.9 Exercises for Section 3.283

3.3 Design of Relational Database Schemas85

3.3.1 Anomalies86

3.3.2 Decomposing Relations86

3.3.3 Boyce-Codd Normal Form88

3.3.4 Decomposition into BCNF89

3.3.5 Exercises for Section 3.392

3.4 Decomposition:The Good,Bad,and Ugly93

3.4.1 Recovering Information from a Decomposition94

3.4.2 The Chase Test for Lossless Join96

3.4.3 Why the Chase Works99

3.4.4 Dependency Preservation100

3.4.5 Exercises for Section 3.4102

3.5 Third Normal Form102

3.5.1 Definition of Third Normal Form102

3.5.2 The Synthesis Algorithm for 3NF Schemas103

3.5.3 Why the 3NF Synthesis Algorithm Works104

3.5.4 Exercises for Section 3.5105

3.6 Multivalued Dependencies105

3.6.1 Attribute Independence and Its Consequent Redundancy106

3.6.2 Definition of Multivalued Dependencies107

3.6.3 Reasoning About Multivalued Dependencies108

3.6.4 Fourth Normal Form110

3.6.5 Decomposition into Fourth Normal Form111

3.6.6 Relationships Among Normal Forms113

3.6.7 Exercises for Section 3.6113

3.7 An Algorithm for Discovering MVD’s115

3.7.1 The Closure and the Chase115

3.7.2 Extending the Chase to MVD’s116

3.7.3 Why the Chase Works for MVD’s118

3.7.4 Projecting MVD’s119

3.7.5 Exercises for Section 3.7120

3.8 Summary of Chapter 3121

3.9 References for Chapter 3122

4 High-Level Database Models125

4.1 The Entity/Relationship Model126

4.1.1 Entity Sets126

4.1.2 Attributes126

4.1.3 Relationships127

4.1.4 Entity-Relationship Diagrams127

4.1.5 Instances of an E/R Diagram128

4.1.6 Multiplicity of Binary E/R Relationships129

4.1.7 Multiway Relationships130

4.1.8 Roles in Relationships131

4.1.9 Attributes on Relationships134

4.1.10 Converting Multiway Relationships to Binary134

4.1.11 Subclasses in the E/R Model135

4.1.12 Exercises for Section 4.1138

4.2 Design Principles140

4.2.1 Faithfulness140

4.2.2 Avoiding Redundancy141

4.2.3 Simplicity Counts142

4.2.4 Choosing the Right Relationships142

4.2.5 Picking the Right Kind of Element144

4.2.6 Exercises for Section 4.2145

4.3 Constraints in the E/R Model148

4.3.1 Keys in the E/R Model148

4.3.2 Representing Keys in the E/R Model149

4.3.3 Referential Integrity150

4.3.4 Degree Constraints151

4.3.5 Exercises for Section 4.3151

4.4 Weak Entity Sets152

4.4.1 Causes of Weak Entity Sets152

4.4.2 Requirements for Weak Entity Sets153

4.4.3 Weak Entity Set Notation155

4.4.4 Exercises for Section 4.4156

4.5 From E/R Diagrams to Relational Designs157

4.5.1 From Entity Sets to Relations157

4.5.2 From E/R Relationships to Relations158

4.5.3 Combining Relations160

4.5.4 Handling Weak Entity Sets161

4.5.5 Exercises for Section 4.5163

4.6 Converting Subclass Structures to Relations165

4.6.1 E/R-Style Conversion166

4.6.2 An Object-Oriented Approach167

4.6.3 Using Null Values to Combine Relations168

4.6.4 Comparison of Approaches169

4.6.5 Exercises for Section 4.6171

4.7 Unified Modeling Language171

4.7.1 UML Classes172

4.7.2 Keys for UML classes173

4.7.3 Associations173

4.7.4 Self-Associations175

4.7.5 Association Classes175

4.7.6 Subclasses in UML176

4.7.7 Aggregations and Compositions177

4.7.8 Exercises for Section 4.7179

4.8 From UML Diagrams to Relations179

4.8.1 UML-to-Relations Basics179

4.8.2 From UML Subclasses to Relations180

4.8.3 From Aggregations and Compositions to Relations181

4.8.4 The UML Analog of Weak Entity Sets181

4.8.5 Exercises for Section 4.8183

4.9 Object Definition Language183

4.9.1 Class Declarations184

4.9.2 Attributes in ODL184

4.9.3 Relationships in ODL185

4.9.4 Inverse Relationships186

4.9.5 Multiplicity of Relationships186

4.9.6 Types in ODL188

4.9.7 Subclasses in ODL190

4.9.8 Declaring Keys in ODL191

4.9.9 Exercises for Section 4.9192

4.10 From ODL Designs to Relational Designs193

4.10.1 From ODL Classes to Relations193

4.10.2 Complex Attributes in Classes194

4.10.3 Representing Set-Valued Attributes195

4.10.4 Representing Other Type Constructors196

4.10.5 Representing ODL Relationships198

4.10.6 Exercises for Section 4.10198

4.11 Summary of Chapter 4200

4.12 References for Chapter 4202

Ⅱ Relational Database Programming203

5 Algebraic and Logical Query Languages205

5.1 Relational Operations on Bags205

5.1.1 Why Bags?206

5.1.2 Union,Intersection,and Difference of Bags207

5.1.3 Projection of Bags208

5.1.4 Selection on Bags209

5.1.5 Product of Bags210

5.1.6 Joins of Bags210

5.1.7 Exercises for Section 5.1212

5.2 Extended Operators of Relational Algebra213

5.2.1 Duplicate Elimination214

5.2.2 Aggregation Operators214

5.2.3 Grouping215

5.2.4 The Grouping Operator216

5.2.5 Extending the Projection Operator217

5.2.6 The Sorting Operator219

5.2.7 Outerjoins219

5.2.8 Exercises for Section 5.2222

5.3 A Logic for Relations222

5.3.1 Predicates and Atoms223

5.3.2 Arithmetic Atoms223

5.3.3 Datalog Rules and Queries224

5.3.4 Meaning of Datalog Rules225

5.3.5 Extensional and Intensional Predicates228

5.3.6 Datalog Rules Applied to Bags228

5.3.7 Exercises for Section 5.3230

5.4 Relational Algebra and Datalog230

5.4.1 Boolean Operations231

5.4.2 Projection232

5.4.3 Selection232

5.4.4 Product235

5.4.5 Joins235

5.4.6 Simulating Multiple Operations with Datalog236

5.4.7 Comparison Between Datalog and Relational Algebra238

5.4.8 Exercises for Section 5.4238

5.5 Summary of Chapter 5240

5.6 References for Chapter 5241

6 The Database Language SQL243

6.1 Simple Queries in SQL244

6.1.1 Projection in SQL246

6.1.2 Selection in SQL248

6.1.3 Comparison of Strings250

6.1.4 Pattern Matching in SQL250

6.1.5 Dates and Times251

6.1.6 Null Values and Comparisons Involving NULL252

6.1.7 The Truth-Value UNKNOWN253

6.1.8 Ordering the Output255

6.1.9 Exercises for Section 6.1256

6.2 Queries Involving More Than One Relation258

6.2.1 Products and Joins in SQL259

6.2.2 Disambiguating Attributes260

6.2.3 Tuple Variables261

6.2.4 Interpreting Multirelation Queries262

6.2.5 Union,Intersection,and Difference of Queries265

6.2.6 Exercises for Section 6.2267

6.3 Subqueries268

6.3.1 Subqueries that Produce Scalar Values269

6.3.2 Conditions Involving Relations270

6.3.3 Conditions Involving Tuples271

6.3.4 Correlated Subqueries273

6.3.5 Subqueries in FROM Clauses274

6.3.6 SQL Join Expressions275

6.3.7 Natural Joins276

6.3.8 Outerjoins277

6.3.9 Exercises for Section 6.3279

6.4 Full-Relation Operations281

6.4.1 Eliminating Duplicates281

6.4.2 Duplicates in Unions,Intersections,and Differences282

6.4.3 Grouping and Aggregation in SQL283

6.4.4 Aggregation Operators284

6.4.5 Grouping285

6.4.6 Grouping,Aggregation,and Nulls287

6.4.7 HAVING Clauses288

6.4.8 Exercises for Section 6.4289

6.5 Database Modifications291

6.5.1 Insertion291

6.5.2 Deletion292

6.5.3 Updates294

6.5.4 Exercises for Section 6.5295

6.6 Transactions in SQL296

6.6.1 Serializability296

6.6.2 Atomicity298

6.6.3 Transactions299

6.6.4 Read-Only Transactions300

6.6.5 Dirty Reads302

6.6.6 Other Isolation Levels304

6.6.7 Exercises for Section 6.6306

6.7 Summary of Chapter 6307

6.8 References for Chapter 6308

7 Constraints and Triggers311

7.1 Keys and Foreign Keys311

7.1.1 Declaring Foreign-Key Constraints312

7.1.2 Maintaining Referential Integrity313

7.1.3 Deferred Checking of Constraints315

7.1.4 Exercises for Section 7.1318

7.2 Constraints on Attributes and Tuples319

7.2.1 Not-Null Constraints319

7.2.2 Attribute-Based CHECK Constraints320

7.2.3 Tuple-Based CHECK Constraints321

7.2.4 Comparison of Tuple- and Attribute-Based Constraints323

7.2.5 Exercises for Section 7.2323

7.3 Modification of Constraints325

7.3.1 Giving Names to Constraints325

7.3.2 Altering Constraints on Tables326

7.3.3 Exercises for Section 7.3327

7.4 Assertions328

7.4.1 Creating Assertions328

7.4.2 Using Assertions329

7.4.3 Exercises for Section 7.4330

7.5 Triggers332

7.5.1 Triggers in SQL332

7.5.2 The Options for Trigger Design334

7.5.3 Exercises for Section 7.5337

7.6 Summary of Chapter 7339

7.7 References for Chapter 7339

8 Views and Indexes341

8.1 Virtual Views341

8.1.1 Declaring Views341

8.1.2 Querying Views343

8.1.3 Renaming Attributes343

8.1.4 Exercises for Section 8.1344

8.2 Modifying Views344

8.2.1 View Removal345

8.2.2 Updatable Views345

8.2.3 Instead-Of Triggers on Views347

8.2.4 Exercises for Section 8.2349

8.3 Indexes in SQL350

8.3.1 Motivation for Indexes350

8.3.2 Declaring Indexes351

8.3.3 Exercises for Section 8.3352

8.4 Selection of Indexes352

8.4.1 A Simple Cost Model352

8.4.2 Some Useful Indexes353

8.4.3 Calculating the Best Indexes to Create355

8.4.4 Automatic Selection of Indexes to Create357

8.4.5 Exercises for Section 8.4359

8.5 Materialized Views359

8.5.1Maintaining a Materialized View360

8.5.2 Periodic Maintenance of Materialized Views362

8.5.3 Rewriting Queries to Use Materialized Views362

8.5.4 Automatic Creation of Materialized Views364

8.5.5 Exercises for Section 8.5365

8.6 Summary of Chapter 8366

8.7 References for Chapter 8367

9 SQL in a Server Environment369

9.1 The Three-Tier Architecture369

9.1.1 The Web-Server Tier370

9.1.2 The Application Tier371

9.1.3 The Database Tier372

9.2 The SQL Environment372

9.2.1 Environments373

9.2.2 Schemas374

9.2.3 Catalogs375

9.2.4 Clients and Servers in the SQL Environment375

9.2.5 Connections376

9.2.6 Sessions377

9.2.7 Modules378

9.3 The SQL/Host-Language Interface378

9.3.1 The Impedance Mismatch Problem380

9.3.2 Connecting SQL to the Host Language380

9.3.3 The DECLARE Section381

9.3.4 Using Shared Variables382

9.3.5 Single-Row Select Statements383

9.3.6 Cursors383

9.3.7 Modifications by Cursor386

9.3.8 Protecting Against Concurrent Updates387

9.3.9 Dynamic SQL388

9.3.10 Exercises for Section 9.3390

9.4 Stored Procedures391

9.4.1 Creating PSM Functions and Procedures391

9.4.2 Some Simple Statement Forms in PSM392

9.4.3 Branching Statements394

9.4.4 Queries in PSM395

9.4.5 Loops in PSM396

9.4.6 For-Loops398

9.4.7 Exceptions in PSM400

9.4.8 Using PSM Functions and Procedures402

9.4.9 Exercises for Section 9.4402

9.5 Using a Call-Level Interface404

9.5.1 Introduction to SQL/CLI405

9.5.2 Processing Statements407

9.5.3 Fetching Data From a Query Result408

9.5.4 Passing Parameters to Queries410

9.5.5 Exercises for Section 9.5412

9.6 JDBC412

9.6.1 Introduction to JDBC412

9.6.2 Creating Statements in JDBC413

9.6.3 Cursor Operations in JDBC415

9.6.4 Parameter Passing416

9.6.5 Exercises for Section 9.6416

9.7 PHP416

9.7.1 PHP Basics417

9.7.2 Arrays418

9.7.3 The PEAR DB Library419

9.7.4 Creating a Database Connection Using DB419

9.7.5 Executing SQL Statements419

9.7.6 Cursor Operations in PHP420

9.7.7 Dynamic SQL in PHP421

9.7.8 Exercises for Section 9.7422

9.8 Summary of Chapter 9422

9.9 References for Chapter 9423

10 Advanced Topics in Relational Databases425

10.1 Security and User Authorization in SQL425

10.1.1 Privileges426

10.1.2 Creating Privileges427

10.1.3 The Privilege-Checking Process428

10.1.4 Granting Privileges430

10.1.5 Grant Diagrams431

10.1.6 Revoking Privileges433

10.1.7 Exercises for Section 10.1436

10.2 Recursion in SQL437

10.2.1 Defining Recursive Relations in SQL437

10.2.2 Problematic Expressions in Recursive SQL440

10.2.3 Exercises for Section 10.2443

10.3 The Object-Relational Model445

10.3.1 From Relations to Object-Relations445

10.3.2 Nested Relations446

10.3.3 References447

10.3.4 Object-Oriented Versus Object-Relational449

10.3.5 Exercises for Section 10.3450

10.4 User-Defined Types in SQL451

10.4.1 Defining Types in SQL451

10.4.2 Method Declarations in UDT’s452

10.4.3 Method Definitions453

10.4.4 Declaring Relations with a UDT454

10.4.5 References454

10.4.6 Creating Object ID’s for Tables455

10.4.7 Exercises for Section 10.4457

10.5 Operations on Object-Relational Data457

10.5.1 Following References457

10.5.2 Accessing Components of Tuples with a UDT458

10.5.3 Generator and Mutator Functions460

10.5.4 Ordering Relationships on UDT’s461

10.5.5 Exercises for Section 10.5463

10.6 On-Line Analytic Processing464

10.6.1 OLAP and Data Warehouses465

10.6.2 OLAP Applications465

10.6.3 A Multidimensional View of OLAP Data466

10.6.4 Star Schemas467

10.6.5 Slicing and Dicing469

10.6.6 Exercises for Section 10.6472

10.7 Data Cubes473

10.7.1 The Cube Operator473

10.7.2 The Cube Operator in SQL475

10.7.3 Exercises for Section 10.7477

10.8 Summary of Chapter 10478

10.9 References for Chapter 10480

Ⅲ Modeling and Programming for Semistructured Data481

11 The Semistructured-Data Model483

11.1 Semistructured Data483

11.1.1 Motivation for the Semistructured-Data Model483

11.1.2 Semistructured Data Representation484

11.1.3 Information Integration Via Semistructured Data486

11.1.4 Exercises for Section 11.1487

11.2 XML488

11.2.1 Semantic Tags488

11.2.2 XML With and Without a Schema489

11.2.3 Well-Formed XML489

11.2.4 Attributes490

11.2.5 Attributes That Connect Elements491

11.2.6 Namespaces493

11.2.7 XML and Databases493

11.2.8 Exercises for Section 11.2495

11.3 Document Type Definitions495

11.3.1 The Form of a DTD495

11.3.2 Using a DTD499

11.3.3 Attribute Lists499

11.3.4 Identifiers and References500

11.3.5 Exercises for Section 11.3502

11.4 XML Schema502

11.4.1 The Form of an XML Schema502

11.4.2 Elements503

11.4.3 Complex Types504

11.4.4 Attributes506

11.4.5 Restricted Simple Types507

11.4.6 Keys in XML Schema509

11.4.7 Foreign Keys in XML Schema510

11.4.8 Exercises for Section 11.4512

11.5 Summary of Chapter 11514

11.6 References for Chapter 11515

12 Programming Languages for XML517

12.1 XPath517

12.1.1 The XPath Data Model518

12.1.2 Document Nodes519

12.1.3 Path Expressions519

12.1.4 Relative Path Expressions521

12.1.5 Attributes in Path Expressions521

12.1.6 Axes521

12.1.7 Context of Expressions522

12.1.8 Wildcards523

12.1.9 Conditions in Path Expressions523

12.1.10 Exercises for Section 12.1526

12.2 XQuery528

12.2.1 XQuery Basics530

12.2.2 FLWR Expressions530

12.2.3 Replacement of Variables by Their Values534

12.2.4 Joins in XQuery536

12.2.5 XQuery Comparison Operators537

12.2.6 Elimination of Duplicates538

12.2.7 Quantification in XQuery539

12.2.8 Aggregations540

12.2.9 Branching in XQuery Expressions540

12.2.10 Ordering the Result of a Query541

12.2.11 Exercises for Section 12.2543

12.3 Extensible Stylesheet Language544

12.3.1 XSLT Basics544

12.3.2 Templates544

12.3.3 Obtaining Values From XML Data545

12.3.4 Recursive Use of Templates546

12.3.5 Iteration in XSLT549

12.3.6 Conditionals in XSLT551

12.3.7 Exercises for Section 12.3551

12.4 Summary of Chapter 12553

12.5 References for Chapter 12554

Index555

热门推荐