Preface xv
Chapter 1 Introduction
1.1 Database System Applications
1.2 Database Systems versus File Systems
1.3 View of Data
1.4 Data Models
1.5 Database Languages
1.6 Database Users and Administrators
1.7 Transaction Management
1.8 Database System Structure
1.9 Application Architectures
1.10 History of Database Systems
1.11 Summary
Exercises
Bibliographical Notes
PART 1 DATA MODELS
Chapter 2 Entity-Relationship Model
2.1 Basic Concepts
2.2 Constraints
2.3 Keys
2.4 Design Issues
2.5 Entity-Relationship Diagram
2.6 Weak Entity Sets
2.7 Extended E-R Features
2.8 Design of an E-R Database Schema
2.9 Reduction of an E-R Schema to Tables
2.10 The Unified Modeling Language UML
2.11 Summary
Exercises
Bibliographical Notes
Chapter 3 Relational Model
3.1 Structure of Relational Databases
3.2 The Relational Algebra
3.3 Extended Relational-Algebra Operations
3.4 Modification of the Database
3.5 Views
3.6 The Tuple Relational Calculus
3.7 The Domain Relational Calculus
3.8 Surnmary
Exercises
Bibliographical Notes
PART 2 RELATIONAL DATABASES
Chapter 4 SQL
4.1 Background
4.2 Basic Structure
4.3 Set Operations 1M
4.4 Aggregate Functions
4.5 Null Values
4.6 Nested Subqueries
4.7 Views
4.8 Complex Queries
4.9 Modification of the Database
4.10 Joined Relations
4.11 Data-Definition Language
4.12 Embedded SQL
4.13 Dynamic SQL
4.14 Other SQL Features
4.15 Summary
Exercises
Bibliographical Notes
Chapter 5 Other Relational Languages
5.1 Query-by-Example
5.2 Datalog
5.3 User Interfaces and Tools
5.4 Summary
Exercises
Bibliographical Notes
Chapter 6 Integrity and Security
6.1 Domain Constraints
6.2 Referential Integrity
6.3 Assertions
6.4 Triggers
6.5 Security and Authorization
6.6 Authorization in SQL
6.7 Encryption and Authentication
6.8 Summary
Exercises
Bibliographical Notes
Chapter 7 Relational-Database Design
7.l First Normal Form
7.2 Pitfalls in Relational-Database Design
7.3 Functional Dependencies
7.4 Decomposition
7.5 Desirable Properties of Decomposition
7.6 Boyce--Codd Normal Form
7.7 Third Normal Form
7.8 Fourth Normal Form
7.9 More Normal Forms
7.10 Overall Database Design Process
7.11 Surrunary
Exercises
Bibliographical Notes
PART 3 OBJECT-BASED DATABASES AND XML
Chapter 8 Object-Oriented Databases
8.1 Need for Complex Data Types
8.2 The Object-Oriented Data Model
8.3 Object-Oriented Languages
8.4 Persistent Programming Languages
8.5 Persistent C++ Systems
8.6 Persistent Java Systems
8.7 Summary
Exercises
Bibliographical Notes
Chapter 9 Object-Relational Databases
9.1 Nested Relations
9.2 Complex Types
9.3 Inheritance
9.4 Reference Types
9.5 Querying with Complex Types
9.6 Functions and Procedures
9.7 Obect-Oriented versus Object-Relational
9.8 Summary
Exercises
Bibliographical Notes
Chapter 10 XML
10.1 Background
10.2 Structure of XML Data
10.3 XML Document Schema
10.4 Querying and Transformation
10.5 The App1ication Program Interface
10.6 Storage of XML Data
10.7 XML Applications
10.8 Summary
Exercises
Bibliographical Notes
PART 4 DATA STORAGE AND QUERYING
Chapter 11 Storage and File Structure
11.1 Overview of Physical Storage Media
11.2 Magnetic Disks
1l.3 RAID
11.4 Tertiary Storage
11.5 Storage Access
11.6 File Organization
11.7 Organization of Records in Files
11.8 Data-Dictionary Storage
1l.9 Storage for Object-Oriented Databases
11.10 Summary
Exercises
Bibliographical Notes
Chapter 12 Indexing and Hashing
l2.1 Basic Concepts
12.2 Ordered Indices
12.3 B+-Tree Index Files
12.4 B-Tree Index Files
l2.5 Static Hashing
12.6 Dynamic Hashing
12.7 Comparison of Ordered Indexing and Hashing
12.8 Index Definition in SQL
12.9 Multiple-Key Access
12.10 Summary
Exercises
Bibliographical Notes
Chapter 13 Query Processing
13.l Overview
13.2 Measures of Query Cost
13.3 Selection Operation
13.4 Sorting
13.5 Join Operation
13.6 Other Operations
13.7 Evaluation of Expressions
13.8 Summary
Exercises
Bibliographical Notes
Chapter 14 Query Optimization
l4.1 Overview
14.2 Estimating Statistics of Expression Results
14.3 Transformation of Relational Expressions
14.4 Choice of Evaluation Plans
14.5 Materialized Views
14.6 Summary
Exercises
Bibliographical Notes
PART 5 TRANSACTION MANAGEMENT
Chapter 15 Transactions
15.1 Transaction Concept
15.2 TransactionState
15.3 Implementation of Atomicity and Durability
15.4 Concurrent Executions
15.5 Serializability
15.6 Recoverability
15.7 Implementation of Isolation
15.8 Transaction Definition in SQL
15.9 Testing for Serializability
15.10 Summary
Exercises
Bibliographical Notes
Chapter 16 Concurrency Control
16.1 Lock-Based Protocols
16.2 Timestamp-Based Protocols
16.3 Validation-Based Protocols
16.4 Multiple Granularity
16.5 Multiversion Schemes
l6.6 Deadlock Handling
16.7 Insert and Delete Operations
16.8 Weak Levels of Consistency
16.9 Concurrency in Index Structures
16.10 Summary
Exercises
Bibliographical Notes
Chapter 17 Recovery System
17.1 Failure Classification
17.2 Storage Structure
17.3 Recovery and Atomicity
17.4 Log-Based Recovery
17.5 Shadow Paging
17.6 Recovery with Concurrent Transactions
17.7 Buffer Management
17.8 Failure with Loss of Nonvolatile Storage
17.9 Advanced Recovery Techniques
17.10 Remote Backup Systems
17.11 Summary
Exercises
Bibliographical Notes
PART 6 DATABASE SYSTEM ARCHITECTURE
Chapter 18 Database System Architectures
18.1 Centralized and Client--Server Architectures
18.2 Server System Architectures
18.3 Parallel Systems
18.4 Distributed Systems
18.5 NetWorkTypes
18.6 Summary
Exercises
Bibliographical Notes
Chapter 19 Distributed Databases
l9.1 Homogeneous and Heterogeneous Databases
19.2 Distributed Data Storage
19.3 Distributed Transactions
19.4 Commit Protocols
19.5 Concurrency Control in Distributed Databases
19.6 Asailability
19.7 Distributed Query Processing
19.8 Heterogeneous Distributed Databases
l9.9 Directory Systems
19.10 Summary
Exercises
Bibliographical Notes
Chapter 20 Parallel Databases
20.1 Introduction
20.2 I/O Parallelism
20.3 Interquery Parallelism
20.4 Intraquery Parallelism
20.5 Intraoperation Parallelism
20.6 Interoperation Parallelism
20.7 Design of Parallel Systems
20.8 Summary
Exercises
Bibliographical Notes
PART 7 OTHER TOPICS
Chapter 21 Application Development and Administration
2l.1 Web Interfaces to Databases
21.2 Performance Tuning
21.3 Performance Benchmarks
2l.4 Standardization
2l.5 E-Commerce
21.6 Legacy Systems
2l.7 Summary
Exercises
Bibliographical Notes
Chapter 22 Advanced Querying and Information Retrieval
22.1 Decision-Support Systems
22.2 Data Analysis and OLAP
22.3 Data Mining
22.4 Data Warehousing
22.5 Information-Retrieval Systems
22.6 Summary
Exercises
Bibliographical Notes
Chapter 23 Advanced Data Types and New Applications
23.1 Motivation
23.2 Time in Databases
23.3 Spatial and Geographic Data
23.4 Multimedia Databases
23.5 Mobility and Personal Databases
23.6 Summary
Exercises
Bibliographical Notes
Chapter 24 Advanced Transaction Processing
24.1 Transaction-Processing Monitors
24.2 Transactional Workflows
24.3 Main-Memory Databases
24.4 Real-Time Transaction Systems
24.5 Long-Duration Transactions
24.6 Transaction Management in Multidatabases
24.7 Summary
Exercises
Bibliographical Notes
PART 8 CASE STUDIES
Chapter 25 Oracle
25.1 Database Design and Querying Tools
25.2 SQL Variations and Extensions
25.3 Storage and Indexing
25.4 Query Processing and Optimization
25.5 Concurrency Control and Recovery
25.6 System Architecture
25.7 Replication, Distribution, and External Data
25.8 Database Administration Tools
Bibliographical Notes
Chapter 26 IBM DB2 Universal Database
26.1 Database Design and Querying Tools
26.2 SQL Variations and Extensions
26.3 Storage and Indexing
26.4 Query Processing and Optimization
26.5 Concurrency Control and Recovery
26.6 System Architecture
26.7 Replication, Distribution, and External Data
26.8 Database Administration Tools
26.9 Summary
Bibliographical Notes
Chapter 27 Microsoft SQL Server
27.1 Management, Design, and Querying Tools
27.2 SQL Variations and Extensions
27.3 Storage and Indexing
27.4 Query Processing and Optimization
27.5 Concurrency and Recovery
27.6 System Architecture
27.7 Data Access
27.8 Distribution and Replication
27.9 Full-Text Queries on Relational Data
27.10 Data Warehousing and Analysis Services
27.11 XML and Web Support
27.12 Summary
Bibliographical Notes
PART 9 APPENDICES
Appendix A Network Model (contents online)
A.1 Basic Concepts
A.2 Data-Structure Diagrams
A.3 The DBTG CODASYL Model
A.4 DBTG Data-Retrieval Facility
A.5 DBTG Update Facility
A.6 DBTG Set-Processing Facility
A.7 Mapping of NetWorks to Files
A.8 Summary
Exercises
Bibliographical Notes
Appendix B Hierarchical Model (contents online)
B.1 Basic Concepts
B.2 Tree-Structure Diagrams
B.3 Data-Retrieval Facility
B.4 Update Facility
B.5 Virtual Records
B.6 Mapping of Hierarchies to Files
B.7 The IMS Database System
B.8 Summary
Exercises
Bibliographical Notes
Appendix C Advanced Relational Design (contents online)
C.1 Multivalued Dependencies
C.2 Join Dependencies
C.3 Domain-Key Normal Form
C.4 Summary
Exercises
Bibliographical Notes
Bibliography
Index