From a performance point of view, the perfect transaction is discrete, is short, is nondistributed, changes only one data page, changes a page only once, and avoids reading what it's just written.