session open, reads & writes when stored in the data layer will mean additional database access which will slow things down.
In my opinion it depends on the size of the app & the desire for futre scalability. Session management in the business logic makes sense for small 3-tier architectures in terms of speed & ease.
If there is either a current need or imagined future need for the middle tier to be distributed over multiple web servers then clearly session management will have to be handled in the data layer to allow load-balancing across the business layer.
Yes storing session info in the data layer will allow a higher level of organisation but the question is, is it really necessary for what you want to do?.