Идея в том, что вы не хотите, чтобы пользовательский интерфейс взаимодействовал со слоем БД. Итак, вы абстрагируете эти данные, создав слой данных (в основном, класс, который вы можете скомпилировать в сборку / dll). Ваш пользовательский интерфейс говорит с BLL, который, в свою очередь, говорит с DAL.