Errata for Database Systems: The Complete Book

    These errata appear in the first printings of both Database Systems: The Complete Book and A First Course in Database Systems (2nd Edition). Additional errata for the second printing of DS:CB and for the first printing of FCDB/2e appear in The Second Errata Sheet. Also see Errata for the Third Printing.

    p. 2, l. 1: "undersirable" -> "undesirable" (Thanks to Ed Swierk). [5/2/02]

    p. 4, footnote 2: The year of Codd's article is 1970 (Thanks to Anatoly Varakin). [5/2/02]

    p. 7, l. -17: "client/server" -> "client-server" (Thanks to Ed Swierk and Bruce Baker). [5/2/02]

    p. 21, ref. 4: Here is a better URL: http://www.acm.org/sigmod/record/issues/9812/asilomar.html (Thanks to Anatoly Varakin). [5/2/02]

    p. 37, l. -3, -1: For consistency, the name of the entity set should be People rather than Person (Thanks to Anatoly Varakin). [5/2/02]

    p. 39, l. 15: "Stars-in" should be in italics (Thanks to Anatoly Varakin). [5/2/02]

    p. 45, l. 2: Right parenthesis needed after Presidents. [5/2/02]

    p. 48, middle: An additional bullet should make clear that every entity set must have a key (Thanks to Seth Goldberg). [5/2/02]

    p. 53, l. 22: star should be Stars-in (Thanks to Anatoly Varakin). [5/2/02]

    p. 56, Fig. 2.22: The two entity sets on the lower right are Studios and Movies, not Stars (Thanks to Miguel Licona and Anatoly Varakin). [5/2/02]

    p. 59, l. 7 and 10; p. 60, l. 2: "Entity/Relationship" -> "Entity-Relationship" (Thanks to Ed Swierk). [5/2/02]

    p. 60, ref. 1, l. 1: delete the first "and" (Thanks to Anatoly Varakin). [5/2/02]

    p. 67, l. -14: Star(name, address) -> Stars(name, address) (Thanks to Anatoly Varakin). [5/2/02]

    p. 67, l. 1-3: The entity sets and attributes on these lines should be italic (Thanks to Anatoly Varakin). [5/2/02]

    p. 68, Example 3.2, l., 3-4 and last: Entity sets and attributes on these lines should be italics. Likewise for Stars-in in the first line of Example 3.3 (Thanks to Anatoly Varakin). [5/2/02]

    p. 69, caption of Fig. 3.5: Stars-in should be italic. Likewise Studios on l. -8 (Thanks to Anatoly Varakin). [5/2/02]

    p. 70 l. -12: "relation" -> "relationship" (Thanks to Anatoly Varakin). [5/2/02]

    p. 72, l. 24: name should be italics (Thanks to Anatoly Varakin). [5/2/02]

    p. 74, Fig. 3.10: This figure, which is a copy of Fig. 2.22, has the same error regarding the labels of entity sets as was described for p. 56 (Thanks to Bill Labiosa and Suzanne Garcia). [5/2/02]

    p. 100, l. 12: AC->D or similar FD's really follow from Exercise 3.5.3(a), not the augmentation rule from Armstrong's axioms (Thanks to Anatoly Varakin). [5/2/02]

    p. 109, Example 3.29, l. 11-12: ownedBy should be Owns and address should be studioAddr (Thanks to Anatoly Varakin). [5/2/02]

    p. 110, l. 14: studioname -> studioName (Thanks to Anatoly Varakin). [5/2/02]

    p. 117, l. 4: delete comma before "and" (Thanks to Anatoly Varakin). [5/2/02]

    p. 146, Exercise 4.2.1, l. 1: "Exercises" -> "Exercise (Thanks to Ed Swierk). [5/2/02]

    p. 148, Example 4.9, l. 2: "contracts" -> "Contracts" (Thanks to Ed Swierk). [5/2/02]

    p. 150, l. 5: The entity set is Murder-Mysteries (Thanks to Anatoly Varakin). [5/2/02]

    p. 154, Example 4.15: partOf should be unitOF throughout (Thanks to Anatoly Varakin). [5/2/02]

    p. 155, Exercise 4.3.3: mother-of, father-of, and child-of should be mother, father, and children, respectively (Thanks to Anatoly Varakin). [5/2/02]

    p. 159, Example 4.19, l. 4: Star -> Stars (Thanks to Anatoly Varakin). [5/2/02]

    p. 160, l. -2: "likly" -> "likely" (Thanks to Anatoly Varakin). [5/2/02]

    p. 162, l. 2 of Fig. 4.16: A right parenthesis was omitted at the end (Thanks to Anatoly Varakin). [5/2/02]

    p. 163, l. 13: "Instead of" -> "Rather than" (Thanks to Anatoly Varakin). [5/2/02]

    p. 167, l. -3: Delete comma after "among" (Thanks to Ed Swierk and Anatoly Varakin). [5/2/02]

    p. 169, l. 11: Note that it is the components, not the tuples that are the same (Thanks to Ed Swierk). [5/2/02]

    p. 172, l. 4: "as" after "opportunity." [5/22/02]

    p. 172, l. -4: Extra right parenthesis needed after "Exercise 2.1.2(a)" (Thanks to Anatoly Varakin). [5/2/02]

    p. 182, l. -8: Comma after STREET (Thanks to Anatoly Varakin). [5/2/02]

    p. 184, l. 2: Comma needed after STAR* (Thanks to Anatoly Varakin). [5/2/02]

    p. 185, Fig. 4.25: The MOVIE elements are all pushed too far to the right. They should align with the STAR elements. [5/2/02]

    p. 186, l. -15: "relation" -> "relation instance" (Thanks to Anatoly Varakin). [5/2/02]

    p. 186, l. -8: "which is then" -> "whose designs are then" (Thanks to Anatoly Varakin). [5/2/02]

    p. 188 last line: delete the third hyphen (Thanks to Anatoly Varakin). [5/2/02]

    p. 201, 202, 203, Examples 5.10 and 5.11: The relations Movie, Movie1, and Movie2 should be Movies, Movies1, and Movies2. The exception is the use of Movie in the footnote on p. 202, l. -2 (Thanks to Anatoly Varakin). [5/6/02]

    p. 203, l. -16: "BNCF" -> "BCNF" (Thanks to Jeff Goldblat). [5/2/02]

    p. 206, l. -12, -2: In both lines, pi_{t,i} should be pi_{t,y} (Thanks to June Yoshiko Sison). [5/2/02]

    p. 230, Exercise 5.4.1(l): Remove parentheses around S (Thanks to Anatoly Varakin). [5/6/02]

    p. 235, Exercise 5.5.2, l. 3: The attribute displacement needs to be added to the relation schema for Classes (Thanks to Anatoly Varakin). [5/6/02]

    p. 236, Exercise 5.5.5, l. 2: Remove commas from the MVD (Thanks to Anatoly Varakin). [5/6/02]

    p. 241, l. 2: "easist" -> "easiest" (Thanks to Anatoly Varakin). [5/2/02]

    p. 243, end of Example 6.4: The tuple should be (Pretty Woman, 1.98334). The second line of the relation is just dots (Thanks to Anatoly Varakin). [5/6/02]

    p. 256, l. -13: "relation" -> "relation name" (Thanks to Anatoly Varakin). [6/18/02]

    p. 270, Fig. 6.11, l. (6): starname -> starName (Thanks to Anatoly Varakin). [6/18/02]

    p. 283, l. 9: GROUP BY a is needed at the end of the query on that line (Thanks to Michael Cole). [5/2/02]

    p. 291, Exercise 6.5.1(d): No capital in "Laptops" (Thanks to Anatoly Varakin). [6/18/02]

    p. 294, l. -8: "scheme" -> "schema" (Thanks to Seth Goldberg). [5/2/02]

    p. 295, l. 4: "scheme" -> "schema" (Thanks to Seth Goldberg). [5/2/02]

    p. 342, l. -7: "statment" -> "statement" (Thanks to Anatoly Varakin). [6/18/02]

    p. 359, Fig. 8.5, l. (4): execName should be of length 31 (Thanks to Anatoly Varakin). [6/18/02]

    p. 362, l. 5: the list of variables should be the same as on l. 1-2 (Thanks to Anatoly Varakin). [6/18/02]

    p. 366, Fig. 8.8, l. 2, 3: square brackets should be parentheses. Similar errata occur on: p. 369, Fig. 8.10, l. 1; p. 370, Fig. 8.11, l. 1; p. 372, Fig. 8.12, l. 2; p. 374, Fig. 8.13, l. 2; p. 376, Fig. 8.14, l. 1 (Thanks to Seth Goldberg). [5/2/02]

    p. 371, l. -7: "Lines (15) through (18)" -> "Lines (16) through (18)" (Thanks to Anatoly Varakin). [6/18/02]

    p. 378, l. 1: "Take a maker and model as arguments..." (Thanks to Anatoly Varakin). [6/18/02]

    p. 378, l. 9: Comma after "PC's" (Thanks to Anatoly Varakin). [6/18/02]

    p. 386, l. -15, -14: SQLCHAR and SQLINTEGER should be SQL_CHAR and SQL_INTEGER (Thanks to Anatoly Varakin). [8/26/02]

    p. 391, l. 13: "size" -> "sizeof" (Thanks to Seth Goldberg). [5/2/02]

    p. 391, l. (14) of Fig. 8.19: right parenthesis needed after execStat. [5/2/02]

    p. 394, 395, 397: When createStatement takes a query as argument, it is actually called prepareStatement(Q). This change affects item 2 on p. 394, p. 395, lines 19 and -7, and p. 397, line 1 (Thanks to Jon Heggland and Anatoly Varakin). [5/2/02]

    p. 398, l. -8: Attribute occ should be occupied. Similarly p. 399, l. 9 and p. 406, l. 16 and 19 (Thanks to Miguel Licona and Anatoly Varakin). [5/2/02]

    p. 423, l. 1: "Client/Server" -> "Client-Server". [5/2/02]

    p. 424, l. -4: "Peocedures" -> "Procedures" (Thanks to David Koller and Anatoly Varakin). [5/2/02]

    p. 424, ref. 5: The year is 1998 (Thanks to Anatoly Varakin). [6/18/02]

    p. 435, l. -13: attribute name -> attribute string name (Thanks to Anatoly Varakin). [8/23/02]

    p. 439, l. 1: "from" -> "FROM" (Thanks to Anatoly Varakin). [8/23/02]

    p. 446, l. -3: "bag(..." -> "Bag(..." (Thanks to Anatoly Varakin). [8/23/02]

    p. 451, l. -9: "return" -> "RETURNS" (Thanks to Anatoly Varakin). [8/23/02]

    p. 452, l. 5: "address" -> "string" (Thanks to Anatoly Varakin). [8/23/02]

    p. 454, l. 4: Omit comma at end (Thanks to Man Cho A. So). [5/2/02]

    p. 454, l. -14, -13: move the semicolon after the right parenthesis (Thanks to Anatoly Varakin). [8/23/02]

    p. 458, 2 lines below Fig. 9.12: add CALL in front of the procedure call (Thanks to Anatoly Varakin). [8/23/02]

    p. 459, l. 19 and p. 460, l. 9: semicolon needed at end (after "WITH ...) (Thanks to Anatoly Varakin). [8/23/02]

    p. 460, l. -2: right parenthesis needed after MovieType (Thanks to Anatoly Varakin). [8/23/02]

    p. 462, l. -5: No capital for "Object" (Thanks to Anatoly Varakin). [8/23/02]

    p. 490, Fig. 10.9: The minus sign on the arc from P to Q is missing (Thanks to Miguel Licona). [5/2/02]

    p. 502, ref. 3: The year is 1982 (Thanks to Anatoly Varakin). [6/18/02]

    p. 524, Exercise 11.3.3, l. 4: delete "inversely" (Thanks to Pedram Keyani). [5/2/02]

    p. 612, l. 10: delete "are" (Thanks to Pedram Keyani). [5/2/02]

    p. 711, ref. 1: "Beekmann" -> "Beckmann" (Thanks to Ed Knorr). [5/2/02]

    p. 811, Example 16.15, l. 5: title should be movieTitle (Thanks to Nisheeth Ranjan). [5/2/02]

    p. 817, l. -12, -11: replace title and year by movieTitle and movieYear (Thanks to Nisheeth Ranjan). [5/2/02]

    p. 822, l. -7: The half sentence at the end of item (1) should not be there (Thanks to Lewis Church, Jr.). [5/2/02]

    p. 848, l. -10: The trees in Fig. 16.27 are only three of the five possible shapes (Thanks to Prasanna Ganesan). [5/27/02]

    p. 865, paragraph below Fig. 16.34: The conclusion that the second pass of the hash join R JOIN S requires 51 buffers is correct, but the reasoning is wrong. The correct argument is as follows. R can only be hashed using up to 100 buckets on the first pass. Thus, the size of a bucket is 50 blocks (average, but assumed exact per footnote 12 on p. 865). Therefore, on the second pass, the join of a bucket of R, with 50 blocks and a bucket of S requires 51 buffers. (Thanks to Mor Naaman). [5/2/02]

    p. 986, l. -5: delete one "on" (Thanks to David Koller). [5/2/02]

    p. 1008, Fig. 19.8: There are two solid arcs missing: T2->T3 and T3->T4 (Thanks to Sajid Hussain). [5/2/02]

    p. 1018, Exercise 19.3.6, l. 4: "in modes IS and either S or IX" (Thanks to Prasanna Ganesan). [5/2/02]

    p. 1043, l. 6: Delete one "and" (Thanks to Ed Knorr). [5/2/02]

    p. 1096, Exercise 20.6.1(b): coke and pepsi should not be italicized. [5/2/02]

    p. 1099, ref. 5, l. 2: parenthesis should be comma (Thanks to Anatoly Varakin). [5/2/02]

    p. 1100, ref. 15, l. 1: parenthesis should be comma (Thanks to David Koller). [5/2/02]

    Also, thanks to Teresa Almeida, Seth Goldberg, Loren Shevitz, and Terje Viken for pointing out errors in the posted solutions.