revised abstract db model