图书介绍
A first course in database systems = 数据库系统基础教程(英文版·第3版)PDF|Epub|txt|kindle电子书版本网盘下载
- Jeffrey D. Ullman ; Jennifer Widom 著
- 出版社: China Machine Press
- ISBN:7111247333
- 出版时间:2008
- 标注页数:565页
- 文件大小:23MB
- 文件页数:208页
- 主题词:
PDF下载
下载说明
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