Preface to the Second Edition

This edition differs from its predecessor in a number of ways. The overall objective remains the same, of course—using SQL relationally is still the emphasis—but the text has been revised throughout to reflect, among other things, experience gained from teaching live seminars based on the first edition.

One significant change is a deletion: The appendix on design theory has gone. There are two reasons for this change. First, design theory as such never really did have all that much to do with the book’s main message, anyway; second, the appendix was getting so extensive that it threatened to overwhelm the rest of the text. (It was already longer than any chapter or any other appendix in the book. In fact, I’ve since expanded the material into a separate book in its own right. That book—Normal Forms and All That Jazz: A Database Professional’s Guide to Database Design Theory—is due to be published soon by O’Reilly. It can be seen as a companion, or perhaps a sequel, to the present book.)

On the positive side, a lot of new material has been added (including, importantly, a discussion of how to deal with missing information without using nulls); examples, exercises, and answers have been expanded and improved in various respects; and the treatment of SQL has been upgraded to cover recent changes to the SQL standard. A variety of corrections and numerous cosmetic improvements have also been made.[2] (In particular, the Tutorial D examples—Tutorial D being the language I use to illustrate relational concepts—have been upgraded to reflect several recent improvements to that language. See Appendix D.) The net effect is to make the text rather more comprehensive—but, sadly, some 25 percent bigger—than its predecessor.

Talking of the text, I’d like to say something about my use of footnotes. Frankly, I’m rather embarrassed at how many footnotes there are; I’m well aware how annoying they can be—indeed, they can seriously impede readability. But any text dealing with SQL is more or less forced into a heavy use of footnotes, at least if it wants to be tutorial in nature and yet reasonably comprehensive at the same time. The reason is that SQL involves so many inconsistencies, exceptions, and special cases that treating everything “in line”—i.e., at the same level of description—makes it very difficult to see the forest for the trees. (Indeed, this is one reason why the SQL standard itself is so difficult to understand.) Thus, there are numerous places in the book where the major idea is described “in line” in the main body of the text, and exceptions and the like (which must at least be mentioned, for reasons of accuracy and completeness) are relegated to a footnote. It might be best simply to ignore all footnotes on a first reading.

C. J. Date

Healdsburg, California

2012



[2] In this connection, I’d like to acknowledge the contribution of a reader of the first edition, Thomas Uhren, who found an embarrassingly large number of errors. I’ll try harder in future. I promise.

Get SQL and Relational Theory, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.