database layer framework