Декомпозиция без ложных пар
Разделим небольшой список, сопоставим карточки по идентификатору и увидим ложные пары. Отдельно проверим сохранение зависимостей. Синтаксис JOIN не нужен.
Две проверки: восстановление без потерь даёт ровно исходные строки без новых пар; сохранение зависимостей означает, что локальные правила совместно влекут исходные. Иногда достаточно цепочки, даже без общей таблицы для всех атрибутов зависимости.