Index / 001 EN
Database System Concepts cover

Computer Science

Computer Science

Database System Concepts

Abraham Silberschatz; Henry F. Korth; S. Sudarshan

A broad introduction to database design and implementation for computer science students. It covers relational modeling and SQL, query processing, transactions, concurrency, recovery, and distributed data systems. The preface assumes familiarity with basic data structures, computer organization and a high-level programming language.

Prerequisites: Familiarity with basic data structures, computer organization and a high-level programming language; no prior database experience is needed.

Difficulty Level
Intermediate
Academic Level
Undergraduate
database systemsSQLdata modelingtransactionsTextbook

01 / Reading Guide

Reading Guide

Citation

Silberschatz, A., Korth, H. F., & Sudarshan, S. (2020). Database System Concepts (7th ed.). McGraw Hill.

Chapter Summary

The seventh edition has twenty-six printed chapters in nine parts, an appendix with the full university schema, and six further chapters (27–32) that are available only on the authors' website. The printed chapters run to about 1,280 pages. The authors say the book is meant for a first course in databases at the junior or senior undergraduate level or in the first year of graduate study, and that it also contains advanced material for supplements or for an introduction to an advanced course. Most examples come from one running example, a university with departments, instructors, students and courses.

Chapter 1: Introduction

A motivational, historical and explanatory chapter. It sets out the purpose of database systems, the view of data, database languages and design, the database engine, application architecture, users and administrators, and a short history. It also introduces the university example.

Chapters 2–5: Introduction to the Relational Model; Introduction to SQL; Intermediate SQL; Advanced SQL

Part One. Chapter 2 covers the structure of relational databases, schemas, keys, schema diagrams and the relational algebra, which this edition moves into this chapter. Chapters 3 to 5 then teach SQL: basic queries, set operations, nulls, aggregation and nested subqueries (Chapter 3); joins, views, transactions, integrity constraints, data types, indices and authorization (Chapter 4); and access from programming languages, functions and procedures, triggers, recursive queries and advanced aggregation (Chapter 5).

Chapters 6–7: Database Design Using the E-R Model; Relational Database Design

Part Two. Chapter 6 presents the design process and the entity-relationship model, including mapping cardinalities, reduction to relational schemas, extended E-R features and alternative notations (UML class diagrams are among them). Chapter 7 covers functional dependencies, decomposition and normal forms, with algorithms for decomposition and a section on modelling temporal data. The authors say normalization is first introduced intuitively, so that the fuller dependency theory can be omitted without loss.

Chapters 8–9: Complex Data Types; Application Development

Part Three. Chapter 8 handles semi-structured data (XML, JSON, RDF and SPARQL), object orientation, textual data and spatial data. Chapter 9 covers web fundamentals, servlets, alternative server-side frameworks, client-side code and web services, application architectures and performance, and application security and encryption.

Chapters 10–11: Big Data; Data Analytics

Part Four. Chapter 10 treats big-data storage systems, the MapReduce paradigm, Hadoop and Spark, streaming data and graph databases, from the user's point of view. Chapter 11 covers data warehousing, online analytical processing and data mining.

Chapters 12–14: Physical Storage Systems; Data Storage Structures; Indexing

Part Five. Storage media (including flash and RAID), file and record organisation, the buffer, column-oriented and main-memory storage, and indexing with ordered indices, B+-trees, hash and write-optimized structures, bitmap indices and spatial indexing.

Chapters 15–16: Query Processing; Query Optimization

Part Six. Chapter 15 covers measures of query cost and algorithms for selection, sorting and joins. Chapter 16 covers transformation of relational expressions, estimating statistics, choosing evaluation plans and materialized views.

Chapters 17–19: Transactions; Concurrency Control; Recovery System

Part Seven. Chapter 17 introduces transactions, isolation and serializability. Chapter 18 covers lock-based, timestamp-based, validation-based and multiversion protocols and snapshot isolation. Chapter 19 covers logging and recovery, up to ARIES. The preface says Chapter 17 can be used alone by a course that wants only a survey of transactions.

Chapters 20–23: Database-System Architectures; Parallel and Distributed Storage; Parallel and Distributed Query Processing; Parallel and Distributed Transaction Processing

Part Eight, which the preface describes as completely revamped for this edition. It runs from architectures and cloud services, through partitioning, replication and distributed file systems, to parallel and distributed query processing, commit protocols and consensus.

Chapters 24–26: Advanced Indexing Techniques; Advanced Application Development; Blockchain Databases

Part Nine. Chapter 24 returns to indexing (Bloom filters, LSM trees, bitmap and spatial indices, hashing). Chapter 25 covers performance tuning and benchmarks. Chapter 26 is the new chapter on blockchain from a database perspective.

Online Chapters 27–32

Formal relational query languages, advanced relational design, object-based databases, XML, information retrieval and PostgreSQL are provided online.

Key Concepts

Chapters 1–9: Models, Languages and Design

  • Relational model and relational algebra: the data model and the formal operations underlying SQL.
  • SQL: taught over three chapters, from queries to triggers and recursion.
  • E-R modelling and normalization: design from requirements to schema.
  • Semi-structured data (XML, JSON, RDF/SPARQL) and web application development.

Chapters 10–26: Big Data, Internals and Distribution

  • MapReduce, Hadoop and Spark, data warehousing, OLAP.
  • B+-trees and LSM trees: index structures for different workloads.
  • Query optimization: transformation rules and cost estimates.
  • ACID transactions, serializability and snapshot isolation.
  • ARIES recovery.
  • Consensus and commit protocols (two-phase commit, Paxos, Raft) and the CAP theorem.
  • Blockchain databases.

Critical Analysis

Strengths

  • A single running example. The university database recurs throughout, and Appendix A and the website supply the full schema and SQL statements to create and populate it, so that readers can run the book's queries.
  • Intuition over formalism by design. The preface says important results are covered but formal proofs are omitted, with figures and examples used to suggest why a result is true.
  • Modular structure. The preface identifies places where a course can stop early (for instance, the initial normalization coverage in Chapter 7, and Chapter 17 alone for transactions).
  • Free supporting material. The authors' site provides slides, practice-exercise solutions, sample tables, lab exercises and an in-browser SQL tool, along with the six online chapters and an extra PostgreSQL overview.
  • Coverage of current systems. Solid-state disks, column stores, main-memory databases, big-data systems and blockchain all receive their own treatment.

Limitations

  • Size. About 1,280 printed pages in nine parts is far more than one course covers; instructors and self-learners need to select.
  • Theory is deliberately light. Formal proofs are left to research papers and advanced texts. Material the sixth edition printed in detail, such as the relational calculus, object-based databases, XML and information retrieval, is now abbreviated or moved to the online chapters.
  • Technology-specific parts date quickly. Chapter 9 names particular tools (servlets, JSP, Django, Hibernate) and the big-data chapters name Hadoop and Spark, so those parts will need supplementing as tools change.

Where It Fits in the Course

Database System Concepts is a broad core textbook that runs from SQL and design through internals to distributed systems, and it is the natural main text for a first database course. Elmasri and Navathe's Fundamentals of Database Systems is the other comprehensive textbook in the list, with a stronger emphasis on conceptual modelling; the two overlap heavily, and either can serve as the main text.

Hernandez's Database Design for Mere Mortals is a plain-language method for relational design and suits readers who need design before theory. Ramakrishnan and Gehrke's Database Management Systems is a foundational guide in the same territory as this book, and Coronel and Morris's Database Systems is aimed at business-oriented design, implementation and management. Gray and Reuter's Transaction Processing is the deeper reference for the material of Chapters 17 to 19.

How to Use This Book

Prerequisites are modest. The preface assumes familiarity with basic data structures, computer organization and a high-level programming language such as Java, C, C++ or Python.

A practical plan for one semester:

  • Core: Chapter 1; Chapters 2–5 (relational model and SQL); Chapters 6–7 (design).
  • Internals: Chapters 12–14 (storage and indexing), then Chapters 15–16 (query processing), then Chapter 17 and selected parts of Chapters 18–19 (transactions).
  • Optional: Chapters 8–11 for applications and big data; Chapters 20–23 and 24–26 for an advanced course.

The authors strongly recommend a hands-on component. Set up the university schema from the website, work the practice exercises with their posted solutions, and run the lab material on a real database system alongside the reading.