Errata to

 Information Modeling and Relational Databases, Third Edition

Halpin, T. and Morgan T. 2024

(Morgan Kaufmann)

 

Last updated: 2026 April 13

 

 

 

If you spot any other errors in this third edition, please e-mail them to Terry Halpin at [email protected].

 

The following corrections should be made to the first printing. . To determine the print version of your copy of the book, look at the row of digits below the copyright notice on the verso of the main title page: the final digit denotes the print version (e.g. 1 = first printing, 2 = second printing).

 

The symbol "-->" means "is replaced by".

Page 40, question 3, insert the following as the third sentence: "Here,the marital status "single" is used in the sense of "never married".

p. 247, paragraphs 5 and 6, replace by: "The quantifier "Each" normally precedes the name of the subtype being defined, as shown in Figure 6.39. The operator "is defined as a" or "is defined as an" is used after the supertype name. Asserted subtypes use unqualified "is a" connections. For example, asserting that MalePatient is a subtype of Patient, simply means Each MalePatient is a Patient. Derived and semiderived subtypes require subtyping definitions that add conditions to the "is a" connection. For example, Each MalePatient is defined as a Patient who is of Gender 'M'. If desired, but only within a subtype derivation rule, "is defined as a" and "is defined as an" may be shortened to "is a" and "is an".

Page 248, , para. 5, replace by: "In Figure 6.39, the mutual exclusion between MalePatient and FemalePatient is implied by their definitions, together with the uniqueness constraint on the gender predicate (Each Patient is of at most one Gender). The constraint that MalePatient and FemalePatient exhaust Patient is implied by the subtype definitions, the {'M','F'} constraint, and the mandatory role on the gender predicate (Each Patient is of at least one Gender). In ORM, derived subtypes are well defined and all relevant constraints on defining predicates must be declared (graphically or textually). Hence, any exclusion or exhaustion constraints on derived subtypes are always implied. In ORM, all derived constraints are displayed in green, as in Figure 6.39. This notation is supported in the Visio ORM stencil, but is not yet supported in the NORMA tool."

Page 288, Figure 7.21: Symmetric and antisymmetric relations should overlap (as purely reflexive relations are their intersection), and strongly intransitive relations should be a proper subset of acyclic relations. Here is an updated version of Figure 7_21:

new figure 7_21

Page 262, Fig. 6.56: Change color of Xor constraint to green.

Page 289, sentence 1: "constraints" --> "constraints on non-empty relations".

Page 336, Fig, 8.41: Change color of exclusion constraint to green.

Page 336, Fig, 8.42: Change color of Xor constraint to green.

Page 341, Fig. 8.50: Change color of Xor constraint to green.

Page 428, paragraph 4, append to the first sentence ending with "Chapter 2": "where "single" is used in the sense of "never married".

 

Page 428, paragraph 5: in sentence 3 change "10.29(a)" to "10.29(b)" and in sentence 4 change "10.29(b) to "10.29(c)".

 

Page 459, Figure 10.60(a): Add the predicate text "is monolingual" to the unary predicate.

p. 506, Fig. 11.25: Change color of Xor constraint to green.

p. 507, Fig. 11.26: Change color of Xor constraint to green.

Page 521, Figure 13.35(c): change the colour of the predicate reading "smokes" to black. Note: the role of the objectifed unary applies only to its positve instances.

Page 524, Fig. 11.38: Change color of Xor constraint to green.

Page 525, Fig. 11.39: Change color of Xor constraint to green.

Page 792, Figure 15.22(b): "F(in Y)" --> "F[in Y]".

 

Page 925, second constraint formula: Insert closing parenthesis so it reads "ic (c1, c2, n) requires (hasCountryName(c1,n) and hasCountryName(c2,n)) implies c1 = c2 ".

Page 983, first block of OWL code: Delete closing double-quote after "Person" and "Tony".