This entry is part 1 of 5 in the Building a Database Abstraction Layer Series