database abstractions