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