01 / Reading Guide
Reading Guide
Citation
Ramakrishnan, R., & Gehrke, J. (2002). Database Management Systems (3rd ed.). McGraw-Hill.
Chapter Summary
The third edition has 29 chapters in seven parts, about 1,100 pages in all. The publisher stresses a modular organisation: overview chapters (8, 12 and 16) open the systems parts, and the in-depth chapters within each part can be optional, so the same book can serve an applications-oriented course, a systems-oriented course or a hybrid. In the publisher's chapter map the parts are Foundations (1–5), Applications (6–7), three Systems parts (8–11, 12–15, 16–18), a second Applications part (19–21) and Advanced topics (22–29); the headings below name the subject of each group.
Part I, Chapters 1–5: Foundations
Chapter 1, "Introduction to Database Systems", motivates the DBMS by contrast with plain files (data staging, concurrent access, crash recovery, security). Chapter 2, "Introduction to Database Design", covers conceptual design with the entity–relationship model, including key, participation and ISA constraints. Chapter 3, "The Relational Model", defines relations as instance plus schema and introduces integrity constraints. Chapter 4, "Relational Algebra and Calculus", presents the formal query languages, with algebra as the representation used inside query plans. Chapter 5, "SQL: Queries, Constraints, Triggers", works through SQL on a running example of sailors and reservations, including NULL values, integrity constraints and triggers.
Part II, Chapters 6–7: Applications
Chapter 6, "Database Application Development", covers embedded and dynamic SQL, cursors, JDBC, SQLJ and stored procedures. Chapter 7, "Internet Applications", covers URIs and HTTP, HTML and XML, three-tier architectures, forms, servlets, JavaServer Pages and state in web applications.
Part III, Chapters 8–11: Storage and Indexing
Chapter 8, "Overview of Storage and Indexing", introduces data entries and the classification of indexes as clustered or unclustered, primary or secondary, dense or sparse. Chapter 9, "Storing Data: Disks and Files", covers disk cost and the buffer manager. Chapter 10, "Tree-Structured Indexing", and Chapter 11, "Hash-Based Indexing", cover tree indexes (including bulk loading) and static, extendible and linear hashing.
Part IV, Chapters 12–15: Query Evaluation
Chapter 12, "Overview of Query Evaluation", explains how a query becomes a tree of operators and why optimisation matters. Chapter 13, "External Sorting", covers external merge sort. Chapter 14, "Evaluation of Relational Operators", covers join and other operator algorithms. Chapter 15, "A Typical Query Optimizer", covers plan enumeration (left-deep plans) and cost estimation.
Part V, Chapters 16–18: Transaction Management
Chapter 16, "Overview of Transaction Management", introduces transactions and write-ahead logging. Chapter 17, "Concurrency Control", covers locking, serializability, deadlock handling, multiple-granularity and index locking, and optimistic and timestamp methods. Chapter 18, "Crash Recovery", covers checkpointing and recovery in analysis, redo and undo phases.
Part VI, Chapters 19–21: Database Design and Tuning
Chapter 19, "Schema Refinement and Normal Forms", treats functional dependencies and normalization. Chapter 20, "Physical Database Design and Tuning", covers clustering, tuning of the conceptual schema and denormalization. Chapter 21, "Security and Authorization", covers secrecy, integrity and availability, discretionary and mandatory access control and statistical databases.
Part VII, Chapters 22–29: Advanced Topics
Chapter 22, Parallel and Distributed Databases; Chapter 23, Data Warehousing and Decision Support (with views); Chapter 24, Object-Database Systems; Chapter 25, Deductive Databases; Chapter 26, Data Mining; Chapter 27, Information Retrieval and XML Data Management (Boolean text search, the vector space model, web search engines, semistructured data and XQuery); Chapter 28, Spatial Databases; and Chapter 29, Further Reading.
Key Concepts
Part I: Foundations
- Entity–relationship model and relational model: conceptual design and its mapping onto relations.
- Relational algebra and SQL: the formal and practical query languages.
Parts II–IV: Applications, storage and query evaluation
- Embedded SQL, JDBC and three-tier architecture: connecting programs and web applications to a database.
- Indexes: B-tree style and hash-based structures, and the clustered/unclustered distinction.
- Query plans and optimisation: operator trees, join algorithms and cost estimation.
Parts V–VI: Transactions and design
- Concurrency control and recovery: serializable execution through locking, and write-ahead logging for crash recovery.
- Normal forms and tuning: schema refinement guided by functional dependencies and by workload.
Critical Analysis
Strengths
- Flexible organisation. The publisher's modular parts, with overview chapters opening each, let teachers choose an applications emphasis, a systems emphasis or a hybrid. The overview chapters summarise each systems part before the detail.
- Both applications and internals. The book covers application development (JDBC, XML, three-tier architectures) and the internals of storage, indexing, query evaluation, transactions and recovery within one text.
- Free companion material. The authors' site offers lecture slides for the chapters, solutions to the odd-numbered exercises through Chapter 21, sample tables and scripts for the SQL exercises, and the Minibase teaching DBMS.
- Wide advanced coverage. Part VII adds parallel and distributed databases, warehousing, object databases, deductive databases, data mining, information retrieval, XML and spatial data.
Limitations
- Dated technology stack. The application chapters and supporting material are tied to the early-2000s environment: SQL:1999, JDBC, SQLJ, servlets and JavaServer Pages, Apache Tomcat 4 and the database products of that period. The concepts remain relevant, but the tools do not match current practice.
- Size. About 1,100 pages and 29 chapters are more than a single course can use; the book expects readers or instructors to select.
- Solutions are partial. The free solutions cover odd-numbered exercises up to Chapter 21; complete solutions are restricted to instructors.
Where It Fits in the Course
Ramakrishnan and Gehrke is one of the main general-purpose database textbooks in this course list. Michael Hernandez's Database Design for Mere Mortals and Coronel and Morris's Database Systems: Design, Implementation, and Management are gentler, design-oriented introductions; Silberschatz, Korth and Sudarshan's Database System Concepts and Elmasri and Navathe's Fundamentals of Database Systems are the closest comparable comprehensive texts, covering modelling, SQL, query processing, transactions and design theory. Gray and Reuter's Transaction Processing goes much deeper into the locking, logging and recovery material of Chapters 16–18.
Choose Ramakrishnan and Gehrke if you want a text whose structure lets you follow either an applications path or a systems path, with dedicated parts on storage and indexing, query evaluation and transactions.
How to Use This Book
The book suits undergraduates and early graduate students in computer science who can program and know basic data structures. A systems emphasis assumes comfort with C or C++ programming, according to the publisher's course guide.
A practical plan:
- Core for every reader: Chapters 1–5 (modelling, relational model, SQL), then Chapter 19 on normalization.
- Applications path: Chapters 6 and 7, then Chapter 20 on tuning and Chapter 21 on security.
- Systems path: the overview chapters 8, 12 and 16, then the in-depth chapters of each part in order: indexing (9–11), query evaluation (13–15), concurrency control and recovery (17–18).
- Advanced topics: choose from Chapters 22–28 according to interest.
- Practice: load the supplied sample tables and work the SQL exercises in Chapter 5 on a real system, and check odd-numbered solutions after attempting each problem.
