dibi - smart database abstraction layer