1. a database table or view is wrapped into a class.
2. an object instance is tied to a single row in the table.
3. When the object is updated, the corresponding row in the table is updated.