作者Philip M. Lewis、Arthur Bernstein、Michael Kifer均在美國紐約州立大學(xué)Stony Brook分校計算機科學(xué)系任教。
圖書目錄
Preface PART One Introduction 1 Overview of Databases and Transactions 1.1 What Are Databases and Transactions? 1.2 Features of Modern Database and Transaction Processing Systems 1.3 Major Players in the Implementation and Support of Database and Transaction Processing Systems 1.4 Decision Support Systems OLAP and OLTP 1.5 Exercises 2 A Closer Look 2.1 Case Study:A Student Registration System 2.2 Introduction to Relational Databases 2.3 What Makes a Program a Transaction? 2.4 Bibliographic Notes 2.5 Exercises 3 Case Study:Starting the Student Registration System 3.1 Software Engineering Methodology 3.2 Requirements Document 3.3 Requirements Analysis New Issues 3.4 Application Generators 3.5 GUIs and Ojbects 3.6 Events and Procedures 3.7 Accessing Databases and Executing Transactions 3.8 Specifying the Student Registration System 3.9 Specification Document 3.10 Bibliographic Notes 3.11 Exercises PART Two Database Management 4 The Relational Data Model 4.1 What Is a Data Model? 4.2 The Relational Model 4.3 SQL Data Definition Sublanguage 4.4 Bibliographic Notes 4.5 Exercises 5 Database Design I:The Entity-Relationship Model 5.1 Conceptual Modeling with the E-R Approach 5.2 Entities and Entity Types 5.3 Relationships and Relationship Types 5.4 Advanced Features of the E-R Approach 5.5 A Brokerage Firm Example 5.6 Limitations of the E-R Approach 5.7 Case Study:A Design for the Student Registration System 5.8 Bibliographic Notes 5.9 Exercises 6 Query Languages I:Relational Algebra and SQL 6.1 Relational Algebra:Under the Hood of SQL 6.2 The Query Sublanguage of SQL 6.3 Modifying Relation Instances in SQL 6.4 Bibliographic Notes 6.5 Exercises 7 Query Languages II:Relational Calculus and Visual Query Languages 7.1 Tuple Relational Calculus 7.2 Understanding SQL through Tuple Relational Calculus 7.3 Domain Relational Calculus and Visual Query Languages 7.4 Visual Query Languages:QBE and PC Databases 7.5 The Relationship between Relational Algebra and the Calculi 7.6 Recursive Queries in SQL:1999 7.7 Bibliographic Notes 7.8 Exercises 8 Database Design II:Relational Normalization Theory 8.1 The Problem of Redundancy 8.2 Decompositions 8.3 Functional Dependencies 8.4 Properties of Functional Dependencies 8.5 Normal Forms 8.6 Properties of Decompositions 8.7 An Algorithm for BCNF Decomposition 8.8 Synthesis of 3NF Schemas 8.9 The Fourth Normal Form 8.10 Advanced 4NF Design 8.11 Summary of Normal Form Decomposition 8.12 Case Study:Schema Refinement for the Student Registration System 8.13 Tuning Issues:To Decompose or Not to Decompose? 8.14 Bibliographic Notes 8.15 Exercises 9 Triggers and Active Database 9.1 Semantic Issues in Trigger Handling 9.2 Triggers in SQL:1999 9.3 Avoiding a Chain Reaction 9.4 Bibliographic Notes 9.5 Exercises 10 SQL in the Real World 10.1 Executing SQL Statements within an Application Program 10.2 Embedded 10.3 More on Integrity Constraints 10.4 Dynamic SQL 10.5 JDBC and SQLJ 10.6 ODBC* 10.7 Comparison 10.8 Bibliographic Notes 10.9 Exercises 11 Physical Data Organization and Indexing 11.1 Disk Organization 11.2 Heap Files 11.3 Sorted Files 11.4 Indices 11.5 Multilevel Indexing 11.6 Hash Indexing 11.7 Special-Purpose Indices 11.8 Tuning Issues:Choosing Indices for an Application 11.9 Bibliographic Notes 11.10 Exercises 12 Case Study:Completing the Student Registration System 12.1 The Design Document 12.2 Test Plan 12.3 Project Planning 12.4 Coding 12.5 Incremental Development 12.6 Design and Code for the Student Registration System 12.7 Bibliographic Notes 12.8 Exercises 13 The Basics of Query Processing 13.1 External Sorting 13.2 Computing Projection,Union,and Set Difference 13.3 Computing Selection 13.4 Computing Joins 13.5 Multi-Relational Joins 13.6 Computing Aggregate Functions 13.7 Tuning Issues:Impact on Physical Database Design 13.8 Bibliographic Notes 13.9 Exercises 14 An Overview of Query Optimization 14.1 Overview of Query Processing 14.2 Heuristic Optimaization Based on Algebraic Equivalences 14.3 Estimating the Cost of a Query Execution Plan 14.4 Estimating the Size of the Output 14.5 Choosing a Plan 14.6 Tuning Issues:Impact on Query Design 14.7 Bibliographic Notes 14.8 Exercises 15 An Overview of Transaction Processing 15.1 Isolation 15.2 Atomicity and Durability 15.3 Implementing Distributed Transactions 15.4 Bibliographic Notes 15.5 Exercises PART Three Advanced Topics in Databases 16 Object Databases 16.1 Object Databases 16.2 Historical Developments 16.3 The Conceptual Object Data Model 16.4 The ODMG Standard 16.5 Ojbects in SQL:1999 16.6 Common Object Request Broker Architecture 16.7 Summary 16.8 Bibliographic Notes 16.9 Exercises 17 XML and Web Data 17.1 Semistructured Data 17.2 Overview of XML 17.3 XML Schema 17.4 XML Query Languages 17.5 Bibliographic Notes 17.6 Exercises 18 Distributed Databases 18.1 The Application Designer's View of the Database 18.2 Distributing Data among Different Databases 18.3 Query Planning Strategies 18.4 Bibliographic Notes 18.5 Exercises 19 OLAP and Data Mining 19.1 OLAP and Data Warehouses Old and New 19.2 A Multi-Dimensional Model for OLAP Applications 19.3 Aggregation 19.4 ROLAP and MOLAP 19.5 Implementation Issues 19.6 Data Mining 19.7 Populating a Data Warehouse 19.8 Bibliographic Notes 19.9 Exercises PART Four Transaction Processing 20 ACID Properties of Transactions 20.1 Consistency 20.2 Atomicity 20.3 Durabiliyt 20.4 Isolation 20.5 The ACID Properties 20.6 Bibliographic Notes 20.7 Exercises 21 Models of Transactions 21.1 Flat Transactions 21.2 Providing Structure within a Transaction 21.3 Structuring an Application into Multiple Transactions 21.4 Bibliographic Notes 21.5 Exercises 22 Architecture of Transaction Processing Systems 22.1 Transaction Processing in a Centralized System 22.2 Transaction Processing in a Distributed System 22.3 Heterogeneous Systems and the TP Monitor 22.4 The TP Monitor:Communication and Global Atomicity 22.5 Transaction Processing on the Internet 22.6 Bibliographic Notes 22.7 Exercises 23 Implementing Isolation 23.1 Schedules and Their Equivalence 23.2 Recoverability,Cascaded Aborts,and Strictness 23.3 Models for Concurrency Control 23.4 A Strategy for Immediate-Update Pessimistic Concurrency Controls 23.5 Design of an Immediate-Update Pessimistic Concurrency Control 23.6 Objects and Semantic Commutativity* 23.7 Isolation in Structured Transaction Models 23.8 Other Concurrency Controls 23.9 Bibliographic Notes 23.10 Exercises 24 Isolation in Relational Databases 24.1 Locking 24.2 Locking and the SQL Isolation Levels 24.3 Granular Locking:Intention Locks and Index Locks 24.4 Improving System Performance 24.5 Multiversion Concurrency Controls 24.6 Bibliographic Notes 24.7 Exercises 25 Atomicity and Durability 25.1 Crash,Abort,and Media Failure 25.2 Immediate-Update Systems and Write-Ahead Logs 25.3 Recovery in Deferred-Update Systems 25.4 Recovery from Media Failure 25.5 Bibliographic Notes 25.6 Exercises 26 Implementing Distributed Transactions 26.1 Implementing the ACID Properties 26.2 Atomic Termination 26.3 Transfer of Coordination 26.4 Distributed Deadlock 26.5 Global Serialization 26.6 When Global Atomicity Cannot Be Guaranteed 26.7 Replicated Databases 26.8 Distributed Transactions in the Real World 26.9 Bibliographic Notes 26.10 Exercises 27 Security and Internet Commerce 27.1 Authentication,Authorization,and Encryption 27.2 Encryption 27.3 Digital Signatures 27.4 Key Distribution and Authentication 27.5 Authorization 27.6 Authenticated Remote Procedure Call 27.7 Internet Commerce 27.8 Bibliographic Notes 27.9 Exercises Appendix System Issues A.1 Basic System Issues A.2 Multiprogrammed Operating Systems A.3 Threads A.4 Communication References Index