For one or more transactions each defined by a set of statements defining functions that must all succeed or all fail atomically, a computer-implemented method comprising: separating the execution of each transaction into two different phases, in which during a first phase performed by a database server with one or more processors, the computer-implemented method comprises, identifying a first set of statements of a transaction by identifying statements that do not require interaction with a client computing system and that can be automatically retried in the event of a failure of the transaction without a client computing system being aware of the failure; identifying a second set of statements of the transaction by identifying statements that, when executed, will result in data being generated to be sent to the client computing system; attempting execution of the first set of statements for one or more transactions and excluding execution of the second set of statements when attempting said execution of the first set of statements; automatically retrying any failed transaction by re-executing one or more of the statements in the first set of statements of the failed transaction without making the client computer system aware of the failed transaction; successfully executing the first set of statements for one or more transactions, using, when required, automatic re-execution for a failed transaction, the successful execution of the first set of statements for one or more transactions changing the database state at the database server; and in a second phase performed by the database server and the one or more processors thereof, the computer-implemented method comprises, for each transaction for which the first set of statements is successfully executed, separately executing the second set of statements to generate data that is sent to the client computing system, whereby transactions that failed and have been retried are not visible to the client computing system receiving the generated data. separating the execution of each transaction into two different phases, in which during a first phase performed by a database server with one or more processors, the computer-implemented method comprises, identifying a first set of statements of a transaction by identifying statements that do not require interaction with a client computing system and that can be automatically retried in the event of a failure of the transaction without a client computing system being aware of the failure; identifying a second set of statements of the transaction by identifying statements that, when executed, will result in data being generated to be sent to the client computing system; attempting execution of the first set of statements for one or more transactions and excluding execution of the second set of statements when attempting said execution of the first set of statements; automatically retrying any failed transaction by re-executing one or more of the statements in the first set of statements of the failed transaction without making the client computer system aware of the failed transaction; successfully executing the first set of statements for one or more transactions, using, when required, automatic re-execution for a failed transaction, the successful execution of the first set of statements for one or more transactions changing the database state at the database server; and identifying a first set of statements of a transaction by identifying statements that do not require interaction with a client computing system and that can be automatically retried in the event of a failure of the transaction without a client computing system being aware of the failure; identifying a second set of statements of the transaction by identifying statements that, when executed, will result in data being generated to be sent to the client computing system; attempting execution of the first set of statements for one or more transactions and excluding execution of the second set of statements when attempting said execution of the first set of statements; automatically retrying any failed transaction by re-executing one or more of the statements in the first set of statements of the failed transaction without making the client computer system aware of the failed transaction; successfully executing the first set of statements for one or more transactions, using, when required, automatic re-execution for a failed transaction, the successful execution of the first set of statements for one or more transactions changing the database state at the database server; and in a second phase performed by the database server and the one or more processors thereof, the computer-implemented method comprises, for each transaction for which the first set of statements is successfully executed, separately executing the second set of statements to generate data that is sent to the client computing system, whereby transactions that failed and have been retried are not visible to the client computing system receiving the generated data. for each transaction for which the first set of statements is successfully executed, separately executing the second set of statements to generate data that is sent to the client computing system, whereby transactions that failed and have been retried are not visible to the client computing system receiving the generated data.