PREFACE TO THE SECOND EDITION PREFACE TO THE FIRST EDITION 1 1 NTRODUCTION 1.1 DISTRIBUTED DATA PROCESSING l.2 WHAT IS A DISTRIBUTED DATABASE SYSTEM? 1.3 PROMISES OF DDBSs 1.3.1 Transparent Management of Distributed and Replicated Data 1.3.2 Reliability Through Distributed Transactions 1.3.3 Improved Performance 1.3.4 Easier System Expansion 1.4 COMPLICATING FACTORS 1.5 PROBLEM AREAS l.5.1 Distributed Database Design 1.5.2 Distributed Query Processing l.5.3 Distributed Directory Management 1.5.4 Distributed Concurrency Control 1.5.5 Distributed Deadlock Management 1.5.6 Reliability of Distributed DBMS 1.5.7 Operating System Support 1.5.8 Heterogeneous Databases 1.5.9 Relationship among Problems 1.6 BIBLIOGRAPHIC NOTES
2 OVERVIEW OF RELATIONAL DBMS 2.1 RELATIONAL DATABASE CONCEPTS 2.2 NORMALIZATION 2.2.1 Dependency Structures 2.2.2 Normal Forms 2.3 INTEGMTY RULES 2.4 RELATIONAL DATA LANGUAGES 2.4.1 Relational Algebra 2.4.2 Relational Calculus 2.4.3 Interface with Programming Languages 2.5 RELATIONAL DBMS 2.6 BIBLJOCRAPHIC NOTES
3 REVIEW OF COMPUTER NETWORKS 3.1 DATA COMMUNICATION CONCEPTS 3.2 TYPES OF NETWORKS 3.2.1 Topology 3.2.2 Communication Schemes 3.2.3 Scale 3.3 PROTOCOL STANDARDS 3.4 BROADBAND NETWORKS 3.5 WIRELESS NETWORKS 3.6 INTERNET 3.7 CONCLUDING REMARKS 3.8 BIBLIOGRAPHIC NOTES
4 DISTRIBUTED DBMS ARCHITECTURE 4.1 DBMS STANDARDIZATION 4.2 ARCHITECTURAL MODELS FOR DISTRIBUTED DBMSs 4.2.l Autonomy 4.2.2 Distribution 4.2.3 Heterogeneity 4.2.4 Architectural Alternatives 4.3 DISTRIBUTED DBMS ARCHITECTURE 4.3.1 Client/Server Systems 4.3.2 Peer-to-Peer Distributed Systems 4.3.3 MDBS Architecture 4.4 GLOBAL DIRECTORY ISSUES 4.5 CONCLUSION 4.6 BIBLIOGRAPHIC NOTES
5 DISTRIBUTED DATABASE DESIGN 5.l ALTERNATIVE DESIGN STRATEGIES 5.1.1 Top-Down Design Process 5.1.2 Bottom-Up Design Process 5.2 DISTRIBUTION DESIGN ISSUES 5.2.l Reasons for Fragmentation 5.2.2 Fragmentation Alternatives 5.2.3 Degree of Fragmentation 5.2.4 Correctness Rules of Fragmentation 5.2.5 Allocation Alternatives 5.2.6 Information Requirements 5.3 FRAGMENTATION 5.3.1 Horizontal Fragmentation 5.3.2 Vertical Fragmentation 5.3.3 Hybrid Fragmentation 5.4 ALLOCATION 5.4.1 Allocation Problem 5.4.2 Information Requirements 5.4.3 Allocation Model 5.4.4 Solution Methods 5.5 CONCLUSION 5.6 BIBLIOGRAPHIC NOTES 5.7 EXERCISES
6 SEMANTIC DATA CONTROL 6.1 VIEW MANAGEMENT 6.1.1 Views in Centralized DBMSs 6.1.2 Updates through Views 6.1.3 Views in Distributed DBMSs 6.2 DATA SECURITY 6.2.l Centralized Authorization Control 6.2.2 Distributed Authorization Control 6.3 SEMANTIC INTEGRITY CONTROL 6.3.l Celltra1ized Semantic Integrity Control 6.3.2 Distributed Semantic Integrity Control 6.4 CONCLUSION 6.5 BIBLIOGRAPHIC NOTES 6.6 EXERCISES
7 OVERVIEW OF QUERY PROCESSING 7.l QUERY PROCESSING PROBLEM 7.2 OBJECTIVES OF QUERY PROCESSING 7.3 COMPLEXITY OF RELATIONAL ALGEBRA OPERATJONS 7.4 CHARACTERIZATION OF QUERY PROCESSORS 7.4.l Languages 7.4.2 Types of Optimization 7.4.3 Optimization Timing 7.4.4 Statistics 7.4.5 Decision Sites 7.4.6 Exploitation of -the Network Topology 7.4.7 Exploitation of Replicated Fragments 7.4.8 Use of Semijoins 7.5 LAYERS OF QUERY PROCESSING 7.5.l Query Decomposition 7.5.2 Data Localization 7.5.3 Global Query Optimization 7.5.4 Local Query Opti1nization 7.6 CONCLUSION 7.7 BIBLIOGRAPHIC NOTES
8 QUERY DECOMPOSITION AND DATA LOCALIZATION 8.1. QUERY DECOMPOSITION 8.l.1 Normalization 8.1.2 Analysis 8.1.3 Elimination of Redundancy 8.1.4 Rewriting 8.2 LOCALIZATION OF DISTRIBUTED DATA 8.2.1 Reduction for Primary Horizolltal Fragmentation 8.2.2 Reduction for Vertical Fragmentation 8.2.3 Reduction for Derived Fragmentation 8.2.4 Reduction for Hybrid Fragmentation 8.3 CONCLUSION 8.4 BIBLIOGRAPHIC NOTES 8.5 EXERCISES
9 OPTIMIZATION OF DISTRIBUTED QUERIES 9.1 QUERY OPTIMIZATION 9.1.1 Search Space 9.l.2 Search Strategy 9.1.3 Distributed Cost Model 9.2 CENTRALIZED QUERY OPTIMIZATION 9.2.l INGRES Algorithm 9.2.2 System R A1gorithm 9.3 JOIN ORDERING IN FRAGMENT QUERIES 9.3.1 Join Ordering 9.3.2 Semijoin Based Algorithms 9.3.3 Join versus Semi join 9.4 DISTRJBUTED QUERY OPTIMIZATION ALGORITHMS 9.4.1 Distributed INpRES Algorithm 9.4.2 R* Algorithm 9.4.3 SDD-1 Algorithm 9.5 CONCLUSION 9.6 BIBLIOGRAPHIC NOTES 9.7 EXERCISES
10 INTRODUCTION TO TRANSACTION MANAGEMENT 10.1 DEFINITION OF A TRANSACTION 10.1.1 Termination Conditions of Thansactions l0.1.2 Characterization of Transactions 10.1.3 Formalization of the Transaction Concept 10.2 PROPERTIES OF TRANSACTIONS 10.2.1 Atomicity 10.2.2 Consistency l0.2.3 Isolation l0.2.4 Durabi1ity l0.3 TYPES OF TRANSACTIONS l0.3.1 Flat Thansactions l0.3.2 Nested Transactions 10.3.3 Workflows l0.4 ARCHITECTURE REVISITED l0.5 CONCLUSION 10.6 BIBLIOGRAPHIC NOTES
11 DISTRIBUTED CONCURRENCY CONTROL 11.1 SERIALIZABILITY THEORY l1.2 TAXONOMY OF CONCURRENCY CONTROL MECHANISMS 11.3 LOCKING-BASED CONCURRENCY CONTROL ALGORITHMS 11.3.l Centralized 2PL 11.3.2 Primary Copy 2PL 11.3.3 Distributed 2PL 11.4 TIMESTAMP-BASED CONCURRENCY CONTROL ALGORITHMS 11.4.l Basic TO Algorithm 11.4.2 Conservative TO Algorithm 11.4.3 Multiversion TO Algorithm 1l.5 OPTIMISTIC CONCURRENCY CONTROL ALGORITHMS 11.6 DEADLOCK MANAGEMENT 11.6.1 Deadlock Prefelltion l1.6.2 Deadlock Avoidance 11.6.3 Deadlock Detection and Resolution l1.7 "RELAXED" CONCURRENCY CONTROL 11.7.1 Non-Serializable Schedules 11.7.2 Nested Distributed nansactions 11.8 CONCLUSION 11.9 BIBLIOGRAPHIC NOTES 11.10 'EXERCISES
12 DISTRIBUTED DBMS RELIABILITY 12.1 RELIABlLITY CONCEPTS AND MEASURES 12.l.1 System, State, and Failure 12.1.2 Reliability and Availability 12.1.3 Mean Time between Failures/Mean Time to Repair 12.2 FAILURES AND FAULT TOLERANCE IN DISTRIBUTED SYSTEMS 12.2.1 Reasons for Failures l2.2.2 Basic Fault Tolerance Approaches and Techniques 12.3 FAILURES IN DISTRIBUTED DBMS 12.3.l Thansaction Failures 12.3.2 Site (System) Failures 12.3.3 Media Failures 12.3.4 Communication Failures 12.4 LOCAL RELIABILITY PROTOCOLS l2.4.l Architectural Considerations 12.4.2 Recovery Information 12.4.3 Execution of LRM Commands 12.4.4 Checkpoillting l2.4.5 Handling Media Failures 12.5 DISTRIBUTED RELIABILITY PROTOCOLS 12.5.1 Components of Distributed Reliability Protocols 12.5.2 Two-Phase Commit Protocol 12.5.3 Variations of 2PC 12.6 DEALING WITH SITE FAILURES 12.6.1 Termination and Recovery Protocols for 2PC 12.6.2 Three-Phase Commit Protocol 12.7 NETWORK PARTITIONING 12.7.1 Centralized Protocols 12.7.2 Voting-based Protocols 12.7.3 Replication and Replica Contro1 Protocols l2.7.4 Strict Replica Control Protocols l2.7.5 Lazy Replication Protocols 12.8 ARCHITECTURAL CONSIDERATIONS 12.9 CONCLUSION 12.10 BIBLIOGRAPHIC NOTES 12.11 EXERCISES
13 MRALLEL DATABASE SYSTEMS 13.1 DATABASE SERVERS 13.1.1 Database Server Approach 13.1.2 Database Servers and Distributed Databases 13.2 PARALLEL ARCHITECTURES 13.2.l Objectives 13.2.2 Functional Aspects 13.2.3 Parallel System Architectures 13.3 PARALLEL DBMS TECHNIQUES 13.3.l Data Placement 13.3.2 Query Parallelism 13.3.3 Para1lel Data Processing 13.3.4 Parallel Query Optimization 13.4 PARALLEL EXECUTION PROBLEMS l3.4.1 Initialization l3.4.2 Illterferences and Convoy Effect 13.4.3 Load Balancing 13.5 PARALLEL EXECUTION FOR HIERARCHlCAL ARCHITECTURE 13.5.1 Problem Formulation 13.5.2 Basic Concepts 13.5.3 Load Balancing Strategy 13.5.4 Performance Evaluation l3.6 CONCLUSION 13.7 BIBLIOGRAPHIC NOTES 13.8 EXERCISES
14 DISTmBUTED OBJECT DATABASE MANAGEMENT SYSTEMS 14.1 FUNDAMENTAL OBJECT CONCEPTS AND MODELS 14.l.1 Object 14.1.2 Abstract Data Types 14.l.3 Composition (Aggregation) 14.1.4 Class 14.l.5 Collection l4.1.6 Subtyping and Inheritance l4.2 OBJECT DISTRIBUTION DESIGN l4.2.1 Horizontal Class Partitioning 14.2.2 Vertical Class Partitioning 14.2.3 Path Partitioning l4.2.4 Class Partitioning Algorithms 14.2.5 Allocation 14.2.6 Replication l4.3 ARCHITECTURAL ISSUES 14.3.1 Alternative Client/Server Architectures 14.3.2 Cache Consistency 14.4 OBJECT MANAGEMENT l4.4.1 Object Identifier Management 14.4.2 Pointer Swizzling l4.4.3 Object Migration 14.5 DISTRIBUTED OBJECT STORAGE l4.6 OBJECT QUERY PROCESSING 14.6.l Object Query Processor Architectures 14.6.2 Query Processing Issues l4.6.3 Query Execution l4.7 TRANSACTION MANAGEMENT l4.7.1 Correctness Criteria l4.7.2 Thansaction Models and Object Structures 14.7.3 Thansactions Managemeflt in Object DBMSs l4.7.4 ThansaCtions as Objects 14.8 CONCLUSION l4.9 BIBLIOGRAPHIC NOTES 14.l0 EXERCISES
15 DATABASE INTEROPERABILITY 15.1 DATABASE INTEGRATION 15.1.1 Schema Trans1ation 15.1.2 Schema Integration 15.2 QUERY PROCESSING 15.2.1 Query Processing Layers in Distributed Multi--DBMSs 15.2.2 Query Optimization Issues 15.3 TRANSACTION MANAGEMENT 15.3.1 Thansaction and Computation Model 15.3.2 Multidatabase Concurrency Control 15.3.3 Multidatabase Recovery 15.4 OBJECT ORIENTATION AND INTEROPERABILITY 15.4.1 Object Management Architecture 15.4.2 CORBA and Database Interoperability 15.4.3 Distributed Component Object Model 15.4.4 COM/OLE and Database Interoperability 15.5 CONCLUSION l5.6 BIBLIOGRAPHIC NOTES 15.7 EXERCISES
16 CURRENT ISSUES 16.1 DATA DELIVERY ALTERNATIVES 16.2 DATA WAREHOUSING 16.2.l Architectures 16.2.2 OLAP Data Model 16.2.3 OLAP Servers 16.2.4 Research Issues l6.3 WORLD WIDE WEB 16.3.1 Architecture and Protocols 16.3.2 Database Access l6.3.3 Semistructured Data 16.3.4 Architectures for Information Integration 16.3.5 Research Projects and Open Issues 16.4 PUSH-BASED TECHNOLOGIES 16.4.1 Delivery Schedule Generation 16.4.2 Client Cache Management 16.4.3 Propagating Updates 16.5 MOBILE DATABASES 16.5.1 Directory Management 16.5.2 Caching 16.5.3 Broadcast Data 16.5.4 Query Processing and Optimization 16.5.5 Thansaction Management 16.6 BIBLIOGRAPHIC NOTES