In Oracle Database 12c, when does a transaction begin?
A. when a transaction ID is allocated for it.
B. when a user explicitly issues a "begin" statement
C. when a transaction is assigned to an available undo data segment to record undo entries for the new transaction
D. when the first executable SQL statement is encountered