レスありがとうございます。
レイヤーを分けることでテストしやすくなるというのはたしかに仰るとおりで納得できました。
わたしはPerl, PHP3からPG入門していて、ほんとに全部同じところにごちゃっと書いてましたので・・・


もう1点質問なのですが、
DBアクセスする場合は、DBのテーブルに対応するクラス(Entity?)を作るとわかりやすいとありました。
挿入、更新、削除はそれでいいのですが、検索する場合は1テーブルだけで検索することって少なくて、
たいていは別のテーブルと結合して情報を取得すると思います。

このような場合、結合したSQLごとにクラスを作るような設計にするのでしょうか。
SQLの数だけクラスが増えると恐ろしいことになりそうなのですが。。