Это очень возможно и достаточно широко распространено. Это также хорошо работает, когда у вас есть минимальное подклассирование, и бизнес-логика легко отображается на используемые объекты. Однако, имея лишь небольшую расширяемость на уровне отображения, вы можете легко создавать объекты, которые представляют собой комбинации нескольких таблиц, возможно, даже выполняя подклассы. (Я написал такие слои и постараюсь сделать такие зацепки возможными.)
Желательно всегда использовать слой отображения данных, потому что вы не хотите, чтобы ваш код занимал лишний SQL-код. OTOH, если ваша структура классов скорее иерархическая, чем реляционная, вы можете посмотреть на базу данных OO (я слышал, что PostGreSQL может это сделать) и подходящий уровень отображения.