VI. Database System Architecture 679 Introduction 18. Database System Architecture 19. Distributed Databases 20. Parallel Databases 679 680 705 750 VII. Other Topics 773 Introduction 21. Application Development and Administration 22. Advanced Querying and Information Retrieval 23. Advanced Data Types and New Applications 24. Advanced Transaction Processing 773 774 810 856 884 iv
Silberschatz−Korth−Sudarshan: Database System Concepts, Fourth Edition Front Matter Preface 1 © The McGraw−Hill Companies, 2001 Preface Database management has evolved from a specialized computer application to a central component of a modern computing environment, and, as a result, knowledge about database systems has become an essential part of an education in computer science. In this text, we present the fundamental concepts of database management. These concepts include aspects of database design, database languages, and database-system implementation. This text is intended for a ﬁrst course in databases at the junior or senior undergraduate, or ﬁrst-year graduate, level. In addition to basic material for a ﬁrst course, the text contains advanced material that can be used for course supplements, or as introductory material for an advanced course. We assume only a familiarity with basic data structures, computer organization, and a high-level programming language such as Java, C, or Pascal. We present concepts as intuitive descriptions, many of which are based on our running example of a bank enterprise. Important theoretical results are covered, but formal proofs are omitted. The bibliographical notes contain pointers to research papers in which results were ﬁrst presented and proved, as well as references to material for further reading. In place of proofs, ﬁgures and examples are used to suggest why a result is true. The fundamental concepts and algorithms covered in the book are often based on those used in existing commercial or experimental database systems. Our aim is to present these concepts and algorithms in a general setting that is not tied to one particular database system. Details of particular commercial database systems are discussed in Part 8, “Case Studies.” In this fourth edition of Database System Concepts, we have retained the overall style of the ﬁrst three editions, while addressing the evolution of database management. Several new chapters have been added to cover new technologies. Every chapter has been edited, and most have been modiﬁed extensively. We shall describe the changes in detail shortly. xv
2 Silberschatz−Korth−Sudarshan: Database System Concepts, Fourth Edition xvi Front Matter Preface © The McGraw−Hill Companies, 2001 Preface Organization The text is organized in eight major parts, plus three appendices: • Overview (Chapter 1). Chapter 1 provides a general overview of the nature and purpose of database systems. We explain how the concept of a database system has developed, what the common features of database systems are, what a database system does for the user, and how a database system interfaces with operating systems. We also introduce an example database application: a banking enterprise consisting of multiple bank branches. This example is used as a running example throughout the book. This chapter is motivational, historical, and explanatory in nature. • Data models (Chapters 2 and 3). Chapter 2 presents the entity-relationship model. This model provides a high-level view of the issues in database design, and of the problems that we encounter in capturing the semantics of realistic applications within the constraints of a data model. Chapter 3 focuses on the relational data model, covering the relevant relational algebra and relational calculus. • Relational databases (Chapters 4 through 7). Chapter 4 focuses on the most inﬂuential of the user-oriented relational languages: SQL. Chapter 5 covers two other relational languages, QBE and Datalog. These two chapters describe data manipulation: queries, updates, insertions, and deletions. Algorithms and design issues are deferred to later chapters. Thus, these chapters are suitable for introductory courses or those individuals who want to learn the basics of database systems, without getting into the details of the internal algorithms and structure. Chapter 6 presents constraints from the standpoint of database integrity and security; Chapter 7 shows how constraints can be used in the design of a relational database. Referential integrity; mechanisms for integrity maintenance, such as triggers and assertions; and authorization mechanisms are presented in Chapter 6. The theme of this chapter is the protection of the database from accidental and intentional damage. Chapter 7 introduces the theory of relational database design. The theory of functional dependencies and normalization is covered, with emphasis on the motivation and intuitive understanding of each normal form. The overall process of database design is also described in detail. • Object-based databases and XML (Chapters 8 through 10). Chapter 8 covers object-oriented databases. It introduces the concepts of object-oriented programming, and shows how these concepts form the basis for a data model. No prior knowledge of object-oriented languages is assumed. Chapter 9 covers object-relational databases, and shows how the SQL:1999 standard extends the relational data model to include object-oriented features, such as inheritance, complex types, and object identity.
Silberschatz−Korth−Sudarshan: Database System Concepts, Fourth Edition Front Matter Preface 3 © The McGraw−Hill Companies, 2001 Preface xvii Chapter 10 covers the XML standard for data representation, which is seeing increasing use in data communication and in the storage of complex data types. The chapter also describes query languages for XML. • Data storage and querying (Chapters 11 through 14). Chapter 11 deals with disk, ﬁle, and ﬁle-system structure, and with the mapping of relational and object data to a ﬁle system. A variety of data-access techniques are presented in Chapter 12, including hashing, B+ -tree indices, and grid ﬁle indices. Chapters 13 and 14 address query-evaluation algorithms, and query optimization based on equivalence-preserving query transformations. These chapters provide an understanding of the internals of the storage and retrieval components of a database. • Transaction management (Chapters 15 through 17). Chapter 15 focuses on the fundamentals of a transaction-processing system, including transaction atomicity, consistency, isolation, and durability, as well as the notion of serializability. Chapter 16 focuses on concurrency control and presents several techniques for ensuring serializability, including locking, timestamping, and optimistic (validation) techniques. The chapter also covers deadlock issues. Chapter 17 covers the primary techniques for ensuring correct transaction execution despite system crashes and disk failures. These techniques include logs, shadow pages, checkpoints, and database dumps. • Database system architecture (Chapters 18 through 20). Chapter 18 covers computer-system architecture, and describes the inﬂuence of the underlying computer system on the database system. We discuss centralized systems, client – server systems, parallel and distributed architectures, and network types in this chapter. Chapter 19 covers distributed database systems, revisiting the issues of database design, transaction management, and query evaluation and optimization, in the context of distributed databases. The chapter also covers issues of system availability during failures and describes the LDAP directory system. Chapter 20, on parallel databases explores a variety of parallelization techniques, including I/O parallelism, interquery and intraquery parallelism, and interoperation and intraoperation parallelism. The chapter also describes parallel-system design. • Other topics (Chapters 21 through 24). Chapter 21 covers database application development and administration. Topics include database interfaces, particularly Web interfaces, performance tuning, performance benchmarks, standardization, and database issues in e-commerce. Chapter 22 covers querying techniques, including decision support systems, and information retrieval. Topics covered in the area of decision support include online analytical processing (OLAP) techniques, SQL:1999 support for OLAP, data mining, and data warehousing. The chapter also describes information retrieval techniques for