Errata to

 Information Modeling and Relational Databases, Second Edition

Halpin, T. and Morgan T. 2008,

(Morgan Kaufmann)

 

Last updated: 2010 July 14

 

 

 

If you spot any other errors in this second edition, please e-mail them to Terry Halpin at t.halpin@live.com.

 

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”.

 

p. xxiv, Online Resources, para. 1: Replace by: “To reduce the size and cost of the book, supplementary material is available at the Website (http://www.elsevierdirect.com/companion.jsp?ISBN=9780123735683) for downloading. There are five appendices. Appendix A provides an overview of the evolution of computer hardware and software. Appendix B discusses two kinds of subtype matrix to determine subtype graphs from significant populations. Appendix C discusses set-comparison queries in SQL. Appendix D discusses ranking and extrema queries in SQL. Appendix E discusses ways to implement derivation rules in SQL using triggers, generated columns, stored procedures, views, user defined functions, and common table expressions. Other appendices may be added as the need arises.”.

p. 35, para. 3, line 5: “Counties” “Countries”.

p. 36, para. 3, lines 4 and 5: “city” “country”.

p. 42, Ex. 2.2, Q. 4 (c) and (e): insert “add: ” before the fact statements.

p. 54, Table 2.3: “Physic-Persistent” “Physical-Persistent”.

p. 57, para. 4, sentence 2: “The Zachman Institute …(see www.zifa.com)” Zachman International promotes the use of the Zachman framework in industry (see www.ZachmanInternational.com).

p. 57, para. 4, last 2 sentences: “At the … writing.” “At the DAMA International Symposium in March, 2008, John Zachman announced a new version of his framework, called Zachman Framework2 (see diagram at http://zachmaninternational.com/images/stories/The%20Zachman%20Framework.pdf).

p. 69, para. 4, line 2: “Adam and Jim” “Terry and Tony”;

                                “Eve and Mary” “Norma and Gwen”.

p. 70, Table 3.3: “1971” “1970”.

p. 70, Facts (25) and (27): “1971” “1970”.

p. 70, para. 5, 3rd sentence: “In order to split (25) into (26) and (27) we probably relied on our” “A sufficient reason for splitting (25) into (26) and (27) would be an”.

p. 70, para. 6, first sentence: append “(e.g., Wirth did most of Pascal’s design in 1968-69, but did not successfully implement it or finalize its definition till 1970)”.

p. 70, para. 6, last sentence: delete “just”.

p. 70, last sentence: “elsewhere” “in various ways”.

p. 71, Fact (27a): “1971” “1970”.

p. 71, Fact (27a) with reference scheme omitted: “1971” “1970”.

p. 71, last para., line 1: delete “for us”.

p. 85: “XEU” “EUR” (2 occurrences).

p. 103, Ex. 3.5, Q. 5: Replace the three male staff entries by the following two entries: (John Jones, Sales); (Bob Smith, Admin).

p. 139, Figs 4.45 and 4.46: “(sq_km)” “(sq_km:)”.

p. 145: para. 4, line 3: “4.47” “4.50”; “4.50” “4.51”.

p. 141, para. 4, line 5: change font for “Table 4.9” to match the paragraph font.

p. 196, Table 5.13, last line: Widen final column to fit “1103.50” on one line.

p. 199, para. 1, last line: “Bank)” “Bank”.

          Figure: Icon for Swimming should be the icon shown for Main Beach.

p. 206, Ex. 5.5, Q. 1, first table: “JM (Joan Coffee)” “JC (Joan Coffee)”.

p. 217, Fig. 6.6: Remove square brackets from most examples.

p. 217, para. 2: Replace the third sentence onwards by “By default, ranges are assumed to be closed, so the end values are included. For example, {50..100} includes 50 and 100 as well as the numbers in between. Inserting a left parenthesis “(“ before a start value excludes that value, and appending a right parenthesis “)” after an end value excludes that value. If desired, a square bracket may be used to explicitly indicate inclusion (the default). For example, “(0..100” and “(0..100]” each denote a range of positive (above 0) numbers up to and including 100. One may also combine enumerations and/or ranges into a single constraint, as in Figure 6.6(c).”.

p. 217, final sentence: Append a period.

p. 225, Fig. 6.13: “(name)” “(.name)”.

p. 235, Ex. 6.4, Q. 2 Figure: Role connectors from the exclusion constraint should be dashed lines.

p. 238, Ex. 6.4, Q. 6(a): “Transaction (code)” “Transaction(.code)”.

p. 243, Fig. 6.35 and para. 1, line 3: “Female” “FemalePerson”.

p. 252, Fig. 6.48: “PersonKind(code)” “PersonKind(.code)”.

p. 253, para. 2, replace final sentence by: “Just based on age, we could specify any set of natural numbers within the possible age range that included 13, 17, and 19 but excluded 12 and 20 (e.g., {13, 17, 19, 1}, {13, 17, 19, 5, 63} and so on).”.

p. 271, Sec 7.1 Title: “Step 6” “Step 7”.

p. 294, Ex. 7.4, Q. 8: “Question 4” “Question 5”.

p. 299, Ex. 7.5, Q. 3: Add the predicate reading "… located in … ordered … of …”.

p. 341, Table, Loan date column: “/00” “/2000” (3 occurrences).

p. 341, Ex. 8.5, Q.2 Figure: “Teacher and an Academic” “Teacher and a Professor”.

p. 347, Table 9.1: Remove shading from right bottom cell (Sequence etc.).

p. 366, para. 3, line 4: “the upper role of committee optional, as in Figure 9.21” “by leaving both committee roles optional, as in Figure 9.21, and declaring Committee independent if it has no mandatory, functional role”.

p. 368, Figs. 9.28 and 9.29: Add directional arrow tip after “Define”.

p. 371, Fig. 9.33: Add spanning uniqueness constraints to all the ORM predicates.

p. 373, Fig. 9.35(a): Replace lower left constraint by “{complete, overlapping}”.

p. 379, para. 3, line 2: “null values” “nulls”.

p. 380, Fig. 9.44(a), derived association: “member” “/member”.

p. 380, para. 3: Replace by “Early versions of the UML specification declared that “both kinds of aggregation define a transitive, antisymmetric relationship (i.e., the instances form a directed, noncyclic graph)”. But antisymmetry does not imply irreflexivity, much less acyclicity. Moreover, transitive closure is normally best achieved by derivation rather than assertion. Such property declarations for aggregation appear to be absent in UML 2.2.”.

p. 380, para. 4: Replace by: “At any rate, some restriction on aggregations is needed to stop cases like that shown in Figure 9.45. If a person is part of a team, and a team is part of a club, it doesn’t make sense to say that a club is part of a person. The example should be remodeled, as shown in Figure 9.44(a).”.

p. 380, Fig. 9.45 caption: Replace by: “Illegal UML model. Aggregation association chains should not form a cycle.”.

p. 381, final para: format should be fully justified.

p. 387, para. 3, line 3: “role that specializes a role played by” “that specializes an association involving”.

p. 387, Fig. 9.52: change multiplicity on assignedCar to “0..1”; remove Rank fact type; “uses” “is assigned”; change UC on company car fact type to span just the lefthand role; add the asserted subtype “Executive”; modify the textual constraint to read “Each Employee who is an Executive is assigned some CompanyCar.”.

p. 389, Table 9.3, Step 4: “m:n and n-ary” “remaining”.

                          Step 7: “semi-derived” “semiderived”.

p. 390, Fig. 9.56: “familyName” “birthdate”.

p. 390, Fig. 9.57: “Title” “PersonTitle” (2 occurrences).

p. 390, Fig, 9.58: “Booelan” “Boolean”.

p. 392, Table 9.4, last row: “Object cardinality” “Value-comparison”; “Class multiplicity” “Textual constraint”.

p. 393: “semi-derived” “semiderived”.

p. 426, Fig. 10.30: Add intransitive constraint to ring fact type.

p. 450, Ex. 10.5, Q. 1 (a), (b): Reduce indentation to match that of (c).

p. 482, Fig. 11.6: Add uniqueness constraint to left role of derived fact type.

p. 483, Ex. 11.2, Q. 1: “null value” “null”.

p. 496, Fig. 11.24: “{‘start’, end’} “{‘start’, ‘end’}”.

p. 504, Fig. 11.32: The foreign key relationship arrow between Survey.channelNr and Channel.channleNr should point downwards, not upwards.

p. 505, Ex. 11.3, Q. 1: “points” “.points”.

p. 505, Ex. 11.3, Q. 2: Add spanning uniqueness constraint to Supply association.

p. 508, Ex. 11.3, Q. 18: “< was directed by” “directed / was directed by”.

p. 518, Replace 2nd paragraph by: “Recall that a direct supertype of a subtype is connected directly to the subtype (i.e., with no intermediate subtypes on the connecting path). Each subtype has one or more direct supertypes. A connection between a subtype and its direct supertype(s) is shown as a solid arrow if it provides a path to the preferred identifier of the subtype. If a subtyping connection appears as a dashed arrow, the subtype either introduces its own preferred reference scheme (this is called context-dependent reference), or it obtains its identification scheme via a subtyping connection to another supertype.”.

p. 519, para. 4, line 6: “record” “records”.

p. 519, Replace last paragraph by: “In this example, we chose employeeNr as the preferred identifier for student employees in the context of roles specific to StudentEmployee. This choice is shown by the solid subtyping arrow from StudentEmployee to Employee (indicating a path to the subtype’s preferred identifier). The subtyping connection from StudentEmployee to Student is dashed, since this does not provide a path to the subtype’s identifier. The subtype connections from Student and Employee are also dashed, because these subtypes introduce new reference schemes in preference to that of their Person supertype.”.

p. 519, Fig. 11.44: Subtype connection lines to Person should be dashed.

p. 521, Fig. 11.47: Replace second instance of “Height” by “Width” (2 cases).

p. 529, Fig. 12.1: “(firstname)” “(.firstname)”; “(name)” “(.name)”.

p. 533, Fig. 12.9: In the selection result, remove the female gender rows, and add a gender column, leaving just these two tuples: (David, M, 172); (Terry, M, 178).

p. 543, Fig. 12.22: “(usd:)” “(USD:)”.

p. 553, Ex. 12.1, Q. 5(a): “MoneyAmt(usd:)” “MoneyAmount(USD:)”.

p. 561, para. 2, line 4: “to.” “to”.

p. 569, Fig. 12.40, last line of query: “startsign” “starsign”.

p. 569, para. 2, line 5: “younger” “older”.

p. 606, Table 12.13: “distinct” “[distinct]” (six occurrences).

p. 606, para. 3: Replace by “The count function may be used in two ways. Count ( * ) returns the number of rows in the specified table, whereas count ( colname ) returns the number of values in the named column. If distinct is specified with a bag function, any duplicates are excluded. If duplicates are wanted, the keyword all may be used; however, since this is the default, it is often omitted. For obvious reasons, adding distinct to max or min has no effect.”

p. 607, end of third set of code examples: “pupi   l” “pupil”.

p. 609, Ex. 12.9: “The Log table …” “2.  The Log table …”.

p. 610, Ex. 12.9 Q. 2(a): “retail price " cost price” “retail price - cost price”.

p. 611, final para.: Indent first line.

p. 646, Sec. 13.3, para. 2, line 6: “implemetation” “implementation”.

p. 728, Fig. 14.49: “Old.feeyear” Old.feeYear”.

p. 790, Fig. 15.19: “(name)” (.name)”; “(id)” “(.id)”.

p. 791, Fig. 15.20: “(name)” (.name)”; “(id)” “(.id)”.

p. 792, Fig. 15.21: “(name)” (.name)”; “(id)” “(.id)”

p. 793, Fig. 15.22: reverse the direction of the subset constraint; “(name)” (.name)”; “(id)” “(.id)”, “(code)” “(.code)”.

p. 794, Fig. 15.23: “(name)” (.name)”; “(id)” “(.id)”.

p. 795, Fig. 15.24: “(name)” (.name)”; “(id)” “(.id)”, “(code)” “(.code)”.

p. 820, line 4: “BPML” “BPMN”.

p. 829, Ex. 15.7, Q. 2 Figure: “Name” “ItemName”; “(code)” “(.code)”, “(nr)” “(.nr)”; “Report” “Report(.nr)”; remove ReferenceNumber fact type.

p. 864, Sec. 16.6, line 4: “change” “change?”.

p. 865, para. 1, line 8: “identifers” “identifiers”.

p. 866, Fig. 16.20: “Terry Halpin” "Terry Halpin".

p. 868, final para., line 1: “decarations” “declarations”.

p. 868, final line: “<owl:Restriction>” “</owl:Restriction>”.

p. 900, Subtyping, first para.: “for A “for B”.

p. 911, first entry: “www.mkp.com/imrd/” “www.mkp.com/imrd2”.

p. 911, Fact-Oriented Modeling Tools, NORMA entry: delete final “)”.

p. 911, 3rd last line: “zifa” “ZachmanInternational”.

p. 914, Carver and Halpin reference: “’Semantic Normalization’, Neumont University Technical Report.” “’Atomicity and Normalization’, Proc. EMMSAD2008, eds, T. Halpin, J. Krogstie, and H. Proper, CEUR, Montpellier, June 2008.”

pp. 914-924: Page headers should read “Bibliography”.

p. 918: “Halpin, T.2000c” “Halpin, T. 2000c”.

p. 936, “popular reference mode, 84. 105” “popular reference mode, 84, 105”.