Database Management Systems

by Raghu Ramakrishnan and Johannes Gehrke

[Database Management Systems (3rd Edition)] [WWW Resources] [Material for the Third Edition] [Material for the First Edition] [Material for the Second Edition]

Errata and Clarifications for ``Database Management Systems, First Edition, First Printing''

Chapter 2 (The Relational Model)

  • Page 25, first Update example: S.grade should be S.gpa
  • Page 32, 2nd para, line 3: bid INTEGER DEFAULT 53666 should be replaced by sid CHAR(20) DEFAULT `53666'
  • Page 35, Ex 2.8: Dept should have an extra attribute called dname.

Chapter 4 (File Organizations and Indexes)

  • Page 75, Figure 4.2: Bristow's age should be 29, not 30.

Chapter 5 (Tree-Structured Indexing)

  • Page 98, last line: Should be: ... gives us a total of 2d keys and 2d+1 pointers ... (instead of: ... 2d+1 keys and 2d+2 pointers ...)

Chapter 6 (Hash-Based Indexing)

  • Page 128, last line: Replace M/2 by (M/2)-1.

Chapter 7 (External Sorting)

  • Page 144, 2nd para from bottom, last 4 lines should read: In Figure 7.8, although a tuple (k=2) in the current set has a smaller k value than the largest output tuple (k=5), the current run can be extended because the current set also has a tuple (k=8) that is larger than the largest output tuple.

Chapter 8 (Relational Algebra and Calculus)

  • Page 166, line 6 from bottom: Should read: 1 -> sid1, 2 -> sname1, ... (instead of: 1 -> sid1, 2 -> sname2, ...)
    And line 4 from the bottom should read: Pi_sname1 ... (instead of Pi_sname ...)
  • Page 171, 2nd query from top: Replace with
  • Page 174, 2nd query from bottom: Replace 2nd line by: exists Br1,Br2,D1,D2 ( in Reserves and in Reserves and Br1 <> Br2 )
  • Page 175, line 4 from top: Replace: "...allows the domain variables Ir, Br and D to range over all ..." with: "... allows the domain variables B, BN and C to range over all ..."

Chapter 9 (SQL: The Query Language)

  • Page 195, lines 2 and 9: Replace < by >
  • Page 220, Ex 9.3: Flights should have an extra attribute called price.
  • Page 220, Ex 9.3, part (1): Find the NAMES of all aircraft such that ... (The attributes manufacturer and model originally mentioned in the question do not exist in the schema.)
  • Page 220, Ex 9.3, part (2): ... find the NAME of the aircraft ... (instead of the manufacturer)

Chapter 10 (Security, Views, and SQL)

  • Page 234, line 7: Should be replaced by two GRANT commands:
    GRANT SELECT on Sailors to Michael
    GRANT SELECT on Reserves to Michael
  • Page 252, Ex 10.1, part (4): The Group-by clause should be GROUP BY D.did, D.managerid

Chapter 12 (Evaluation of Relational Operators)

  • Page 281, line 1: Should be SELECT DISTINCT.
  • Page 290, lines 11 and 23: Replace "secondary index" by "index using Alternative (2)".
  • Page 291, line 2: Replace 98,500 by 88,500.
  • Page 300, line 5: Replace Section 12.10 by Section 12.5.2.

Chapter 13 (Relational Query Optimization)

  • Page 351, Problem 13.5: Should say "R tuples are 300 bytes long" (instead of 50).
  • Page 352, Problem 13.8: Supply's first attribute should be sid (instead of did).

Chapter 17 (Concurrency Control)

  • Page 484, Line 6 below figure: Should read: A recoverable schedule is one in which transactions commit only after (AND IF) all transactions whose changes they read commit. (The capitalized phrase is missing.)
  • Page 499, first bullet, last line: Should read "locking all existing pages." (Instead of "locking existing pages that contain records with rating 1.")

Chapter 20 (Deductive and Active Databases)

  • Page 594, para 1: Lines 3 and on should read as follows:
    For example, we can define double to be a function that multiplies every element of the input set by two, and double+ to be double union identity. Thus double( {1,2,5} ) = {2,4,10}, and double+( {1,2,5} ) = {1,2,4,5,10}. The set of all even integers---which happens to be an infinite set!---is a fixpoint of the function double+. Another fixpoint of the function double+ is the set of all integers. The first fixpoint (the set of all even integers) is smaller than the second fixpoint (the set of all integers) because it is contained in the latter.

Reported errors in the exercises are corrected directly in the solutions manual, which is distributed via ftp.

ACKNOWLEDGEMENTS Thanks to the following bug-spotters:
Walter Beck at the University of Northern Iowa (
Jianjun Chen at the University of Wisconsin-Madison (
Arcady Grenader at the University of Wisconsin-Madison (
Scott McElroy at the University of Wisconsin-Madison (
Dave Musicant at the University of Wisconsin-Madison (
Pete Sheill at Wayne State University (

October 25, 1997

Raghu Ramakrishnan []