Table Data Gateway is a design pattern in which an object acts as a gateway to a database table.[1] The idea is to separate the responsibility of fetching items from a database from the actual usages of those objects. Users of the gateway are then insulated from changes to the way objects are stored in the database.