Database Management Systems
Third Edition
Raghu ramakrishnan
University ofwisconsin
Madison, Wisconsin, USA
Johannes gehrke
Cornell University
Ithaca, New York, USA
Http://pages.cs.wisc.edu /~ Dbbook/index.html
Http://www.china-pub.com/18315
Liu Jianwen translated and organized (http://blog.csdn.net/keminlau)
Preface
The advantage of doing one's praising for oneself is that one can lay it on so thick and exactly in the right places.
-- Samuel Butler
Database management systems are now an indispensable tool for managing information, and a course on the Principles and Practice of database systems is now an integral part of computer science curricula. this book covers the fundamentals of modern database management systems, in Fig database systems.
Database Management System (DBMS) is an indispensable tool for information management. Therefore, the course of teaching the principles of database systems has become an integral part of the computer science syllabus. This book covers the basic principles of modern DBMS (especially relational database systems.
We have attempted to present the material in a clear, simple style. A quantitative approach is used throughout with your detailed examples. an extensive set of exercises (for which solutions are available online to instructors) accompanies each chapter and reinforces students 'ability to apply the concepts to real problems.
We tried to teach this content in a concise style, so we introduced a "quantitative" approach-using a large number of detailed examples. In addition, in order to enhance students' understanding and application of basic concepts, each chapter carries additional supplementary exercises (teachers can get answers to these exercises online ).
The book can be used with the accompanying software and programming assignments in two distinct kinds of introductory courses:
1. applications emphasis: a course that covers the principles of database systems, and emphasizes how they are used in developing data-intensive applications. two new chapters on Application Development (one on database-backed applications, and one on Java and Internet application ubuntures) have been added to the third edition, and the entire book has been extensively revised and reorganized to support such a course. A running case-study and extensive online materials (e.g ., code for SQL queries and Java applications, online databases and solutions) make it easy to teach a hands-on application-centric course.
2. Systems emphasis: a course that has a strong systems emphasis and assumes that students have good programming skills in C and C ++. In
This case the accompanying minibase software can be used as the basis for projects in which students are asked to implement varous parts of
Relational DBMS. Several Central modules in the Project software (e.g., heap files, buffer manager, B + trees, hash indexes, various join methods)
Are described in sufficient detail in the text to enable students to implement them, given the (C ++) class interfaces.
Many instructors will no doubt teach a course that falls between these two extremes. the restructuring in the third edition offers a very modular organization that facilitates such hybrid courses. the also book contains enough material to support advanced courses in a two-course sequence.
The software and programming exercises in this book can be used for two different courses:
1. Application: This course mainly introduces the application principles of the database system and focuses on how to apply these principles to develop database applications;
2. System: This course mainly describes the construction principles of the database system and requires students to be very familiar with C/C ++. This book comes with a small DBMS example-minibase, which requires students to study it to implement different components of a relational DBMS. The key modules of minibase (such as heap files, buffer managers, B + trees, and hash indexes) are described in detail in the book, and class module interfaces are provided, this allows students to implement one by themselves.
Organization of the Third Edition
The book is organized into six main parts plus a collection of advanced topics, as shown in Figure 0.1. The foundations chapters introduce database systems,
(1) foundations both
(2) Application Development Applications emphasis
(3) Storage and indexing systems emphasis
(4) query evaluation systems emphasis
(5) Transaction Management Systems emphasis
(6) database design and tuning Applications emphasis
(7) additional topics both
Figure 0.1 organization of parts in the Third Edition
ER model and the relational model. they explain how databases are created and used, and cover the basics of database design and querying, including an in-depth treatment of SQL queries. while an upload uctor can omit some of this material at their discretion (e.g ., relational calculus, some sections on the ER model or SQL queries), this material is relevant to every student of database systems, and we recommend that it be covered in as much detail as possible.
This book is mainly divided into seven parts, 7. The basic knowledge section describes the knowledge of database systems, er models, and relational models, and describes how to create and use databases, covering the design and query of databases, and an in-depth study of SQL query statements. The instructor can omit some content (for example, relational calculus, ER model, or some part of the SQL query statement) based on his or her own needs. However, this content is important to every student who learns database knowledge. Therefore, it is recommended that the teacher explain this knowledge as much as possible.
Each of the remaining five main parts has either an application or a systems emphasis. each of the three systems parts has an overview chapter, designed to provide a self-contained treatment, e.g ., chapter 8 is an overview of storage and indexing. the overview chapters can be used to provide stand-alone coverage of the topic, or as the first chapter in a more detailed treatment. thus, in an application-oriented course, Chapter 8 might be the only material covered on file organizations and indexing, whereas in a systems-oriented course it wocould be supplemented by a selection from chapters 9 through 11. the database design and tuning part contains a discussion of performance tuning and designing
Secure Access. These application topics are best covered after giving students a good grasp of database system architecture, and are therefore placed later in the chapter sequence.
In the remaining six main parts, each part may focus on applications or systems. The three parts that focus on the system are described in the section that outlines the content of this section. For example, Chapter 1 of this book provides an overview of the storage and indexing sections. Instructors can teach these sections separately or use them as a part. For example, in an application-oriented course, Chapter 8th may be the only one that involves storage and indexing. However, in a system-focused course, you can pick out one chapter from Chapter 9th to Chapter 11th to supplement the content of Chapter 8th. The Database Design and Performance adjustment section describes how to adjust and design the performance for secure access. These application-oriented parts are best taught after the students master the database system structure, so they are placed in the back of this book.