A First Course in Database Systems: Errata for 1st and 2nd Printings of the First Edition
List of Errata for the First Printing only.

In addition: the following were not corrected in time for the second printing, but were corrected in the third printing:

p. 20, l. -15: "goes" -> "go" (Thanks to John Fry).

p. 20, l. -9 and -6: "database implementation" should be "database system implementation" (Thanks to Prakash Ramanan).

p. 39, Fig. 2.7, l. 3: int -> integer (Thanks to Min-Sig Yun).

p. 40, Ex. 2.1.10, l. 2: "relation" -> "relationship."

p. 41, l. -7: Italicize "Owns" (Thanks to John Fry).

p. 42, 2 lines below box: "exactly" -> "at most" (Thanks to Prakash Ramanan).

p. 55, 3rd line from bottom of Fig. 2.19: Accounts -> Account (Thanks to Antti Hjelt).

p. 69, l. -7: "attributes" -> "entity sets" (Thanks to Prakash Ramanan).

p. 70, l. -3: "have" -> "has" (Thanks to Prakash Ramanan).

p. 82, l. 12: "Description" -> "Definition" (Thanks to Sang Ho Lee).

p. 83, l. -3: "1966" -> "1976" (Thanks to John Fry).

p. 86, Fig. 3.2, l. 5:

     5) attribute enum Film {color, blackAndWhite} filmType;
(Thanks to Kristian Widjaja).

p. 87, l. 19: period after "Fig" (same problem on p. 98 l. 4, p. 105 l. 2, and p. 106 l. -15) (Thanks to Sang Ho Lee).

p. 89, l. -9: "need" -> "needs".

p. 104, 7th line past Fig. 3.14: "Section 3.2.2" -> "Section 3.2.5" (Thanks to Bert Porter).

p. 104, first line of item 2: remove triangular brackets from Set (Thanks to Sang Ho Lee).

p. 104, l. -11: delete hyphen in "entity-set" (Thanks to Sang Ho Lee).

p. 108, l. 13: "Studio" -> "Studios" (Thanks to Sang Ho Lee).

p. 108, l. -2: "intity" -> "entity" (Thanks to Marc Abramowitz).

p. 117, Fig. 3.24, l. 2, 7: int -> integer (Thanks to Min-Sig Yun).

p. 117, Fig. 3.24, l. 10: unique is a legitimate way to declare a key in ODL as well as SQL. However, we never defined this keyword, so a better way to declare name a key would be to put (key name) before the opening brace on l. 9 (Thanks to Richard Scherl).

p. 124, last line: "relations" -> "relationships".

p. 126, Exercise 3.5.3, l. 1: "four" -> "three" (Thanks to Jarl Friis).

p. 139, l. 2: delete one "the" (Thanks to Sang Ho Lee).

p. 157, l. -5: delete "is" (Thanks to Sang Ho Lee).

p. 159, l. -6: "do not obey the splitting part of the splitting/combining rule."

p. 160, l. -10: "B" -> "B's" (Thanks to John Fry).

p. 163, l. 5 of Sect. 3.8.6 and p. 164, title to Fig. 3.41: "BNCF" -> "BCNF" (Thanks to Jarl Friis).

p. 167, l. -7: comma at end of line (Thanks to Sang Ho Lee).

p. 185, l. 20: S -> B (Thanks to Torben Zahle).

p. 246, just above Example 5.3: "without any intervening punctuation."

p. 262, Exercise 5.2.2(a): no question mark at end.

p. 269, Exercise 5.3.1(f), l. 1: "maker of the printer" -> "maker(s) of the PC(s)" (Thanks to Jarl Friis).

p. 284, l. -6: "manufactuer" -> "manufacturer" (Thanks to John Fry).

p. 288, l. 7: DROP TABLE R;.

p. 291, l. -17, -16: "variables" -> "attributes" (Thanks to Prakash Ramanan).

p. 300, line below 5.8.5: "is" -> "are".

p. 315, l. 3 of footnote: "Fig. 5.52" -> "Fig. 5.22" (Thanks to Joseph H. Adamski).

p. 326, top half: The SQL standards site has been moved. The new host is ftp://jerry.ece.umassd.edu/isowg3, with mirror sites at ftp://math0.math.ecu.edu/isowg3 and ftp://tiu.ac.jp/iso/wg3. The major SQL2 documents are still found in subdirectory dbl/BASEdocs, but the new path for the SQL2 syntax is dbl/BASEdocs/public/sql-92.bnf (Thanks to Phillipe Bonnet).

p. 335, Exercise 6.2.1(d), l. 1: delete one "also" (Thanks to Min-Sig Yun).

p. 345, l. -10: The semicolon needs to be moved to the end of line -9 (Thanks to Sang Ho Lee).

p. 353, l. 10: "column" -> "attribute" (twice) (Thanks to Prakash Ramanan).

p. 353, l. -11: "rule is to foil any attempt to lower the net worth of a movie executive. The" (Thanks to Prakash Ramanan).

p. 362, Fig. 7.1: The output of the compiler is object code, not a host-language program (Thanks to Prakash Ramanan).

p. 366, l. 5: add "directly" after "embeddable".

p. 371, Sect. 7.1.9, 2nd sentence: "To specify an order, we include in the definition of the relation over which the cursor ranges the keywords...".

p. 409, l. -1: "whence" -> "whom" (Thanks to John Fry).

p. 424, l. 5: addr should be address (twice) (Thanks to Gyorgy Kovacs).

p. 424, l. -11: Add DISTINCT after SELECT. (Thanks to Gyorgy Kovacs).

p. 424, l. -6 through -4: Actually, parenthesized subqueries are allowed in the FROM clause according to the SQL2 standard.

p. 434, l. 9: "assign any" -> "assign to any" (Thanks to Sang Ho Lee).

p. 443, l. 12 and p. 447, l. 14: remove comma after "AddressType (Thanks to John Fry).

p. 455, Fig. 8.19, numbered line (10):

    10)      RETURN (:a1.city<:a2.city OR
               :a1.city = :a2.city AND :a1.street<:a2.street);
(Thanks to Gyorgy Kovacs).

p. 455, Fig. 8.19, numbered line (13): "=" -> ":=" (Thanks to Gyorgy Kovacs).


Errors in the Solutions have recently been pointed out by: Ed Burns, Phillip Koza, Richard Scherl, Pearl D'Souza, and Kristian Widjaja.

And thanks to the following people who pointed out errors in the first printing: Brad Adelberg, Gleb Ashimov, David Brokaw, Per Christensen, Arturo Crespo, Gerard Guillemette, Yeong-Ping Koh, Arun Marathe, Le-Wei Mo, Hankyung Na, Tim Roughgarten, Sandy Zhang.