We all know that Drupal doesn't really support the concept of foreign keys in the database, and likely never will1.
We also know that it is possible for modules to not do the right thing, or that users will periodically do crazy things like
DELETE FROM node_revision
WHERE vid = 123
in an effort to "keep the database tidy". When this happens, hooks don't run, and there is orphaned data in the database. Mostly, this data is harmless, but occasionally it causes really weird behavior and can bring out bugs in code.
Are there any decent methods for detecting whether you have have dead and/or inconsistent data in your database?
1 The Drupal 7 Schema API supports them for documentation, but not enforcement.