A First Course in Database Systems: Errata for First Printing of the First Edition

Note: The current printing is the third. All errata on this page were fixed for the second and third printings. For errata that have been found in the third printing see The Current Errata Sheet. If you have the second printing, also see The Errata Sheet for Printings 1 and 2.


p. 31, l. 5: "<Stars>" -> "<Star>" (Thanks to Hankyung Na).

p. 36, l. -5: "... F_n T_n" -> "... T_n F_n" (Thanks to Arun Marathe).

p. 47, l. -3: delete second "the" (Thanks to Gerard Guillemette).

p. 53, l. 20: "relationship contracts" -> "relationship Contracts"; i.e., the "contracts" referred to is the relationship in Fig. 2.12 (Thanks to Arun Marathe).

p. 66, l. 16: "repalce" -> "replace" (Thanks to Gerard Guillemette).

p. 72, l. 7 of item 1: "Crew" -> "Crews" (Thanks to Arun Marathe).

p. 75, l. -12: "Crew" -> "Crews".

p. 83, l. 11: "parent to child" -> "child to parent" (Thanks to Arun Marathe).

p. 83 l. 1 of Sect. 2.9: "]" missing at end (Thanks to Gerard Guillemette).

p. 86, l. -13: "Fig. 2.4" -> "Fig. 3.2" (Thanks to Arun Marathe).

p. 97, Fig. 3.11, l. 5: Should be:

     attribute enum Film {color, blackAndWhite} filmType;
(Thanks to Per Christensen.)

p. 104, third line past Fig. 3.14: "Two" -> "Three" (Thanks to Brad Adelberg).

p. 121, l. 5: "key for a relation R" (Thanks to Per Christensen).

p. 128, l. 2: "i = 1, 2,...,m" (Thanks to Per Christensen).

p. 137, l. -4: comma after BCNF (Thanks to Arun Marathe).

p. 138, l. -12: "95" -> "104" (Thanks to Arun Marathe).

p. 144, Example 3.37: This example introduces the name MovieStudio for the relation. Also, capital M in movieStudio on l. -11 (Thanks to Arun Marathe).

p. 146, l. -6: Replace the sentence starting on this line by "Thus, we must decompose again, using this dependency." (Thanks to Arun Marathe).

p. 148, l. 17: "AD->C" should be "AC->C" (Thanks to Arun Marathe).

p. 152, l. 17: delete comma between theater and title (Thanks to Arun Marathe).

p. 159: For the transitivity rule to hold for multivalued dependencies, we need to know that the B's are disjoint from the C's.

p. 170, l. 3: "attribute" -> "attributes" (Thanks to Arun Marathe).

p. 170, l. 22: "forms" -> "form" (Thanks to Arun Marathe).

p. 184, Example 4.11: on l. 8 of this example, Movie1 and Movie2 are interchanged. Also, on line 17 of Example 4.11 "set of attibutes title and year" -> "attribute starName". Finally, in the displayed expression just below that, projection onto title,year should be replaced by projection onto starName (Thanks to Arun Marathe).

p. 185, l. 4: "renames operations" -> "renames relations" (Thanks to Per Christensen).

p. 195, l. 13: "more than one" -> "one or more' (Thanks to Per Christensen).

p. 197, l. -17: delete "of" before "relation" (Thanks to Per Christensen).

p. 198, l. -7: delete "safe" (Thanks to Arun Marathe).

p. 199, l. -10: delete one of the "of"'s (Thanks to Arun Marathe).

p. 200, l. 9: quotes before the right parenthesis (Thanks to Arun Marathe).

p. 200, l. 18; "extensional predicates or their relations." (Thanks to Arun Marathe).

p. 201, l. -10: The sentence beginning on this line should read: "The arguments in each head are exactly the same as in the subgoals of its rule." (Thanks to Arun Marathe).

p. 204, lines 10, 17: "conjunctive" -> "disjunctive" (Thanks to Arun Marathe).

p. 206, lines -16, -9: "conjunctive" -> "disjunctive".

p. 206, lines -4, -3: right parentheses before the left arrows (Thanks to Arun Marathe).

p. 210, l. -9: "any finite number" -> "a finite sequence" (Thanks to Arun Marathe).

p. 215, l. -5: The second (DEN, CHI) should be (DEN, DAL) (Thanks to Arun Marathe).

p. 216, l. -2: "+" -> "-" in the comparison between t1 and t2 (Thanks to Arun Marathe).

p. 240, l -11: "fixedpoints" -> "fixedpoint" (Thanks to Arun Marathe).

p. 241, ref. 1, l. 1: period after "A" (Thanks to Arun Marathe).

p. 242, ref. 10, l. 1: period after "A" (Thanks to Arun Marathe).

p. 248, l. 6: "Boolean" is capitalized (Thanks to Per Christensen).

p. 249, l. -15: bargain needs quotes around it (Thanks to Per Christensen).

p. 250, 254, 255, 256, 259, 264, 268, and 276: there are SQL statements without an ending semicolon (Thanks to Per Christensen).

p. 266, l. 7: "in above" -> "in Section 5.3.2" (Thanks to Per Christensen).

p. 266, l. -4: "is" -> "are" (Thanks to Per Christensen).

p. 278, l. -3: "class ot not" -> "class or not" (Thanks to Brad Adelberg).

p. 279, l. -3: "is" -> "in" (Thanks to Per Christensen).

p. 281, 5 lines below Fig. 5.12: Studios -> Studio (Thanks to Per Christensen).

p. 282, l. 13: "supposed" -> "suppose" (Thanks to Per Christensen).

p. 284, Exercise 5.6.1(b), l. 2: "8x CD" -> "11-inch screen". Also, we must assume the manufacturer of the laptop is the same as the manufacturer of the PC (Thanks to Brad Adelberg).

p. 291, l. -14: "values a value" -> "values" (Thanks to Arun Marathe).

p. 297, l. -5: delete one of the "not"'s (Thanks to Brad Adelberg).

p. 300, l. 3 below box: "get good" -> "get a good" (Thanks to David Brokaw).

p. 307, l. 10: "Untuitively" -> "Intuitively" (Thanks to Gerard Guillemette).

p. 307, l. 17: quote marks needed at the end of the sentence (Thanks to Arun Marathe).

p. 314, l. -3: "Flights" -> "Reaches" (Thanks to Arun Marathe).

p. 318, l. 22: "two" -> "of" (Thanks to Arun Marathe).

p. 322, lower right entry in Fig. 5.27: "148" -> "138" (Thanks to Arun Marathe).

p. 335, Exercise 6.2.1(c): "deletion" -> "deletion or update".

p. 341 Exercise 6.3.2(e): This exercise cannot really be done as a value-based check.

p. 341, l. -3: delete R (Thanks to Arun Marathe).

p. 349, l. 8 and p. 350, l. 11: delete backslash (Thanks to Arun Marathe).

p. 355, 2 lines above Example 6.17: "new" -> "old" (Thanks to Arun Marathe).

p. 357, l. (6) of Fig. 6.9: "DELETE" -> "INSERT". Also, 7 lines below Fig. 6.9: "deleted" -> "inserted" (Thanks to Arun Marathe).

p. 359, l. -8: "Value-Based" -> "Attribute-Based".

p. 366, l. 2: Delete second "of" (Thanks to Gerard Guillemette).

p. 372, line (2) of Fig. 7.6: "studio" -> "studioName" (Thanks to Arun Marathe).

p. 372, l. -16: delete "are" (Thanks to Arun Marathe).

p. 373, l. 6: eliminate double period.

p. 373, l. 9-10: "should we wish our cursor to be insensitive." -> "that our insensitive cursor uses." (Thanks to Arun Marathe).

p. 374, l. 10: "forward" -> "backward" (Thanks to Arun Marathe).

p. 411, l. 11: "extents ODL" -> "extents in ODL" (Thanks to Per Christensen).

p. 412, l. 14: "benefit some" -> "benefit from some" (Thanks to Per Christensen).

p. 418, l. 16: The attribute name needs to be given the type string

p. 422, l. 7: quotes missing after Movies m (Thanks to Arun Marathe).

p. 424, l. -13: "first line in Example 8.7" -> "first line in the query of Example 8.7" (Thanks to Arun Marathe).

p. 425, l. -12: "Dinsey" -> "Disney" (Thanks to Per Christensen).

p. 429, Fig. 8.7, last line: m.studio -> m.ownedBy.name. A similar mistake occurs on p. 430, l. 4 and l. 6 and on p. 431, l. 4 of Fig. 8.8 (Thanks to Le-Wei Mo).

p. 434, 2nd line of Example 8.16: add DISTINCT after SELECT (Thanks to Per Christensen).

p. 450, l. -16: "not <" -> "not <=" (Thanks to Arun Marathe).

p. 451 l. -5: delete one of the "then"'s (Thanks to Arun Marathe).

p. 455, l. 1: right parenthesis needed at end of line (1).

p. 461, l. 4: capitalize "introducing" (Thanks to Arun Marathe).


For catching errors in the web-published solutions: Gleb Ashimov, Arturo Crespo, Yeong-Ping Koh, Tim Roughgarden, Sandy Zhang.

Note: Errors in solutions to exercises are not listed, since they are changed as soon as they are found. However, we shall indicate changes to solutions pages by placing on that page the date of the most recent modification.