Keys and foreign keys play a crucial role in relational databases-keys identify the objects of interest, and foreign keys knit those objects together. The basic idea couldn't be simpler. As so often, however, the devil is in the detail ... The fact is, these concepts aren't quite as straightforward as they might seem on first acquaintance-or, at least, such would appear to be the case, if the literature is anything to go by. In this one of a kind...