Убедитесь, что на вашем сервере установлен Sendmail.
Если вы проверили свой код и проверили, что там нет ничего плохого, перейдите в / var / mail и проверьте, пуста ли эта папка.
Если он пуст, вам нужно будет сделать:
sudo apt-get install sendmail
, если вы находитесь на сервере Ubuntu.
Закрытие заданного набора FDs является множеством всех FD, которые должны выполняться, когда те, которые находятся в данном наборе, сохраняются. Т. Е. Множество всех ФД, выводимых из одного в данном множестве некоторой последовательностью аксиом Армстронга. Вам будет сказано, что у каждого набора есть такое закрытие, и оно уникально. И мы можем найти замыкание, неоднократно применяя некоторую аксиому каким-то новым способом, используя заданные и / или полученные до сих пор FD, до тех пор, пока не будут получены новые FD.
Вы нашли один FD, подразумеваемый исходным множеством {A -> DC, D -> B}, а именно A -> BC, применяя одно правило к некоторым FD в наборе. Если вы не смогли получить новый, применив любые другие правила, то замыканием будет множество {A -> DC, D -> B, A -> BC}. Но это не закрытие, потому что вы все равно можете генерировать хотя бы еще один FD, а именно A-> BDC. И тогда есть A -> A. Продолжайте пытаться применить. Закрытие будет множеством всех FD, которые вы можете получить.
Функциональные зависимости Google armstrong's axioms для многих академических объяснений. Например этот .