Errata

Database in Depth

Errata for Database in Depth

Submit your own errata for this product.

The errata list is a list of errors and their corrections that were found after the product was released.

The following errata were submitted by our customers and have not yet been approved or disproved by the author or editor. They solely represent the opinion of the customer.

Color Key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update

Version Location Description Submitted by Date submitted
Other Digital Version 12
Online Answers to Exercises, page 12, Tutorial D definition of SP

In the online Answers to Exercises, page 12, Exercise 2-14, the Tutorial D definition of SP should define the key as:

  KEY { SNO, PNO }

Doug Wiebe  Oct 19, 2010 
Printed Page 28
last paragraph

This sentence has one too many "is":

"Now, you might have realized that what I'm really talking about is (sic) here is what's known in language circles as strong typing."

kovacs  Apr 01, 2010 
Printed Page 30
top, 2nd bullet point

"hour/minute second" should be "hour/minute/second" (making it consistent with "year/month/day" in the same sentence).

kovacs  Apr 01, 2010 
Printed Page 43
middle of page

"(where the order in which the components is specified is arbitrary)."

should be:

"(where the order in which the components are specified is arbitrary)."

Note: do not confuse this report with the similar one already reported:

"(but the order in which the attributes is (sic) specified is arbitrary)."

kovacs  Mar 31, 2010 
Printed Page 45
definition of tuple equality

in the definition of tuple equality, shouldnt the last line read "the value vi of Ai in t1 is equal to the value vi of Ai in t2"?

Anonymous   
Printed Page 46
definition of realation

in the definition of relation, shouldnt the word "degree" in line 4 be italicized (to match cardinality)?

Anonymous   
Printed Page 56
TABLE_DUM and TABLE_DEE

By p. 56 the author has already established that TABLES ARE NOT PART OF
THE RELATIONAL MODEL. The entities which this section discusses ought not have the
string 'table' in their names. I suggest rel_dum and rel_dee for these two special
relation values. They are hardly 'tables'
in the common technical usage of the word, table, but the reasoning that
identifies them as legitimate relation values is compelling.

Anonymous   
Printed Page 76
line 5

There is an error in your errata:

Anonymous   
Printed Page 76
line 5

Replace:
"projection well"
with
"projection ... well"

The relevant text from line 5 is "... relational projection as well, ...".

Anonymous   
Printed Page 91
bottom of page

On p. 91 of Date's book (the last four sentences on the page), he says

"the semidifference between r and s is the difference between r and r MATCHING s; that is, r SEMIMINUS s is equivalent to r MINUS (r MATCHING s)."

He then shows the SQL equivalent of S SEMIMINUS SP as

SELECT S.*
FROM S
EXCEPT
SELECT S.*
FROM S,SP
WHERE S.SNO=SP.PNO;

But on page 89 (at the top) he shows S SEMIJOIN SP to be equivalent to this SQL

SELECT DISTINCT S.*
FROM S,SP
WHERE S.SNO=SP.PNO;

The DISTINCT keyword is need here; otherwise, the result is not be a valid relation. Without it there would be duplicate tuples. So why did Date omit DISTINCT from the SQL equivalent of S SEMIMINUS SP, at the bottom of p. 91? Shouldn't the correct SQL analogue of S SEMIMUS SP be

SELECT S.*
FROM S
EXCEPT
SELECT DISTINCT S.*
FROM S,SP
WHERE S.SNO=SP.PNO;

even though the result is the same without DISTINCT?

regards,
Kurt Krueckeberg

kurt krueckeberg  Apr 02, 2009 
Printed Page 95
bottom of page

The SQL code given at the bottom of page 95 is:

SELECT P.*, (P.WEIGHT * 454) AS GMWT
FROM O
WHERE (P.WEIGHT*454) > 7000;

Should this not be:
SELECT P.PNO, (P.WEIGHT * 454) AS GMWT
FROM O
WHERE (P.WEIGHT*454) > 7000;

Since the code at the bottom of p. 95 shows how to "Get part number and gram weight for parts with gram weight greater than 7000 grams". The Tutorial D code does properly show a Projection that returns just the two values of part number and gram weight. However, returns all the columns of P, plus the gram weight.

kurt krueckeberg  Apr 03, 2009 
Printed Page 102
4rd

First, project distributes over intersect and union, though not difference.
MUST BE:
First, project distributes over union, though not intersect and difference.

Anonymous   
Printed Page 146
Last sentence of paragraph four.

On p.146 of Database in Depth, the last sentence of the 4th reads: "The only nontrivial join dependency satisfied by this relvar is the fuctional dependency*:

{ SNO, PNO, JNO } -> { QTY }

which is an arrow out of a superkey."

This should read: "The only nontrivial functional dependency satisfied by this relvar is the fuctional dependency:

{ SNO, PNO, JNO } -> { QTY }"

which is an "arrow out of a superkey."

-----------
It should read this way because the functional dependency of { SNO, PNO, JNO } -> { QTY } implies that the only JD is the trivial JD consisting of all the attributes of the reval: * { {SNO, PNO, JNO, QTY } }.

The asterick at the bottom of page 146 makes this point. It reads: "Equivalently, using the name SPJQ to refer to the set of all attributes of SPJ, the revlar satisfies the trivial JD * {SPJQ}.(Recall from chapter 5 that the join of a single relations r is just r itself.)"

Kurt Krueckeberg  Aug 14, 2009